ОС
Олег С.
Мужчина, 46 лет
Россия, Санкт-Петербург, UTC+3
Ставка
2 142,86 Р/час
НДС не облагается
Специалист доступен с 6 июня 2025 г.
Добавьте подходящих специалистов в список и оформите заявку для предварительного бронирования времени специалистов. После оформления заявки ваш персональный менеджер организует прохождение всех необходимых проверок с вами и каждым кандидатом из заявки. Специалист привлекается к проекту только после окончательного подтверждения его выхода с вашей стороны.
Подробнее
О специалисте
Специализация
C++ разработчик
Грейд
Навыки
Отрасли
Знание языков
Английский — B2
Главное о специалисте
Опытный инженер-программист на C и C++ с более чем 15-летним опытом разработки систем реального времени, встроенных решений и кроссплатформенных графических приложений.
Профессионально занимаюсь разработкой программного обеспечения для высокоскоростных пассажирских поездов, аэрокосмической отрасли и морских судов.
Обладаю глубокими знаниями в области системного программирования для Linux, FreeRTOS и Windows, сетевых протоколов, работы с микроконтроллерами и встраиваемыми системами, разработке GUI приложений на основе Qt.
Ориентирован на результат, внимателен к деталям и всегда стремлюсь к написанию качественного, надёжного и эффективного кода.
Проекты
(16 лет 9 месяцев)
Бортовой модуль комплексирования межмодульной информации и связи с удалённым сервером по радиоканалу для высокоскоростных пассажирских поездов.
Роль
Разработчик на С++
Обязанности
Модуль отвечает за обмен данными между бортовыми системами по протоколам Ethernet и CAN, сбор и передачу телеметрии и диагностических данных на серверы в диспетчерской.
Задачи
- Проектирование, реализация и тестирование микросервисов для бортового модуля с использованием C++ и микросервисной архитектуры.
- Написание функциональных тестов.
- Исполнение DevOps функций, связанных с развертыванием микросервисов на целевой Linux-платформе.
- Сопровождение при эксплуатации.
- Реализация взаимодействия между микросервисами через протокол ZCM.
- Создание сервисов-шлюзов для обмена данными по протоколам Ethernet и CAN.
- Разработка логики обработки телеметрии и диагностических данных.
- Использование автоматного подхода к описанию поведения компонентов: описание логики через вложенные конечные автоматы.
- Генерация кода автоматов с помощью Python-скриптов на основе графических схем.
- Реализация командного интерфейса для дистанционного управления модулем и передачи данных на серверы в диспетчерской.
- Оптимизация производительности системы для работы в условиях реального времени.
- Разработка и тестирование компонентов для обработки ошибок и отказов в процессе передачи данных.
- Интеграция с другими системами по протоколам ZCM, CAN и Ethernet.
Команда
Руководитель проекта, Архитектор, Группа Разработчиков на С++, Тестировщик, Группа Инженеров-Схемотехников, DevOps-Инженер
Достижения
- Разработан и внедрён масштабируемый набор микросервисов для бортового модуля, обеспечивающий устойчивое взаимодействие с другими системами по различным протоколам.
- Реализовано межсервисное взаимодействие на основе протокола ZCM для обеспечения эффективного обмена данными.
- Оптимизированы алгоритмы обработки телеметрии и передачи данных, что позволило повысить
производительность системы в условиях ограниченной пропускной способности канала.
- Разработана система мониторинга состояния модуля с возможностью удалённого управления и передачи диагностических данных в режиме реального времени.
- Обеспечен обмен данными с другими встроенными модулями и удалёнными серверами по протоколам
Ethernet и CAN.
- Система успешно интегрирована с серверной инфраструктурой, обеспечив бесперебойный обмен данными с диспетчерскими системами.
Стек специалиста на проекте
C++, UML, tcpdump, Bamboo, GitLab, TCP, Clean Architecture, Perl, SOLID, can, JSON, XML, Bash, Git, Bitbucket, Wireshark, GDB, gtest, STL, GoF, CMake, Clion, Doxygen, Confluence, Docker, Agile, Python, Markdown, YAML, UDP, Draw.io, OOP, VirtualBox, Jira, Ethernet, TDD, DevOps-практики, CI/CD, ZCM, Microservice Architecture, posix, Real-Time Linux Development, Finite-State Machines, Linux System Development, Client-Server Architecture, zcm-tools, Visual Studio Code, can-utils, Embedded Software Development
Отрасль проекта
Logistics & Transport
Период работы
Апрель 2022 - Апрель 2025
(3 года 1 месяц)
Бортовой вычислительный модуль для высокоскоростных пассажирских поездов, предназначенный для связи с удалённым сервером по радиоканалу.
Роль
Разработчик на C++
Обязанности
Модуль занимается регистрацией поезда на сервере, передачей диагностики объекта, получением и обновлением данных о движении поезда. В процессе работы модуль может потерять связь с сервером, поэтому реализованы механизмы восстановления связи и обновления данных.
Задачи
- Разработка программного обеспечения для вычислительного модуля для взаимодействия с сервером по радиоканалу.
- Реализация взаимодействия с сервером и иным бортовым оборудованием с использованием протоколов Ethernet, CAN и RS-232 для обмена телеметрией и диагностическими данными.
- Использование автоматного подхода к описанию поведения компонентов: описание логики через вложенные конечные автоматы.
- Генерация кода автоматов с помощью Python-скриптов на основе графических схем.
- Разработка механизма регистрации поезда на сервере и передачи информации о планируемом движении.
- Интеграция с системой контроля движения поезда.
- Реализация системы восстановления связи с сервером и обновления данных при потере связи.
- Создание механизма обработки ошибок и восстановления работы при сбоях в системе.
- Оптимизация работы системы для обработки данных в реальном времени, минимизация задержек в передаче данных.
Команда
Руководитель проекта, Архитектор, Группа Разработчиков на С++, Тестировщик, Группа Инженеров-Схемотехников, DevOps-Инженер
Достижения
- Реализована система регистрации поезда на сервере с передачей диагностической информации, что позволило повысить точность и надёжность мониторинга.
- Разработан устойчивый механизм восстановления связи с сервером, что значительно улучшило надёжность системы в случае потери связи.
- Оптимизирована обработка телеметрии, что повысило скорость передачи данных и снизило нагрузку на канал связи.
- Модуль успешно интегрирован с серверной частью, обеспечена синхронизация данных с другими бортовыми системами.
Стек специалиста на проекте
C++, UML, tcpdump, Bamboo, GitLab, TCP, Clean Architecture, Perl, SOLID, can, JSON, XML, Bash, Git, Bitbucket, Wireshark, GDB, gtest, STL, GoF, CMake, Clion, Doxygen, Confluence, Docker, Agile, Python, Markdown, YAML, UDP, Draw.io, OOP, VirtualBox, Jira, Ethernet, TDD, DevOps-практики, CI/CD, ZCM, Microservice Architecture, posix, Real-Time Linux Development, Finite-State Machines, Linux System Development, Client-Server Architecture, zcm-tools, Visual Studio Code, can-utils, Embedded Software Development
Отрасль проекта
Logistics & Transport
Период работы
Март 2023 - Ноябрь 2024
(1 год 9 месяцев)
Бортовой модуль дистанционного управления электропитанием для высокоскоростных пассажирских поездов.
Роль
Программист встроенных систем на языке C и разработчик системного уровня на C++
Обязанности
Устройство обеспечивает дистанционное включение и выключение электропитания поезда, связь с удалённым оператором по радиоканалу, взаимодействие с бортовой аппаратурой по Ethernet и CAN, а также сбор и передачу диагностических данных, включая сигналы от системы пожарной сигнализации при выключенном основном питании.
Задачи
- Разработка прошивок микроконтроллеров STM32 с использованием STM32CubeMX, FreeRTOS и HAL-
библиотек.
- Реализация обмена по интерфейсам UART, SPI, I2C, RMII, 1-Wire и протоколу Ethernet.
- Управление питанием модуля, зарядкой ИБП, контролем состояния реле и линий электропитания.
- Сбор диагностических данных, включая температуру и уровень заряда, их фильтрация и передача по радиоканалу.
- Использование автоматного подхода к описанию поведения компонентов: описание логики через вложенные конечные автоматы.
- Генерация кода автоматов с помощью Python-скриптов на основе графических схем.
- Модульное тестирование прошивок с использованием Google C++ Testing Framework и отладка с помощью UART-логирования.
- Отладка на аппаратных стендах с использованием осциллографа, логического анализатора и UDP снифферов.
Команда
Руководитель проекта, Архитектор, Разработчик (встроенных систем на языке C и системного уровня на C++), Группа Инженеров-Схемотехников, DevOps-Инженер
Достижения
- Реализован стабильный двунаправленный обмен между двумя микроконтроллерами STM32, обеспечивающий слаженную работу подсистем в условиях непредсказуемой среды.
- Обеспечена надёжная передача критически важных данных по радиоканалу даже при отсутствии основного электропитания поезда.
- Встроен механизм контроля состояния источника бесперебойного питания (температура, уровень заряда, напряжение).
- Внедрены алгоритмы автоматической зарядки ИБП на основе анализа условий окружающей среды и нагрузки.
- Повышена безопасность эксплуатации за счёт устойчивого взаимодействия с системой пожарной
сигнализации.
- Успешно протестирован и внедрен в составе серийной бортовой аппаратуры для поездов.
Стек специалиста на проекте
C++, UML, tcpdump, Bamboo, Perl, freertos, SOLID, XML, Bash, Git, Bitbucket, Wireshark, GDB, gtest, STL, GoF, CMake, Stm32, Doxygen, Confluence, Docker, Agile, Python, C, Markdown, YAML, UDP, Draw.io, Jira, Ethernet, TDD, DevOps-практики, CI/CD, ZCM, Microservice Architecture, I2C, spi, 1-Wire, Digital Signal Processing, Finite-State Machines, Linux System Development, Client-Server Architecture, Oscilloscope, Digital Logic Analyzer, zcm-tools, Visual Studio Code, STM32CubeIDE, stm32cubemx, UART/USART, RMII, Embedded Software Development
Отрасль проекта
Logistics & Transport
Период работы
Апрель 2022 - Сентябрь 2023
(1 год 6 месяцев)
Формат работы
Тип занятости
Фулл-тайм, Парт-тайм (4 ч/день)
Формат работы
Удаленно
Командировки
Не готов
Релокация
За границу
Готов работать на зарубежных проектах
Да
Дипломы и сертификаты
Курс «Системное программирование для LINUX», Санкт-Петербургский Государственный Электротехнический Университет («ЛЭТИ») Институт Непрерывного Образования (ИНО) 2019 г.
Курс «Прикладное программирование на С++ с использованием Qt», Санкт-Петербургский Государственный Политехнический Университет («Политех») Институт Дополнительного Образования (ИДО) 2020 г.
Образование
Высшее
Учебное заведение
Санкт-Петербургский Государственный Электротехнический Университет («ЛЭТИ»), Факультет компьютерных технологий и информатики
Специальность
230104 Системы автоматизированного проектирования
Завершение учебы
2014 г.