Петренко Виктор Павлович

Разработчик C# / C++ реалтайм-системы сбора и анализа данных (камеры, лидары)

Коротко

Удалённая вакансия C#/C++ разработчика для доработки реалтайм-системы контроля вывоза сыпучих материалов на базе камер и лидаров (CV/ML). Нужен инженер с опытом многопоточности, работы с оборудованием и реальной практикой разработки с AI-агентами (Claude Code и аналоги), который приведёт существующее ядро системы к масштабируемому продукту. Компания небольшая, продукт уже внедрён на нескольких строительных площадках. Требуется коммерческий опыт разработки от 4 лет и уверенное владение C# или C++.

О продукте
IQoko — программно-аппаратный комплекс контроля и измерения объёма вывоза сыпучих материалов (песок, щебень, грунт). В его основе анализ данных (CV/ML) с видеокамер и лидара. Комплекс (станция) ставится на въезде площадки и фиксирует каждый проезд машины: номер, направление, объём груза. Заказчик видит, сколько реально уехало, без весов и человека на КПП.
Нам нужен инженер, который возьмёт уже разработанное ядро комплекса: реалтайм-процессы, логику проезда, работу с оборудованием — и приведёт его к единому продукту, готовому к масштабированию.
Чем предстоит заниматься
•Реалтайм-конвейер. Настраивать несколько параллельных потоков на одной машине (macOS, в перспективе Linux) без кластера: сбор данных, управление устройствами, запуск нейросетей и расчётов. Держать нужный FPS детекции при нескольких видеопотоках: многопоточность, приоритеты, очереди, нейросети на GPU.
•Алгоритмы обработки результатов нейросетей. Доработка и отладка алгоритмов, которые собирают и анализируют результаты нейросетей по многим кадрам: определение направления проезда и итогового госномера.
•Оборудование. Камеры (RTSP, ffmpeg), лидары, устройства на Ethernet и UART. Контроль ошибок периферии: сбой устройства не должен ронять проезд.
•Инференс моделей. Развёртывание на железе уже разработанных CV/ML-моделей (YOLO и др.). Обучают модели коллеги, ваша задача — чтобы они быстро и стабильно работали на станции.
•Единая система для парка. Одна версия кода (интерфейс, расчёты) на всех площадках, отличия — только в конфигурации, например другой комплект оборудования. Выпуск релизов и выкатка на весь парк станций вместе с DevOps. Участие в выборе платформы станции.
•Передача данных в облако. Сторона станции: надёжная передача проездов, кадров и облаков точек в облачный сервис, в том числе при плохом интернете или его отсутствии. Сам облачный сервис делает отдельный разработчик.
•Разбор инцидентов. Сложные случаи от тестировщика и заказчиков: по кадрам, логам и облакам точек найти причину — алгоритм, настройка площадки или оборудование.
•Контекст-инженерия. Писать понятные постановки и спецификации, вести документацию системы и контекст для агентов в репозитории. Это часть инженерной работы, а не «документация потом»: систему сейчас принимаем от уходящего разработчика, и знания должны жить в репозитории, а не в голове.
Как мы работаем
•Разработку ведём через agentic-подход и контекст-инженерию (Claude Code и аналоги): сначала контекст и постановка, потом код. Агент пишет, инженер задаёт рамки, проверяет и отвечает за результат. Это ежедневный метод, а не эксперимент.
•Задачи — в таск-трекере, ошибки — в баг-трекере. Небольшая команда: тимлид, разработчики (CV/ML, разметка, 3D, hardware), DevOps, разработчик облака, тестировщик, отдел монтажа на объектах.
•Сначала понимаем бизнес-процесс проезда, потом трогаем код.
•Комплексы уже работают на нескольких строительных площадках: доработки проверяем на живых данных и выкатываем аккуратно — ошибки сразу видит заказчик.
Что для нас важно
•Коммерческий опыт разработки от 4 лет, из них хотя бы 1–2 года — до появления AI-ассистентов.
•C# или C++ — фундамент важнее конкретного языка. Ядро сейчас на C# (.NET 8), уверенный опыт на одном из двух языков обязателен. Разработчиков на C++, готовых работать в существующем коде на C#, а не переписывать его, рассматриваем наравне. Язык нужно знать на уровне, где вы чувствуете и ловите ошибки агента, а не только принимаете его код.
•Реальный опыт многопоточности и асинхронности: потоки, очереди, гонки, блокировки, мультипроцессинг. Умение объяснить, почему система тормозит и где.
•Опыт работы с оборудованием или потоками данных в реальном времени: камеры и видео, датчики, промышленные протоколы, embedded, робототехника и т. п.
•Алгоритмическое мышление: разложить задачу на поток событий и предложить решение, а не «пусть агент сделает как-нибудь».
•Уверенная работа в Linux или macOS, Docker. Умение читать, править и интегрировать Python-скрипты.
•Реальный опыт разработки с AI-агентами (Claude Code, Codex, Cursor и т. п.) на живых проектах — не «пробовал», а «так работаю». Привычка проверять сгенерированный код: читать, гонять тесты, отлаживать, — а не доверять ему слепо.
•Умение разбираться в чужом коде с историей и вести лаконичную документацию вместе с AI-агентом.
Будет плюсом
•Развёртывание и использование ffmpeg, RTSP, OpenCV; YOLO или другие детекторы в продакшене.
•Облака точек, лидары (PCL, Open3D).
•Распознавание номеров (ANPR) или видеоаналитика.
•ASP.NET Core, фоновые службы, SQLite / Dapper.
•Развёртывание на парке устройств без стабильного интернета (edge / offline / IoT), воспроизводимые сборки, удалённые обновления.
•macOS: launchd, colima.
•Портфолио или GitHub, особенно проекты, собранные с AI-агентами, где видно, что делал агент, а что вы.
Условия
•Полностью удалённо, часовой пояс — МСК ± 4 часа. Монтаж на объектах делает отдельный отдел, выезды не требуются.
•Оформление на выбор: ТК РФ, ИП или самозанятость.
•Доход: от 220 до 300 тыс. ₽ на руки по итогам собеседования. Для кандидатов с сильным опытом реалтайм-систем и работы с оборудованием обсуждаем выше.
•Компенсируем подписки на AI-инструменты для разработки (Claude Code и аналоги).
•Онбординг с передачей дел и документацией по системе.
Почему это интересно
•Реальное железо, а не очередной CRUD: камеры, лидары, нейросети, светофор — код, который управляет физическим процессом на площадке.
•Реальный продукт на рынке: есть заказы и успешные внедрения.
•Продукт развивается: улучшения, которые вы внесёте сейчас, станут основой платформы и помогут нам быть первыми на рынке.
•Agentic-разработка в команде, где это норма.
•Полная удалёнка в нише, где почти все такие вакансии офисные. Гибкое оформление.
•Маленькая команда без бюрократии: идеи и решения принимаются быстро.
Как проходит отбор
•Скрининг-созвон, 30 минут.
•Техническое интервью, 60–90 минут: опыт, многопоточность, разбор кейса из нашей системы.
•Тестовое задание по мотивам реальных задач: реалтайм-обработка нескольких потоков данных. Можно и нужно работать с AI-агентом.
•Финальная встреча с тимлидом.

Хватит откликаться.
Получите рекомендацию.

$10 стартовых кредитов

Всего 60 секунд, полностью на автопилоте — AI-агенты Eraldt читают ваше резюме, определяют подходящие роли, находят живые вакансии и людей, которые могут вас порекомендовать, пишут им личные письма и добиваются рекомендации.

Это не отклик на вакансию: резюме не уходит в компанию, а рекомендацию именно по этой роли мы не обещаем.

Посмотрите, кто ещё получает интервью на автопилоте