Разработчик С++ в команду 2GIS Mobile SDK

з/п не указана

Требуемый опыт работы: 1–3 года

Полная занятость, удаленная работа

Привет!

На связи 2ГИС — компания, которая помогает людям жить в городе. Мы делаем карту со справочником и навигатор. Ждём тебя, чтобы вместе развивать новые проекты и делать мир лучше.

О проекте:

Мобильным приложением 2ГИС ежемесячно пользуется более 20 миллионов человек. Ищут адреса и фирмы, изучают карту, ездят по навигатору. Всё это должно работать быстро, надёжно и offline на ограниченных ресурсах мобильного телефона. Для этого основная бизнес-логика продукта реализована в виде кроссплатформенного SDK на C++, который делает наша команда. Сейчас это внутренний продукт, используемый в рамках 2ГИС, но перед нами стоит амбициозная задача сделать классное публичное API для сторонних разработчиков, что задирает планку качества ещё выше.

В рамках SDK нужно дорабатывать существующие и создавать новые компоненты.

Вот далеко не полный перечень того, чем предстоит заниматься:

  • работа с картой: инструменты управления и визуализация различных данных;
  • навигатор: построение и обновление маршрута, притяжка геопозиции к линии маршрута, озвучивание голосовых инструкций;
  • компактное хранение на устройстве и инкрементальные фоновые обновления справочных данных;
  • реклама: обновление дельтами раз в 15 минут, компактное хранение, быстрое подмешивание рекламных материалов в выдачу;
  • собственная система аналитики для сбора бизнес- и продуктовых метрик внутри продукта;
  • профилирование и оптимизация — боремся за миллисекунды на «горячих» участках кода.

Технически проект представляет собой несколько сотен тысяч строк кода на C++17. Используем CMake, свежие версии компиляторов (clang-10, gcc-10, Visual Studio 2019 - кому что удобней), clang-tidy. Обязательное ревью и сборки на CI перед вливанием организованы средствами Bitbucket Server и Jenkins. Иногда пишем вспомогательные скрипты на Python.

Мы ждем от тебя:

  • отличное знание C++14/17 и опыт коммерческой разработки на нём от 2 лет;

  • сильная алгоритмическая подготовка (знание основных алгоритмов и структур данных, умение оценивать сложность алгоритмов);

  • умение самостоятельно разработать сложное программное решение — от проработки и обсуждения требований до проектирования архитектуры и написания качественного кода;

  • умение работать в команде, работать с чужим кодом;

  • умение писать эффективный и понятный код.

Будет плюсом:

  • опыт мобильной/кроссплатформенной разработки на С++;

  • опыт разработки многопоточных приложений;

  • навыки измерения производительности и профилирования графических программ;

  • опыт работы с Jenkins, знание Python, CMake.

Ключевые навыки

C++
STL
Boost
CMake

Вакансия опубликована 15 июня 2021 в Казани

Похожие вакансии