adi

adi

A bit about me

I'm a firmware and embedded systems engineer. For years I've written the software that runs industrial and wireless devices from the inside: RTOS and bare-metal firmware, low-level drivers and board bring-up, and the low-power radio links that keep data moving when the network and power supply won't cooperate.

I've taken products from a bare PCB all the way to production, chased down the field failures nobody else could reproduce, and engineered the reliability that makes hardware worth trusting. Along the way I've led cross-functional teams and shipped everything from safety-critical instruments to battery-powered sensors that run for years in the field. More on what I do below.

Focus areas

Firmware & board bring-up

RTOS and bare-metal firmware on ARM microcontrollers: drivers, ISRs, timers, comms interfaces, and diagnostics that survive production. Also the unglamorous part, bringing up a new board and checking power, signal paths, and I/O.

IoT gateways & edge integration

Embedded Linux gateway apps that acquire, validate, buffer, and route device data. I connect sensors, analyzers, flowmeters, and wireless devices over industrial buses and MQTT, then keep the data flowing cleanly.

Reliability & field diagnostics

Reproducing field failures across hardware, firmware, Linux, and the network, then building in retry logic, stale-data prevention, watchdogs, power-cycle recovery, and backup communication paths.

Low-power wireless

Firmware for battery-powered LoRaWAN and sub-GHz devices, where every microamp counts. Sleep-state management, sensor duty-cycling, power-budget work for long deployments, plus RF validation and compliance.

Test & automation

Python and Bash automation, manufacturing and calibration test rigs, and JSON data pipelines. The kind of tooling that makes results repeatable and catches defects before they ship.

Lab & debug

At home on the bench with oscilloscopes, logic and spectrum analyzers, JTAG/SWD, protocol sniffers, Wireshark, and SDR tools. Down to reading a schematic and checking the assembly when something looks off.

On-device ML

TinyML and CNN-based classification on resource-constrained MCUs, so devices can detect events and anomalies locally instead of streaming raw data upstream.

Control & motion

PID control loops and stepper motor drivers, plus high-rate 16-bit ADC/DAC signal paths for systems that have to measure and react in real time.

What I work with

Embedded & firmware

RTOS Bare metal Event-driven Peripheral drivers BSP ISRs Timers 16-bit ADC / DAC (high-rate) MEMS sensors Low-power optimization

MCUs & processors

STM32 (M7 · M4 · M3 · M0) ESP32 MSP430 · MSP432 PIC18 TI C2000 DSPs Microchip

Edge ML & signals

TinyML CNN classification On-device inference PID control Stepper motor drivers

Linux & IoT gateways

Embedded Linux Data acquisition Buffering & routing Local MQTT brokers Node-RED Remote troubleshooting

Connectivity & protocols

I2C · SPI · UART CAN · USB RS232 · RS485 Modbus TCP/RTU EtherNet/IP TCP/IP · Ethernet MQTT / Sparkplug Bluetooth LE LoRa / LoRaWAN Sigfox Cellular / LTE

Reliability & diagnostics

Retry logic Stale-data prevention Watchdogs Power-cycle recovery Local buffering Fault handling Log analysis Packet capture

Lab, bench & hardware

Oscilloscopes Logic analyzers Spectrum analyzers JTAG / SWD Protocol sniffers Wireshark SDR for LPWAN Schematic capture PCB design verification Assembly & rework Flexible electronics

Languages & automation

C C++ Python Bash JavaScript MATLAB Test automation JSON data pipelines

Toolchains & IDEs

ARM toolchains Keil STM32CubeIDE Code Composer Studio Eclipse PlatformIO Vitis / XSDK Arduino Git · GitLab · Bitbucket

Let's connect

Based in the San Francisco Bay Area. The best way to reach me is by email at [email protected]. I'm also on LinkedIn and GitHub.

Email me LinkedIn