Software engineer · embedded systems and integration · Gurgaon, India

SAURAV KUMAR

I connect hardware to software: microcontrollers to phones, devices to backends, and native libraries and SDKs to apps.

Embedded work comes first. When a project needs it, I also build the Android app, the web app or the backend on the other end of the wire.

  • B.Tech ECE, NIT Sikkim (2025)
  • Open to new roles · can join immediately
26projects, each with a case study
10apps live on Google Play
70+STM32 chip IDs one Android app can program
273REST routes in one platform API

Work scope

CHIP TO APP
TO BACKEND

Each line is a path I built or worked on, read left to right. The project link has the details.

  1. STM32ST-Link (SWD)USB OTGC bridge (stlink, libusb)JNIKotlin app

    Nyas, on Google Play. stlink and libusb built from source with the NDK, a C bridge Kotlin calls over JNI, later rewritten to be stateless.Nyas →

  2. STM32 firmware (HAL)UARTcustom framed protocolDWIN touchscreen

    Diamond Machine HMI, from my embedded internship: checksummed packets, and corrupt data puts the machine in a safe state.Diamond Machine HMI →

  3. ESP8266 + OLED + buttonsMQTTFastAPI serviceSQLite

    A 16-slot ring queue on the device holds events while the broker is down, then drains after reconnect.Life System Desk Device →

  4. whisper.cppC++17 coreJNIKotlin app

    Offline speech to text on the phone, 3.6 to 6.1 times real time on a Dimensity 8300.Murmur →

  5. MicroPython (C, built with the NDK's clang)JNIKotlinhome-screen widget

    Each widget is a sandboxed script: a 500 ms CPU budget, a 4 MB heap and a 10 s wall clock.Magic Widget →

  6. Flutter appKotlin platform channelZoho Payments native SDK

    Payments in the delivery marketplace app; Razorpay goes through its Flutter plugin.Dasho →

  7. Android foreground serviceGPS every 10 sSocket.IOExpress backendcustomer's map

    Live order tracking in the delivery marketplace.Delivery Marketplace API →

  8. driver app GPSSocket.IO, HTTP fallbackNestJS buffer (5 s batches)live maps on web and phone

    EzeFare trip tracking: each point is broadcast before any database write.EzeFare →

  9. React Native gamelocal Kotlin Expo modulePlay Games Services

    Sky City leaderboards; Play purchases are verified by Firebase Cloud Functions.Sky City →

  10. RazorpayZoho PaymentsGoogle Routes, Places, DirectionsMSG91 SMS and OTPAWS S3FCM push

    Third-party services wired into the EzeFare (NestJS) and delivery marketplace (Express) backends.Delivery Marketplace API →

  11. Razorpay webhookShiprocketZeptoMailCloudflare R2Mistral

    Services wired into Polestark, my Next.js store.Polestark →

Main work · Embedded & On-device

EMBEDDED WORK

Firmware, USB tooling, devices on MQTT, and native C and C++ running inside Android apps.

01

Nyas

Live on Google Play

An Android app on Google Play that programs STM32 chips through an ST-Link over USB. No PC, no network.

STM32ST-Link (SWD)USB OTGC bridge (stlink, libusb)JNIKotlin app

  • Stateless native bridge: every command opens, connects, runs and closes, so a stale USB file descriptor or a shared session can't leak between commands
  • Erase guards: a zero address or size is refused instead of falling through to a full-chip wipe, and empty flash and SRAM ranges are rejected
  • CMake build reworked so libusb ships as its own shared library (relinkable, as LGPL 2.1 requires) and the native code links with 16 KB page alignment for Google Play

SLIS Solutions · Under NDA · 2026 · Kotlin · Jetpack Compose · Android NDK / JNI · C / C++ · CMake · stlink

02

Diamond Machine HMI

Deployed in production

Industrial touchscreen control for a diamond-cutting machine — STM32 + DWIN HMI over a custom UART protocol.

STM32 firmware (HAL)UARTcustom framed protocolDWIN touchscreen

  • Custom UART protocol: framed, checksummed, timeout-aware — designed for electrically noisy factory floors
  • Screens for control, facet patterns (16P/8P/8R), grain orientation and status/notifications
  • Safety-first state machine: any protocol corruption → immediate safe state

SLIS Solutions · Deployed on a working machine · 2024 · STM32 HAL · C · DWIN HMI · UART · Custom framing protocol

03

Murmur

Unreleased

Offline speech to text on Android: a C++17 core over whisper.cpp, 3.6 to 6.1 times real time on a phone.

whisper.cppC++17 coreJNIKotlin app

  • C++17 core with RAII classes that own their whisper contexts, built for arm64 through CMake and the NDK
  • A release-only bug caught in development: R8 could rename a JNI callback the C++ looks up by name, which would have silently stopped transcript segments in release builds. Keep rules fixed it, checked in mapping.txt
  • A Room-backed job queue: work interrupted by a crash or an OS kill is re-queued at startup and resumes from the last committed chunk

Personal product · Solo · 2026 · Kotlin · Jetpack Compose · C++17 · whisper.cpp · JNI · LiteRT-LM (Gemma)

04

Life System Desk Device

Working prototype · personal use

An ESP8266 desk device that logs my task events to a FastAPI service over MQTT, and holds on to them when the network drops.

ESP8266 + OLED + buttonsMQTTFastAPI serviceSQLite

  • PlatformIO firmware in C++ for the ESP8266, with a serial provisioning CLI (Wi-Fi, MQTT, topic prefix) and settings saved to EEPROM
  • Events published as JSON with a recorded_at time from NTP, so a late delivery still carries the real time of the press
  • 16-slot ring queue on the device; the oldest event is dropped only when the queue is full

Personal project · Solo · 2026 · ESP8266 (NodeMCU) · C++ · PlatformIO · MQTT · SSD1306 OLED · Python

05

Magic Widget

Unreleased

Android home-screen widgets that are MicroPython scripts, run in a sandbox embedded through the NDK.

MicroPython (C, built with the NDK's clang)JNIKotlinhome-screen widget

  • MicroPython's embed port compiled for each shipped ABI with the NDK's clang by my own build script
  • A pthread watchdog per run: a 500 ms CPU budget read from the VM thread's own CPU clock and a 10 s wall-clock cap, so a script waiting on the network spends wall time, not CPU budget
  • One interpreter at a time behind a lock, a single native bridge function and a 4 MB heap

Personal product · Solo · 2026 · Kotlin · Jetpack Compose · C (NDK, clang) · MicroPython · JNI · WorkManager

06

PicoAndroid IDE

Published · investable prototype

A full MicroPython IDE for Raspberry Pi Pico that runs on your phone — code, flash and debug over USB-OTG.

  • Smart REPL with ANSI support, paste-mode (Ctrl-E) block transfer and interrupt handling over raw USB-serial
  • On-device file system browser for the Pico's LittleFS storage
  • GPIO monitor and I2C/SPI protocol analyzers for hardware debugging without a logic analyzer

CraftsmenLab product · 2025 - 2026 · Kotlin 2.0 · Jetpack Compose · USB-serial · MicroPython · Material 3

07

Motor Health Monitor

Prototype ready

Predictive maintenance for industrial motors — vibration analysis on-device, BLE to Android, OTA updatable.

  • ADC + DMA pipeline sampling vibration at 4 kHz without CPU stalls
  • Matrix Profile time-series anomaly detection running on-device
  • BLE link to an Android app for live health dashboards

CraftsmenLab · Prototype for industrial clients · 2025 · STM32 · ESP32 · FreeRTOS · ADC + DMA @ 4 kHz · Matrix Profile · BLE

08

ESP32 Serial-to-TCP Gateway

Scalable architecture proven

Legacy industrial equipment, meet the network — UART/RS485 bridged to TCP/IP with a scalable C++ architecture.

  • Bidirectional UART/RS485 ↔ TCP bridging with connection recovery
  • Configurable framing for different legacy protocols
  • Architecture designed for multi-plant fleet deployment

CraftsmenLab · Industrial IIoT · 2024 - 2025 · ESP32 · C++ · TCP/IP · UART / RS485 · Wi-Fi

Also

APPS, WEB
AND BACKEND

Good to have, and often the other end of an integration. Screenshots and details are in each case study.

Android & Mobile Apps (6)

  • SiteCalcLive on Google Play

    Ten offline construction calculators that draw a to-scale diagram as you type. On Google Play as Stair & Rafter Calculator.

  • EzeFare Driver & EmployeeLive on Google Play

    One React Native codebase, two Android apps on Google Play: live trips for drivers and the employees they pick up.

  • GeoStampLive on Google Play

    GPS timestamp camera for field teams on Google Play: stamped photos, project logs and one-tap PDF site reports.

  • DashoLive on Play Store · 4.7★

    All-in-one delivery & marketplace super-app — customer, merchant and driver flows in one Flutter platform.

  • PassManLive on Play Store

    A password manager and encrypted-notes vault for Android, with a native Kotlin autofill service.

  • ComposerOn GitHub

    A modern notes app in Jetpack Compose — MVVM, Room and Hilt done cleanly. Open source.

Mobile Games (3)

  • Sky CityLive on Google Play

    A cozy 3D merge puzzle built with React Native and three.js, live on Google Play.

  • SpindleLive on Play Store

    Fidget-spinner game with a Play-Store referral reward system — Flutter front, Node.js economy behind.

  • Fidget SpinnerLive on Google Play

    A small Flutter spinner game on the Flame engine, live on Google Play.

Web (6)

  • PolestarkLive · polestark.com

    My own D2C store, built solo: a Next.js shop with an AI shopping assistant grounded in the live catalog.

  • ToolSamuraiDeployed · toolsamurai.com

    An engineering-tools platform: 25 hardware & firmware calculators, a paid API, and an embeddable widget system.

  • LeadStudioWorking v0.4

    An agency CRM that finds local businesses on the map, AI-scores them, and hosts the pitch site it generates.

  • GcodeAnim StudioWorking prototype

    Drop in a G-code file, get a cinematic 3D animation of your print building layer by layer — exported to MP4.

  • HQRunning in production (private)

    A self-hosted agentic life manager — installable PWA with push, live sync and a cron scheduler that works while you don't.

  • Chaitanya DoorsLive · chaitanyadoors.com

    Catalog website + admin CMS for a door manufacturer — one of my first client deliveries, still live.

Backend & AI (3)

  • EzeFareDelivered · 2 apps live on Google Play

    Employee-transport platform for companies, vendors and drivers: a 273-route NestJS API, a 91-page web app and two Android apps.

  • PulseFleetBenchmarked · v2.0

    Self-hostable industrial IoT platform — MQTT fleets, TimescaleDB telemetry, rules, alarms and OTA at 2,000 msg/s.

  • Delivery Marketplace APIServed the Play Store app

    The backend of a three-sided delivery marketplace (customers, sellers and delivery partners): Express, PostgreSQL and Socket.IO.

How we'll work

NO SURPRISES,
JUST MILESTONES

The same agency-grade process behind EzeFare and Dasho: written proposals, milestone acceptance, audit trails.

  1. 01

    Scope it straight

    A short call, then a written proposal with milestones, acceptance criteria and a price. No vague estimates.

  2. 02

    Design the system

    Architecture before pixels — data model, APIs, auth, infra. You see the plan before the first commit.

  3. 03

    Ship in milestones

    Working builds you can touch every milestone — store-ready APKs, staging URLs, live dashboards.

  4. 04

    Run it in production

    CI/CD, monitoring, store compliance, post-launch iteration. I've operated what I've shipped.