[ ТЕЛЬ-АВИВ · 32.08°N 34.78°E · ДОСТУПЕН ]
ПРОКРУТИ
СИСТЕМА ОНЛАЙН GA · PORTFOLIO · v2.0
01Software Engineer
02Embedded-разработчик
03Hardware-инженер

Делаю связанные устройства целиком — плату, bare-metal прошивку внутри неё, протокол, на котором она говорит, и веб-сервисы, к которым она подключается.

Инженер на стыке платы, прошивки и веба.

Делаю связанные устройства целиком — плата, bare-metal прошивка на ней, протокол, на котором она разговаривает, и веб-сервисы поверх.

Большинство задач пересекают слои за один день — утром схемотехника, в обед SPI-захват, вечером Go API. Нравится отвечать за всю цепочку, а не останавливаться на одной её границе.

// Сейчас ➜
Заканчиваю кастомную замену RC-пульта для электрического кресла: своя плата, ~9600 строк bare-metal C на nRF52840, восстановленный IEEE 802.15.4 протокол и Go-тулинг вокруг.

Фокус
Hardware + firmware + fullstack — связанные устройства и платформы целиком
Опыт
13+ лет · GitHub с 2012
Языки общения
EN · RU · HE
Локация
Тель-Авив · UTC+3 · удалённо по всему миру
Языки
C · C++ · Go · TypeScript · Python · Shell · Kotlin
Железо
nRF52840 · ESP32 · RP2040 · STM32 · CH32V003 · своя плата → JLCPCB
RF / Шины
IEEE 802.15.4 · 433/868/915 МГц ISM · USB HID · SPI · CAN · I²C · UART
Протоколы
JT/T 808 · JT/T 1078 · CMSV6/7/8 · реверс кастомного бинарного

Реальные проекты, реальное железо.

[ 01 / 08 ] Многомодульная платформа
Samsonix CMSV
Платформа управления автопарком и CMSV — построена для Samsonix

Многомодульная платформа управления автопарком и видеотелематикой (CCTV-on-vehicle), построенная для Samsonix как клиентский продукт. Многолетняя продакшн-эксплуатация; развёрнута за Cloudflare → Caddy через Docker Compose. Покрывает GPS-трекинг, живое + архивное видео, жизненный цикл SIM-карт, security-форензику плюс внутренний эмулятор устройств для end-to-end стенд-тестов.

Как устроено
  • cmsv_api — Go-ядро: chi, templ, нативный Fyne desktop, Vue 3 SPA, HTMX-админка, MSSQL/MySQL/SQLite, Gorilla WebSocket
  • cmsv-forensics — Go security/форензика: AES-128, ~12 правил детекта атак, nginx-парсер, Swagger API
  • eyeson-go — Go (Fiber) + React 18 + Docker + MSSQL: 3 телеком-провайдера, SSE, headless Chromium для автоматизации порталов
  • besql — TypeScript / Fastify SQL-over-HTTP шлюз с per-key ACL, AST-валидацией, IP allowlist (live: besqlapi.samsonix.com)
  • cmsv-proxy — nginx видео reverse proxy перед CMSV8 с allowlist по device ID (public)
  • EMULATOR808 — Go-эмулятор MDVR-устройств по JT/T 808-2013 с JT1078 видео по RTP/TCP
  • pelephone-go — переиспользуемый телеком API-клиент, выделенный из SIM-сервиса
GoTypeScriptPythonFynetemplchiFiberFastifyVue 3React 18HTMXWebSocketMSSQLDocker ComposeJT/T 808JT/T 1078
[ 02 / 08 ] Hardware + Firmware + RF реверс
FERNO-RC
Кастомный пульт ДУ для электрического кресла

Замена «с нуля» — железо плюс прошивка плюс протокол — для проприетарного RC-пульта моторизованного кресла FERNO. Документации на протокол нет, запасной OEM-пульт стоит больше $2000. Кастомная 2-слойная плата, ~9600 строк bare-metal C на nRF52840, независимо восстановленный IEEE 802.15.4 application-протокол и набор Go-инструментов для конфигурации, ручного управления и стенд-тестирования.

Как устроено
  • PCB rev 2 — 2-слойная ENIG, footprint совместим с Nice!Nano, полный Gerber + flying-probe + DXF под JLCPCB
  • ~9600 строк C bare-metal на nRF52840 — без RTOS, без Nordic SDK, только TinyUSB; собственный IEEE 802.15.4 драйвер на NRF_RADIO
  • Сон ~0.4 µA — SystemOFF + GPIO-SENSE wake → годы автономии от 2000 mAh LiPo
  • Тройная перекрёстная верификация — SPI-захваты chair-side + pult-side + over-air RF-сниффер (Seeed XIAO); 156 сессий
  • Кастомный плагин KingstVIS (C++ на KingstVIS SDK) для Kingst LA1010
  • Crash audit pipeline — fault-обработчики сохраняют PC + LR в .noinit RAM, декодируются через arm-none-eabi-addr2line
  • Per-chip лицензирование — токен из FICR DEVICEID через обфусцированный mixing-hash; UF2 bootloader для DFU
  • Сопутствующий тулинг — Go web-конфигуратор (WebSerial), Go desktop chair controller (WebSocket), эмулятор кресла (PlatformIO)
nRF52840bare-metal CIEEE 802.15.4PCBJLCPCBKingst LA1010KingstVIS SDKTinyUSBUF2OLED SSD1306GoWebSerialWebSocketPlatformIO
[ 03 / 08 ] Личная инфраструктура
vpn-panel
Собственная панель управления VPN

Web-админка + Telegram-бот для управления self-hosted мультипротокольным VPN. Написана для личного пользования — готовые панели плохо клеились с комбинацией Hiddify + AmneziaVPN на удалённых нодах под SSH. Эксплуатируется как основной инструмент.

Как устроено
  • FastAPI + Uvicorn бэкенд на :8100 / :8000, Jinja2-шаблоны, JWT-аутентификация
  • aiogram 3.x Telegram-бот как пользовательский фронт (провижининг, QR, статус)
  • Apscheduler прокатывает reconciliation + health-чеки каждые 5 минут
  • asyncpg → PostgreSQL для состояния; SSH-туннели для управления удалёнными нодами
  • Интеграции с Hiddify + AmneziaVPN, генерация QR для one-tap онбординга
  • Деплой пакуется в Docker Compose
PythonFastAPIaiogram 3JWTasyncpgPostgreSQLApschedulerSSHHiddifyAmneziaVPNDocker Compose
[ 04 / 08 ] USB HID + реверс
spacemouse
DIY-замена 3Dconnexion SpaceMouse Pro

DIY-замена 3Dconnexion SpaceMouse Pro Wireless. Прошивка эмулирует оригинал на USB HID — работает без драйвера в Fusion 360, SolidWorks, Blender. Механика и электрика open-hardware; прошивка добавляет калибровку, компенсацию дрейфа и serial-меню, которых нет у оригинала.

Как устроено
  • USB HID-дескриптор имитирует настоящий SpaceMouse Pro Wireless — хост видит «родное» устройство, без драйвера
  • Чтение Hall-сенсоров с dead-zone и по-осевой калибровкой в EEPROM
  • Компенсация дрейфа по 6 осям (X/Y/Z трансляция, Rx/Ry/Rz вращение)
  • Modifier-кнопка в v2.0 — перемаппит жесты пока зажата
  • Serial-меню для live-тюнинга dead-zone, чувствительности, полярности осей
C++USB HIDRP2040STM32Hall sensorsEEPROM3Dconnexion
[ 05 / 08 ] Реверс CAN
ESP32RET
Захват, replay и анализ CAN-шины

Инструмент захвата, replay и реверса CAN-шины на базе ESP32. Целевые платы — Macchina A0 и EVTV ESP32Due. Рабочая стартовая точка для декодирования недокументированного автомобильного CAN-трафика там, где коммерческие тулы (Vector CANalyzer) избыточны или недоступны.

Как устроено
  • Arduino-ESP32 с драйверами esp32_can и esp32_mcp2517fd
  • Захват всех фреймов на настраиваемом битрейте в SPIFFS / SD
  • Веб-интерфейс: live-мониторинг, фильтр по ID, replay
  • Поддержка DBC для декодирования известных каталогов сообщений
  • Подобрана своя partition-схема под увеличенный образ
C / C++Arduino-ESP32esp32_canCAN busMacchina A0EVTVDBCWiFiSPIFFS
[ 06 / 08 ] Embedded мод (Public · 17★)
arm-iar-ts100-mod
Кастомная прошивка для паяльника TS100

Кастомная модификация прошивки портативного паяльника TS100 — заменяет стоковую прошивку расширенным набором функций (калибровка, профили, UI-доработки) на оригинальном железе ARM Cortex-M3. Самый звёздный публичный репозиторий аккаунта.

Как устроено
  • Тулчейн IAR Embedded Workbench под оригинальный Cortex-M3 SoC
  • Замена стокового UI и обработки профилей
  • Публичный drop-in firmware — модификация железа не требуется
ARM Cortex-M3IARPureBasicTS100
[ 07 / 08 ] SDR и декодирование RF
rtl_433
Универсальный декодер ISM-диапазона

Tracking + экспериментальный fork rtl_433 — де-факто open-source декодера устройств на нелицензируемых ISM-диапазонах. База для съёма метеостанций, датчиков, пультов и трафика проприетарных устройств при реверс-инжиниринге, плюс embedded-ветка rtl_433_ESP под ESP32 + CC1101.

Как устроено
  • Front-end: RTL-SDR, SoapySDR, LimeSDR, HackRF или embedded-вариант на CC1101
  • 400+ декодеров «из коробки» опознают и парсят пакеты известных устройств
  • Под каждое исследование добавляются собственные декодеры под проприетарные протоколы
  • ESP32-сборка стримит декодированные сообщения по MQTT в домашнюю автоматизацию
  • Портативный C99, дружит с ARM (Raspberry Pi, Cortex-A)
CRTL-SDRSoapySDRLimeSDRHackRFCC1101ESP32MQTT
[ 08 / 08 ] Mobile + IoT
MQTTGateOpener
Android-открывалка ворот по MQTT

Маленькое нативное Android-приложение для открывания гаражных ворот по MQTT. Один из самых ранних мобильных проектов автора — оставлен как пример нативной Android-интеграции с IoT message bus.

Как устроено
  • Нативный Android (Kotlin)
  • Eclipse Paho MQTT клиент публикует команду open / close в брокер
  • Брокер пробрасывает команду на устройство у ворот, которое замыкает реле
KotlinAndroidEclipse PahoMQTTIoT

Что я делаю

01

Реверс протоколов

Декодирую проприетарные беспроводные, шинные и сетевые протоколы. Логический анализатор, захват пакетов, реконструкция на битовом уровне.

02

Embedded прошивки

Прошивки на nRF52840, ESP32, RP2040, STM32 — от bare-metal до RTOS, USB HID, RF-приёмники, CAN-инструменты.

03

Бэкенд и API

Бэкенды на Go и TypeScript — REST API, эмуляторы протоколов, SQL-шлюзы с контролируемым доступом.

04

Fleet и видео-системы

Интеграция с платформами мониторинга транспорта (CMSV6/7/8): REST-клиенты, reverse proxy, эмуляция JT/T 808 / JT/T 1078.

05

Сеть и VPN

Self-hosted VPN-панели, Hiddify + AmneziaVPN, nginx reverse proxy с контролем доступа.

06

Hardware / разводка плат

Схемотехника, 2-слойная PCB, BoM, полный Gerber + flying-probe + DXF под JLCPCB / PCBWay. Bare-metal прошивка под плату.

Технический стек

Языки
U1
  • C · C++ · Go · TypeScript
  • Python · Shell · Kotlin
  • PureBasic (legacy)
  • Bare-metal C как daily-driver
Embedded и прошивки
U2
  • Bare-metal nRF52840 (без SDK)
  • ESP-IDF · Arduino-ESP32
  • RP2040 · STM32 · CH32V003 (RISC-V)
  • TinyUSB · FreeRTOS · PlatformIO · IAR
Hardware и PCB
U3
  • Схемотехника · 2-слойная PCB
  • Gerber · Excellon · DXF · BoM
  • Workflow JLCPCB / PCBWay
  • Hall sensors · OLED SSD1306 · ADC
RF, шины и протоколы
U4
  • IEEE 802.15.4 · 2.4 GHz
  • 433 / 868 / 915 МГц ISM
  • USB HID · SPI · CAN · I²C · UART
  • JT/T 808 · JT/T 1078 · CMSV6/7/8 · DBC
Бэкенд и фронтенд
U5
  • Go: chi · Fiber · templ · Fyne · Gorilla WS
  • Node / Fastify · FastAPI · aiogram
  • Vue 3 · React 18 · HTMX
  • REST · SSE · WebSocket
Data, инфра и инструменты
U6
  • MSSQL · MySQL · SQLite · PostgreSQL · MQTT
  • Docker Compose · Caddy · nginx · Cloudflare
  • Kingst LA1010 + KingstVIS SDK
  • RTL-SDR · CC1101 · headless Chromium

Напишите.

Хотите собрать устройство, декодировать протокол или починить существующую систему? Email — самый быстрый способ.

Базируюсь в Тель-Авиве. Работаю удалённо по всему миру.

// обычно отвечаю в течение 48ч