Москва, Западный административный округ, Можайский район, Инновационный центр Сколково, Большой бульвар, 40
Метро: БаковкаМы ищем опытного и серьезного разработчика C++ для участия в создании и развитии ответственных цифровых продуктов в сфере железнодорожного транспорта. Вам предстоит работа над сложными desktop-приложениями с богатым UI, клиент-серверным взаимодействием и высокой требовательностью к надежности и производительности.
Вы будете выполнять следующие обязанности:
Полноценное участие в разработке и поддержке модульного desktop-приложения на Qt (QWidgets).
Проектирование и реализация клиент-серверной логики, включая работу с различными сетевыми протоколами.
Создание и поддержка пользовательских интерфейсов высокой сложности (работа с деревьями, кастомизированными виджетами, MVC-архитектурой).
Разработка и поддержка библиотек общего назначения для тиражируемого функционала.
Написание технической документации (технические спецификации, API).
Участие в полном цикле разработки: анализ требований, проектирование, реализация, code review, рефакторинг, написание тестов, отладка.
В этих целях Вам необходимы:
Опыт коммерческой разработки на С++ от 3-х лет, уверенное владение стандартами C++11/14/17, понимание новшеств C++20.
Глубокое знание и опыт применения STL, современных идиом и шаблонов проектирования.
Опыт работы с фреймворком Qt (5/6) от 3-х лет, в частности с QWidgets.
Обязательное и глубокое знание сетевых протоколов и технологий:
HTTP/HTTPS, REST API, работа с JSON (сериализация/десериализация).
WebSocket для двусторонней связи в реальном времени.
gRPC как плюс или готовность к быстрому освоению.
Понимание механизмов аутентификации и авторизации: OAuth 2.0, JWT, Basic Auth.
Понимание принципов асинхронного программирования в Qt (сигналы-слоты, event loop, QtConcurrent) и в целом (std::async, futures/promises).
Опыт работы с SQL (написание запросов, оптимизация) и одним из промышленных серверов СУБД: PostgreSQL или MS SQL Server.
Умение проектировать и работать со сложными структурами данных, опыт реализации и оптимизации операций с деревьями.
Понимание основ работы распределенных систем.
Практический опыт работы с Git (ветвление, merge/rebase, проведение code review).
Навыки написания unit-тестов с использованием одного из фреймворков: Qt Test, Google Test, Catch2 и т.п.
Умение читать и анализировать чужой код, способность к самостоятельной работе и принятию технических решений.
Будет значительным преимуществом:
Опыт работы с потоковыми протоколами (например, для передачи телеметрии).
Знакомство с языками Go, Python и понимание их экосистем.
Опыт работы в domain-области (транспорт, логистика, телематика).
Знание CI/CD принципов, опыт настройки сборок (CMake), скриптовой автоматизации.
Если Вы работаете у нас, мы гарантируем Вам:
Если наша вакансия заинтересовала Вас, нажмите на кнопку «Откликнуться на вакансию» и мы ответим Вам!