MS-7000 embedded engineer series
RUN  CH1 XY modeTrig: available now
Move your cursor over the tracet = 7.0 yrs
TIME/DIV
VOLTS/DIV
CH1 experience~7 years
CH2 worked withCiena, Cisco, Micatu
CH3 industriesMedical, telecom, energy
CH4 statusImmediate start

Manish Soni

Senior Embedded Linux & Firmware Engineer, Gurugram, India

I write the code between the silicon and the product. Medical training devices on ESP32 and FreeRTOS, the optical control plane at Ciena, UEFI and Yocto for Cisco platforms, and real-time Linux on ARM for a US energy company.

The board I've built

Every component on this 3D board is a real project. Drag to turn it, then click a part to lift it off the board and read about it. The full list is in the bill of materials below.

The 3D board needs WebGL. Use the project buttons beside it instead.
Drag to rotate. Click a part.

    Bill of materials

    Every project I've built, listed the way parts are listed for a board. The two open-source ones have public code you can read and run.

    M2 on GitHub

    foc-motor-control

    A C99 field-oriented control library for BLDC and PMSM motors that tunes its own gains from the motor's parameters. A Python simulator runs the same C code against a motor model, with encoder steps, sensor noise and a one-cycle delay, before any hardware is powered. About 2 KB of flash on a Cortex-M4F.

    Simulated speed and current traces: start-up to 2000 rpm, a load step, and a reversal to −1500 rpm
    TP1 on GitHub

    ebpf-drvlat

    An eBPF tool for embedded Linux that shows how long interrupt handlers run, how long threaded IRQs wait for the CPU, and how long each I2C and SPI transfer takes. Built on libbpf CO-RE with tracepoints only, so it runs on kernels without kprobes.

    $ sudo drvlat -m softirq -n BLOCK -d 3
    
      BLOCK   count 80   avg 12.5 us   max 56.5 us
           usecs        : count  |distribution          |
           2 -> 3       : 12     |*********             |
           4 -> 7       : 10     |*******               |
           8 -> 15      : 34     |**********************|
          16 -> 31      : 23     |***************       |
          32 -> 63      : 1      |*                     |
    RefProjectWhat I didWhen
    TP1eBPF driver latency tracerOpen sourceLatency histograms for hard IRQs, softirqs, threaded IRQs, I2C and SPI, with a slow-event log and JSON output. CI builds it and loads it into a live kernel on every push.
    • eBPF
    • libbpf CO-RE
    • C
    2026
    M2FOC motor-control libraryOpen sourcePortable C99 FOC with model-based auto-tuning, decoupling feed-forward and SVPWM, verified in closed loop against a Python motor simulator.
    • C99
    • FOC / SVPWM
    • Python
    • Cortex-M4F
    2026
    M1BLDC speed control proof of conceptClient PoC, deliveredMATLAB/Simulink simulation of FOC speed control for a BLDC motor, with an agentic workflow that automates controller tuning. Delivered and demonstrated to the client.
    • MATLAB
    • Simulink
    • FOC
    2026
    U1CPR training manikinMobile Programming LLCTime-of-flight and airflow sensors measure compressions and rescue breaths; live feedback streams to a tablet app over BLE.
    • ESP32-S3
    • FreeRTOS
    • BLE
    • ToF
    2026
    L1Auscultation trainerMobile Programming LLCNFC tags mark chest positions; the firmware plays the matching heart or lung sound through an audio IC when the stethoscope is placed.
    • ESP32-S3
    • NFC
    • Audio IC
    • BLE
    2026
    D1Anatomical LED zone controllerMobile Programming LLCDrives 33 WS2812 LEDs across heart, lung and bowel zones. Replaced a multi-packet text protocol with a binary one that fits a full frame in a single 136-byte BLE write, and pinned tasks across both cores.
    • ESP32
    • RMT
    • BLE GATT
    • FreeRTOS
    2026
    U4Shared firmware platformMobile Programming LLCOne hardware-abstracted ESP32 codebase for several training products. DMA offload, a dual-core task split, and OTA and bootloader fixes.
    • ESP-IDF
    • OTA
    • DMA
    2026
    J1Optical L1 control planeCienaCarrier optical transport: channel provisioning and upgrade paths. Built an RPC test-injection hook that cut bug-reproduction time, and cleared Coverity findings before each monthly release.
    • C/C++
    • Linux
    • MISRA C
    2025–26
    U2Cisco NCS platform firmwareCapgemini, for CiscoAMI Aptio V UEFI updates with Intel security fixes, validated over JTAG. Yocto recipes and layers, BIOS and iPXE boot, secure boot, and CMocka tests in Jenkins CI.
    • UEFI
    • Yocto
    • JTAG
    • PCIe/FPGA
    2023–25
    U3Grid data processor DSPChetu, for Micatu (USA)Ported Python harmonic and noise filters to C for the M410B on ARM Cortex-A with Wind River real-time Linux, validated on QEMU and then on hardware.
    • ARM Cortex-A
    • Wind River Linux
    • DSP
    2021–23
    U5Telephone exchange product lineCopper ConnectionsFirmware for a 4-line, 32-extension exchange, a PAX, a digital PBX and key telephone sets, with SPI, UART and I2C drivers.
    • AVR
    • STM32
    • NXP KE-02Z
    • RTOS
    2020–21
    K132-zone burglar alarmCopper ConnectionsFirmware for a commercial security panel with 32 wired zones.
    • Embedded C
    2020–21
    U6Pulse monitoring deviceLarkAI HealthcareSPI and I2C sensor drivers, interrupt routines and sensor data processing.
    • STM32F103
    2020
    Q1Touch-free hand dispenserLarkAI HealthcareIR and ultrasonic sensing firmware for an automatic dispenser.
    • AVR ATmega
    2020
    J2Raspberry Pi 3 custom LinuxPersonal, in progressKernel and device-driver development on the Cortex-A53, and a custom Linux image built with Yocto.
    • Linux kernel
    • Yocto
    2026

    Career on a logic analyzer

    Each channel is a skill. The signal goes high where I used it in production. Click a company to decode that capture.

    Captures run from earliest (left) to most recent (right).

    How I can help

    Freelance, contract or full-time. Remote worldwide, with on-site visits for key milestones.

    CH1

    Build the firmware

    From first prototype to production release, for IoT, AIoT, robotics and medical devices. Sensors, BLE, OTA updates and a clean RTOS design.

    CH2

    Fix what's stuck

    Random resets, timing bugs, BLE drops, boot or OTA failures. I take out the scope and the debugger and find the root cause.

    CH3

    Level up your team

    Code reviews, unit tests in CI and hands-on mentoring, so your junior engineers ship with confidence.

    B.Tech, ECE, Bharati Vidyapeeth's College of Engineering (GGSIPU), 2016–2019 Diploma, ECE, Guru Nanak Dev Polytechnic, 2013–2016

    Open a UART to me

    Type your message and press Transmit. It opens in your email app, ready to send. I usually reply within a day.