[ TEL-AVIV · 32.08°N 34.78°E · AVAILABLE ]
SCROLL
SYSTEM ONLINE GA · PORTFOLIO · v2.0
01Software Engineer
02Embedded Developer
03Hardware Engineer

I build connected devices end-to-end — the PCB, the bare-metal firmware inside it, the protocol it speaks, and the web services it talks to.

Engineer working across PCB, firmware, and web.

I build connected devices end-to-end — the PCB, the bare-metal firmware on it, the protocol it speaks, and the web services on top.

Most of my work crosses layers in a single day — schematic capture in the morning, an SPI capture at lunch, a Go API in the evening. I like owning the whole chain instead of stopping at one of its boundaries.

// Currently ➜
Shipping a custom replacement RC remote for a motorized wheelchair: own PCB, ~9600 lines of bare-metal C on nRF52840, re-derived IEEE 802.15.4 protocol, and Go-based tooling around it.

Focus
Hardware + firmware + fullstack — end-to-end connected devices and platforms
Experience
13+ years · GitHub since 2012
Speaks
EN · RU · HE
Based
Tel Aviv · UTC+3 · remote worldwide
Languages
C · C++ · Go · TypeScript · Python · Shell · Kotlin
Hardware
nRF52840 · ESP32 · RP2040 · STM32 · CH32V003 · custom PCB → JLCPCB
RF / Buses
IEEE 802.15.4 · 433/868/915 MHz ISM · USB HID · SPI · CAN · I²C · UART
Protocols
JT/T 808 · JT/T 1078 · CMSV6/7/8 · custom binary RE

Selected work — real projects, real hardware.

[ 01 / 08 ] Multi-Module Platform
Samsonix CMSV
Fleet management & CMSV platform — built for Samsonix

Multi-module fleet-management and CCTV-on-vehicle platform built for Samsonix as the customer-facing telematics product. Years of production use; deployed behind Cloudflare → Caddy with Docker Compose. Covers vehicle tracking, live + archive video, SIM-card lifecycle, security forensics, plus an internal device emulator for end-to-end bench testing.

How it works
  • cmsv_api — Go core: chi, templ, native Fyne desktop, Vue 3 SPA, HTMX admin, MSSQL/MySQL/SQLite, Gorilla WebSocket
  • cmsv-forensics — Go security/forensics: AES-128, ~12 attack-detection rules, nginx log parser, Swagger API
  • eyeson-go — Go (Fiber) + React 18 + Docker + MSSQL: 3 telecom providers, SSE, headless Chromium for portal automation
  • besql — TypeScript / Fastify SQL-over-HTTP gateway with per-key ACL, AST validation, IP allowlist (live: besqlapi.samsonix.com)
  • cmsv-proxy — nginx CMSV8 video reverse proxy with allowlisted device IDs (public)
  • EMULATOR808 — Go JT/T 808-2013 MDVR device emulator with JT1078 video over RTP/TCP
  • pelephone-go — reusable telecom API client extracted from the SIM service
GoTypeScriptPythonFynetemplchiFiberFastifyVue 3React 18HTMXWebSocketMSSQLDocker ComposeJT/T 808JT/T 1078
[ 02 / 08 ] Hardware + Firmware + RF RE
FERNO-RC
Custom RC remote for a motorized wheelchair

Hardware-and-firmware replacement for the proprietary RC remote of a FERNO motorized wheelchair. The OEM remote has no public protocol docs and a spare unit costs north of $2000. From-scratch project: custom 2-layer PCB, ~9600 lines of bare-metal C on nRF52840, an independently re-derived IEEE 802.15.4 application protocol, plus a small Go ecosystem for configuration, control, and bench testing.

How it works
  • PCB rev 2 — 2-layer ENIG, Nice!Nano-compatible footprint, full Gerber + flying-probe + DXF for JLCPCB
  • ~9600 LoC C bare-metal on nRF52840 — no RTOS, no Nordic SDK, only TinyUSB; own IEEE 802.15.4 driver on NRF_RADIO
  • Sleep ~0.4 µA — SystemOFF + GPIO-SENSE wake → years of standby on a 2000 mAh LiPo
  • Triple-cross verification — chair-side + pult-side SPI captures + over-air RF sniffer (Seeed XIAO); 156 captured sessions
  • Custom KingstVIS analyzer (C++ on the KingstVIS SDK) for the Kingst LA1010 logic analyzer
  • Crash audit pipeline — fault handlers persist PC + LR into .noinit RAM, decoded via arm-none-eabi-addr2line
  • Per-chip licensing — token from FICR DEVICEID through an obfuscated mixing hash; UF2 bootloader for DFU
  • Companion tooling — Go web configurator (WebSerial), Go desktop chair controller (WebSocket), chair emulator firmware (PlatformIO)
nRF52840bare-metal CIEEE 802.15.4PCBJLCPCBKingst LA1010KingstVIS SDKTinyUSBUF2OLED SSD1306GoWebSerialWebSocketPlatformIO
[ 03 / 08 ] Personal Infrastructure
vpn-panel
Self-hosted VPN management panel

Web admin panel + Telegram bot for managing a self-hosted, multi-protocol VPN setup. Built for personal use because off-the-shelf panels did not cleanly handle Hiddify + AmneziaVPN over SSH-managed nodes. Battle-tested as the daily-driver VPN management surface.

How it works
  • FastAPI + Uvicorn backend on :8100 / :8000, Jinja2 templates, JWT auth
  • aiogram 3.x Telegram bot as the user-facing surface (provisioning, QR codes, status)
  • Apscheduler reconciliation + health checks every 5 minutes
  • asyncpg → PostgreSQL for state; SSH tunneling for managing remote nodes
  • Hiddify + AmneziaVPN integrations, QR code generation for one-tap onboarding
  • Packaged as Docker Compose
PythonFastAPIaiogram 3JWTasyncpgPostgreSQLApschedulerSSHHiddifyAmneziaVPNDocker Compose
[ 04 / 08 ] USB HID + Reverse Engineering
spacemouse
DIY 6-DOF SpaceMouse Pro replacement

DIY replacement for the 3Dconnexion SpaceMouse Pro Wireless. Firmware emulates the original on the USB HID layer so it works driver-free in Fusion 360, SolidWorks, Blender. The mechanical and electrical sides are open-hardware; the firmware adds calibration, drift compensation, and a serial menu the original does not expose.

How it works
  • USB HID descriptor mimics the real SpaceMouse Pro Wireless — host treats it as the genuine device, no driver
  • Hall-effect sensor reads with dead-zone + per-axis calibration stored in EEPROM
  • Drift compensation across 6 axes (X/Y/Z translation, Rx/Ry/Rz rotation)
  • Modifier-button function in v2.0 — re-maps gestures while held
  • Serial menu for live tuning of dead-zones, sensitivity, axis polarity
C++USB HIDRP2040STM32Hall sensorsEEPROM3Dconnexion
[ 05 / 08 ] CAN Reverse Engineering
ESP32RET
CAN bus capture, replay & analysis

ESP32-based CAN bus capture, replay, and reverse-engineering tool. Targets the Macchina A0 and EVTV ESP32Due boards. A practical starting point for decoding undocumented automotive CAN traffic where commercial tools (Vector CANalyzer) are overkill or unavailable.

How it works
  • Arduino-ESP32 with esp32_can and esp32_mcp2517fd drivers
  • Captures all frames at configurable bitrate to SPIFFS / SD
  • Web UI for live frame monitoring, ID filtering, and replay
  • DBC file support for decoding known message catalogues
  • Tuned partition scheme for the larger application image
C / C++Arduino-ESP32esp32_canCAN busMacchina A0EVTVDBCWiFiSPIFFS
[ 06 / 08 ] Embedded Mod (Public · 17★)
arm-iar-ts100-mod
Custom firmware for the TS100 soldering iron

Custom firmware modification for the TS100 portable soldering iron — replaces the stock firmware with an extended feature set (calibration, profiles, UI tweaks) on the original ARM Cortex-M3 hardware. The most-starred public repository on the author's GitHub.

How it works
  • IAR Embedded Workbench toolchain against the original Cortex-M3 SoC
  • Replaces stock UI and profile handling
  • Public drop-in firmware build — no hardware modification required
ARM Cortex-M3IARPureBasicTS100
[ 07 / 08 ] SDR & RF Decoding
rtl_433
Generic ISM-band RF decoder

Tracking + experimentation fork of rtl_433, the de-facto open-source decoder for devices on unlicensed ISM bands. Used as a base for sniffing weather stations, sensors, remotes, and proprietary device traffic during reverse-engineering work, plus an embedded path via rtl_433_ESP for ESP32 + CC1101 deployments.

How it works
  • Front-end: RTL-SDR, SoapySDR, LimeSDR, HackRF, or — embedded — CC1101
  • 400+ device decoders identify and parse known packets out of the box
  • Custom decoders added per-investigation for proprietary protocols
  • ESP32 build streams decoded messages over MQTT into home automation
  • Portable C99, ARM-friendly (Raspberry Pi, Cortex-A)
CRTL-SDRSoapySDRLimeSDRHackRFCC1101ESP32MQTT
[ 08 / 08 ] Mobile + IoT
MQTTGateOpener
Android MQTT garage door opener

Small native Android app for opening garage doors over MQTT. One of the author's earliest mobile projects — kept here as an example of native Android integration with an IoT message bus.

How it works
  • Native Android (Kotlin)
  • Eclipse Paho MQTT client publishes the open / close command to a broker
  • Broker fans the command out to the gate-side device, which actuates the relay
KotlinAndroidEclipse PahoMQTTIoT

What I do

01

Protocol Reverse Engineering

Decoding proprietary wireless, bus, and network protocols. Logic analyzer work, packet capture, bit-level reconstruction.

02

Embedded Firmware

Firmware on nRF52840, ESP32, RP2040, STM32 — bare-metal up to RTOS, USB HID, RF receivers, CAN bus tools.

03

Backend Services & APIs

Go and TypeScript backends — REST APIs, protocol emulators, SQL gateways with controlled access.

04

Fleet & Video Systems

Integration work on vehicle tracking platforms (CMSV6/7/8): REST clients, reverse proxies, JT/T 808 / JT/T 1078 emulation.

05

Network & VPN Infrastructure

Self-hosted VPN panels, Hiddify + AmneziaVPN, nginx reverse proxies with access control.

06

Hardware / PCB Design

Schematic capture, 2-layer PCB layout, BoM, full Gerber + flying-probe + DXF output ready for JLCPCB / PCBWay. Bare-metal firmware to match.

Technical stack

Languages
U1
  • C · C++ · Go · TypeScript
  • Python · Shell · Kotlin
  • PureBasic (legacy)
  • Bare-metal C as a daily-driver
Embedded & firmware
U2
  • Bare-metal nRF52840 (no SDK)
  • ESP-IDF · Arduino-ESP32
  • RP2040 · STM32 · CH32V003 (RISC-V)
  • TinyUSB · FreeRTOS · PlatformIO · IAR
Hardware & PCB
U3
  • Schematic capture · 2-layer PCB
  • Gerber · Excellon · DXF · BoM
  • JLCPCB / PCBWay workflow
  • Hall sensors · OLED SSD1306 · ADC
RF, buses & protocols
U4
  • IEEE 802.15.4 · 2.4 GHz
  • 433 / 868 / 915 MHz ISM
  • USB HID · SPI · CAN · I²C · UART
  • JT/T 808 · JT/T 1078 · CMSV6/7/8 · DBC
Backend & frontend
U5
  • Go: chi · Fiber · templ · Fyne · Gorilla WS
  • Node / Fastify · FastAPI · aiogram
  • Vue 3 · React 18 · HTMX
  • REST · SSE · WebSocket
Data, infra & tools
U6
  • MSSQL · MySQL · SQLite · PostgreSQL · MQTT
  • Docker Compose · Caddy · nginx · Cloudflare
  • Kingst LA1010 + KingstVIS SDK
  • RTL-SDR · CC1101 · headless Chromium

Let's talk.

Have a device you want to build, a protocol to decode, or an existing system that needs help? Email is the quickest way to reach me.

Based in Tel Aviv. Available for remote work worldwide.

// typically replies within 48h