👀 Дизайнеры, с какой командой вы мэтчитесь по вайбам? Проверяйте на Вайб-чеке→ vibe.habr.com

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

Местоположение и тип занятости

НовосибирскПолный рабочий деньМожно удаленно

Компания

Все организации города, их контакты, адреса, время работы + трехмерная карта + маршруты проезда

Описание вакансии

О компании и команде


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

Для этого основная бизнес-логика продукта реализована в виде кроссплатформенного Mobile SDK на C++, который делает наша команда. Этот продукт используется как самим 2ГИС, так и доступен для сторонних разработчиков. В июле 2021 вышел наш первый публичный релиз. Mobile SDK является частью семейства продуктов 2GIS.KIT для разработчиков.

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

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

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

Ожидания от кандидата

  • Отличное знание C++14/17 и опыт коммерческой разработки на нём от 2 лет.
  • Сильная алгоритмическая подготовка (знание основных алгоритмов и структур данных, умение оценивать сложность алгоритмов).
  • Умение самостоятельно разработать сложное программное решение — от проработки и обсуждения требований до проектирования архитектуры и написания качественного кода.
  • Умение работать в команде, работать с чужим кодом.
  • Умение писать эффективный и понятный код.

Будет плюсом

  • Опыт мобильной/кроссплатформенной разработки на С++.
  • Опыт разработки многопоточных приложений.
  • Навыки измерения производительности и профилирования графических программ.
  • Опыт работы с Jenkins, знание Python, CMake.

Условия работы

  • У нас комфортные офисы в Новосибирске и Питере, удобный график работы. Спокойно относимся к удалёнке. Если захочется работать из офиса — поможем с релокацией в Новосибирск или Питер. В офисе — столовая и бесплатная парковка. Помогаем с детским садом и школой. Предоставляем несколько вариантов техники. Для удалёнки — доставим и поможем настроить.
  • Зарплата вовремя, полностью белая, индексируется. Есть ДМС. В офисе — бесплатная парковка. Частично компенсируем траты на спорт и обучение иностранным языкам.
  • Мы используем современные технологии и любим о них говорить. Рассказываем о наших продуктах в дайджесте Доставили,  делимся опытом на конференциях и пишем на Хабр. Некоторые конференции — например, DevDay — проводим сами. 
    Любим тех, кто умеет работать в команде, открыто общается и вместе с командой находит лучшие решения.