Мобильным приложением 2ГИС ежемесячно пользуется более 20 миллионов человек. Ищут адреса и фирмы, изучают карту, ездят по навигатору. Всё это должно работать быстро, надёжно и офлайн на ограниченных ресурсах мобильного телефона.
Для этого основная бизнес-логика продукта реализована в виде кроссплатформенного Mobile SDK на C++, который делает наша команда. Этот продукт используется как самим 2ГИС, так и доступен для сторонних разработчиков. В июле 2021 вышел наш первый публичный релиз. Mobile SDK является частью семейства продуктов 2GIS.KIT для разработчиков.
В рамках SDK нужно дорабатывать существующие и создавать новые компоненты. Примеры того, чем предстоит заниматься:
- Работа с картой — инструменты управления и визуализация различных данных.
- Навигатор — построение и обновление маршрута, притяжка геопозиции к линии маршрута, поездка без маршрута, озвучивание голосовых инструкций.
- Компактное хранение на устройстве и инкрементальные фоновые обновления справочных данных.
- Собственная система аналитики для сбора бизнес- и продуктовых метрик внутри продукта.
- Профилирование и оптимизация — боремся за миллисекунды на «горячих» участках кода.
Технически проект представляет собой несколько сотен тысяч строк кода на C++20. Используем CMake, свежие версии компиляторов (clang-10, gcc-10, Visual Studio 2019 — кому что удобней), clang-tidy. Обязательное ревью и сборки на CI перед вливанием организованы средствами Bitbucket Server и Jenkins. Иногда пишем вспомогательные скрипты на Python.
Мы ждём от тебя
- Отличное знание C++14/17/20 и опыт коммерческой разработки на нём
от 3-х лет. - Алгоритмическая подготовка (знание основных алгоритмов и структур данных, умение оценивать сложность алгоритмов).
- Умение самостоятельно разработать сложное программное решение — от проработки и обсуждения требований до проектирования архитектуры и написания качественного кода.
- Умение работать в команде, работать с чужим кодом.
- Умение писать эффективный и понятный код.
Будет плюсом
- Опыт мобильной/кроссплатформенной разработки на С++.
- Опыт разработки на Swift/Kotlin.
- Опыт разработки на Qt, преимущественно под мобильную ОС "Аврора".
- Опыт разработки многопоточных приложений.
- Навыки измерения производительности и профилирования графических программ.
- Опыт работы с Jenkins, знание Python, CMake.
Кроме того
- 2ГИС — аккредитованная IT-компания. У нас можно работать удалённо. Для нас важен специалист, а не его локация. Если хочешь работать в гибридном формате, у нас есть офисы в Москве, Санкт-Петербурге, два классных офиса в Новосибирске. А также коворкинги в Нижнем Новгороде, Томске, Астане, Алма-Ате и Дубае.
- График не главное. Кто-то начинает работу в 9, кто-то в 11, а кто-то — когда удобно ему и команде. Главное — выполнять задачи в срок и быть на связи с коллегами.
- Само собой, полностью белая зарплата, размер обсуждается на собеседовании, потолка нет.
- Есть ДМС, штатный терапевт, невролог, мед.консультант и другие IT-плюшки.
- Если хочешь делиться своим опытом, мы только за — поможем с выступлениями на конференциях и статьями для Хабра.