// embedded firmware engineer · vadodara, in

Hi, I'm VisheshI build the firmware that runs the things you don't think about.

I work close to the silicon — Linux on iMX6ULL, ESP32, STM32 L-series — shipping OTA, drivers and Qt apps that have to keep working in the field.

Currently @ Halma India · open to embedded linux work
Vishesh Varma
embedded · linux · firmware
Vishesh Varma
// 01 — about
basedVadodara, IN
timezoneUTC +5:30
experience4 years
currentlyHalma India
statusavailable

I'm a firmware engineer with four years of shipping embedded products — from eBike controllers to industrial Linux devices.

I like the layer where physics meets software: writing non-blocking drivers, tuning RTOS schedulers, fighting bandwidth limits to ship an OTA update, tracing weird behaviour with a logic analyzer at 2am.

Right now I'm at Halma India building a Qt/C++ Linux application on NXP iMX6ULL — customising device trees, cutting build times 4× with cross-compilation, and designing OTA mechanisms that work on storage-constrained hardware without A/B partitioning.

Off the clock: smart-home tinkering, finance reading, a long-running D&D campaign, and currently rebuilding a Raspberry Pi Zero 2W into a self-hosted homelab — which, yes, is what's serving this page.

// 02 — capabilities

The toolbox — chips, languages, and the things in between.

languages
Embedded CC++PythonBash
silicon
NXP iMX6ULLESP32STM32 L-seriesAtmelRaspberry Pi
protocols
I²CSPIUART / USARTRS-232PS/2BLE
stack
Embedded LinuxFreeRTOSQtSTM HALPlatformIOYoctoDevice Tree
practice
OTA designCross-compilationStatic analysisGitflowAgile + DevOpsCode review
// 03 — experience

Four years, two companies, a lot of soldering irons.

Oct '23 — present
Ahmedabad, IN

Embedded Firmware Developer

Halma India Pvt. Ltd.
  • Engineered a Qt/C++ Embedded Linux application — cut system response time 50% via multiprocessing and tight optimisation.
  • Designed an OTA update mechanism for storage-constrained devices without A/B partitioning, reliable under bandwidth limits.
  • Set up cross-compilation toolchains that reduced build times 4× on host machines.
  • Customised Device Tree sources for in-house boards based on NXP iMX6ULL SoMs.
  • Introduced static analysis (cppcheck, flawfinder) and Agile + DevOps practice — bug-fix turnaround down 30%.
iMX6ULLQtC++LinuxYoctoOTASTM32
Jan '22 — Oct '23
Ahmedabad, IN

Embedded Firmware Developer

Monarch Innovation Pvt. Ltd.
  • Architected firmware for an in-house eBike platform — multi-user profiles, BMS, motor control, graphical UI, OTA, and BLE companion app.
  • Leveraged ESP32 dual-core to isolate mission-critical tasks (braking, motor control) from auxiliary features.
  • Wrote non-blocking drivers for concurrent peripheral data acquisition.
  • Trimmed unused dependencies; reduced flash usage by 40%.
  • Established Gitflow versioning and a code-review culture for maintainable firmware.
ESP32FreeRTOSBLEBMSMotor ControlEmbedded C
May '22
GTU, Ahmedabad

B.E. Electronics & Communication Engineering

Gujarat Technological University · CGPA 8.12
  • Electives: Python, Embedded Systems, Computer Networks, IoT, ML.
// 04 — selected projects

Things I've built. A few are still humming somewhere.

// 01case study →

OTA without A/B

A staged update mechanism for storage-constrained Linux devices that survives flaky cellular and partial writes — without doubling up on flash.

LinuxBashC++Yocto
// 02repo ↗

eBike firmware platform

End-to-end firmware for a connected eBike: BMS control, brushless motor driving, BLE pairing, user profiles, and an OTA path through a phone app.

ESP32FreeRTOSBLEC
// 03writeup →

Qt on iMX6ULL

Custom Yocto image, tuned device tree, and a multi-process Qt/C++ application that cut response time in half on an industrial SBC.

QtiMX6ULLYoctoDTS
// 04repo ↗

pi-zero homelab

This site. A Raspberry Pi Zero 2W running an ARMv8 build of nginx behind Cloudflare Tunnel, fronted by a static site I keep iterating on.

Pi Zero 2WNginxCloudflareLinux
// 05notes →

Non-blocking driver kit

Reusable interrupt-driven state machines for concurrent peripheral I/O on bare-metal — read sensors without stalling the main loop.

Embedded CSTM HALRTOS
// 06writeup →

Static-analysis pipeline

cppcheck + flawfinder + clang-tidy wired into CI for an embedded codebase. Caught 30+ classes of bug before flash and made our review process honest.

CIcppcheckclang-tidy
// 05 — get in touch

Have an embedded project that needs to ship? Email me at [email protected] — or find me on GitHub / LinkedIn.

based in
Vadodara, IN
timezone
IST (UTC+5:30)
availability
open to embedded linux roles
response time
usually within a day