Разрабатываю ПО встраиваемых систем с 2013 года. В настоящее время разрабатываю ПО для электронных устройств с микроконтроллерами (STM32, ESP32, в прошлом AVR) на языке С (в некоторых проектах С++), с применением современных библиотек и RTOS (например FreeRTOS, ChibiOS).
Имею навыки работы со всей периферией микроконтроллеров, такой как: UART, CAN, SPI, I2C, USB, DMA, ADC, DAC и т.д., различными интерфейсами (например RS-232, RS-485, CAN) и протоколами (например Modbus, MQTT, и различными отраслевыми протоколами).
В работе использую системы сборки (make, cmake), компиляторы (GCC), отладочные средства (gdb, openOCD), системы контроля версий (Git, SVN), контейнеры Docker, CI/CD (Drone).
Обладаю умением читать электрические схемы, PCB (Altium Designer, P-CAD), работаю с приборами и инструментами (осциллограф, мультиметр, блоки питания, паяльник и т.п.).
В целом увлекаюсь темами Embedded, IoT, Advanced C.
Имею навыки развёртывания и администрирования удалённых серверов (ssh, nginx, docker).
Использую Python для решения задач автоматизации и разработки утилит.
В данный момент руковожу небольшой группой разработчиков: определение и выдача заданий, контроль выполнения, code review, merge RP.
Есть опыт разработки для Android (Java).
Github: https://github.com/embedcat
Сайт-визитка: http://kip.rockevents.ru/
Примеры крупных реализованных проектов:
- Блок управления топливораздаточной колонкой (выпущено около 1000 изделий). Предназначен для управление процессом налива топлива на АЗС по команде управляющей системы. Модульная система, состоящая из одного или нескольких блоков, связанных по шине CAN. Работа с датчиками, LCD-экраном, связь с управляющей системой по RS-485, управление исполнительными устройствами.
- Система управление газотурбинными двигателем (опытная партия). Предназначена для управления запуском газотурбинного двигателя, поддержания заданного качества управления параметрами работы двигателя. Система состоит из нескольких блоков связанных по шине CAN. Работа с большим числом различных датчиков, управление большим числом исполнительных механизмов, формирование телеметрии и отправка её на систему верхнего уровня.
- Телеметрический контроллер для вендинговых аппаратов (выпущено более 20000 устройств). Предназначен для считывания состояния торгового автомата, управления наличными и безналичными средствами оплаты. В процессе работы происходит сбор, обработка и отправка телеметрической информации на сервер мониторинга. Работа с MDB-шиной (UART), GSM-модем, LCD-экран, обработка данных по протоколам, работа с энергонезависимой памятью.
- Эквайринговый терминал (выпущено более 5000 устройств). Предназначен для считывания банковских карт или мобильных телефонов. После обработки данных карты запрос на проведение транзакции отправляется в зашифрованном виде в процессинговый центр, где и принимается решение о проведении операции по карте. Работа со считывателями карт st25, GSM-модем, LCD-экран, приём и обработка данных по протоколам.
- Личное: сервис для автоматизации проведения спортивных соревнований (Django, Postgres). Развернуто на виртуальном сервере, интеграция с системой приёма платажей yoomoney.