С++ без компромиссов: как мы нашли сильного разработчика под системный продукт

sfsfsfsfs
В 2025 году найти C++ разработчика — всё ещё вызов. Особенно когда речь идет не просто о программисте, а об инженере, который разбирается в низкоуровневом коде, может оптимизировать под конкретное железо и спокойно ориентируется в многопоточности. Добавим к этому необходимость в хороших софт-скиллах и опыте работы в команде — и получим одну из самых сложных ролей на рынке.

Запрос клиента

К нам обратилась продуктовая компания, разрабатывающая сложную платформу для обработки видеопотоков в реальном времени. Команда искала Middle+/Senior C++ Developer, который:

  • Уверенно владеет современным C++ (от C++14 и выше)
  • Работал с многопоточностью, синхронизацией, memory management
  • Понимает особенности low-latency систем
  • Имеет опыт с Linux, gdb, valgrind, CMake
  • Может читать чужой код, вникать в чужие библиотеки, делать рефакторинг
  • Уровень английского — от Intermediate (для чтения документации и базовой переписки)
  • Бонусом — знание OpenCV, FFmpeg, CUDA или опыт в видеостриминге

Возникшие трудности

  • На рынке много C++-разработчиков из геймдева или embedded, но далеко не у всех есть опыт с высоконагруженными системами и real-time обработкой.
  • Много «старой школы», где кандидаты писали на C++98 и не работали с современными стандартами.
  • Некоторые специалисты имеют хороший уровень, но не хотят менять текущую стабильную позицию без веских причин.
  • У проекта технически интересная, но нишевая специфика — важно было правильно презентовать её рынку.

Процесс подбора

1. Подготовка

Провели техническую сессию с командой клиента, уточнили задачи и стек. Сформировали портрет: инженер, владеющий современным C++, умеющий оптимизировать и разбираться в чужом коде. Подготовили адаптированное описание роли для разных каналов.

2. Поиск и воронка

Запустили точечный поиск по LinkedIn, GitHub, профильным форумам и Telegram-каналам. 120+ персональных сообщений

  • LinkedIn: по ключевым словам (C++, low-latency, video, RTSP, FFmpeg), с фильтрацией по индустриям
  • GitHub: искали активных контрибьюторов в библиотеки, связанные с видео и системным программированием
  • Stack Overflow и Reddit: искали специалистов, участвующих в обсуждениях и пишущих про performance
  • Телеграм-каналы: C++, backend, системное программирование
  • Специализированные форумы и сообщества (cpp-developers, realtime-dev, lowlatency.io)

3. Сопровождение

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

Результат нашей работы

От старта до оффера — 2 недели.

Финальный кандидат:

  • 6 лет опыта с C++, последние 2 — в проекте по обработке видео
  • Уверенное владение современным C++ (17), STL, Boost
  • Опыт оптимизации под ARM и x86, низкоуровневый дебаг, работа с видеобуферами
  • Писал собственные модули под FFmpeg, делал оптимизацию latency в live-streaming
  • Спокойная, вдумчивая коммуникация, инициативен, хорошо работает в паре с архитектором

Через 1,5 месяца работы:

  • Оптимизировал один из критичных модулей: latency уменьшилась на 22%
  • Настроил CI для сборки под несколько платформ (x86, ARM)
  • Выделил архитектурные долги в кодовой базе и предложил план модульного рефакторинга
  • Начал вести документацию по внутренним библиотекам — до этого не было вообще

Клиент доволен не только качеством работы, но и зрелостью подхода. Сейчас мы помогаем им в поиске DevOps-инженера для выстраивания инфраструктуры CI/CD и мониторинга.

Этап Количество
Всего кандидатов в контакте с рекрутером 123
Прошедшие скрининг и представлены заказчику 8
Назначенные интервью с заказчиком 5
Финалистов 2
Выставлен оффер 2
Принятых офферов 1
Вышли на работу 1

Дата