Embedded Software Engineer · Bluetooth Middleware & Controller

Jolapuram
Jayavardan

I build firmware and connectivity stacks that have to work — bare metal to RTOS, silicon to Bluetooth protocol. Associate Software Engineer at Harman International, Bengaluru, working from the Android Bluetooth stack down to controller firmware.

ARM Cortex-M4Bluetooth Classic & BLEHCI · EllisysFreeRTOS Register-Level C++ DriversCustom BootloadersBare-Metal SchedulingSPI · I2C · UART · CANSTM32 · ARM7Bengaluru, India
Get in touch GitHub ↗ LinkedIn ↗ Resume ↗
// 01 — about

Who I Am

Background

B.Tech in Electronics & Communication Engineering (CGPA 8.0/10, RGMCET Nandyal). I work at the register level: writing my own peripheral drivers, linker scripts, startup files and bare-metal schedulers from scratch, then applying that depth to Bluetooth middleware and controller work.

What I'm doing now

  • Associate Software Engineer at Harman International, Bengaluru
  • Bluetooth middleware on Android AOSP: HFP, A2DP, AVRCP, MAP, PBAP
  • HCI snoop and Ellisys analysis, firmware loading via UART, RCA against the SIG core spec
  • PTS certification cycles and OTA log analysis

Core strengths

  • Cortex-M4 architecture: registers, NVIC, AAPCS, exception model
  • Real-time scheduling: SysTick, PendSV, manual context switching
  • Protocols: Bluetooth profiles, CAN, SPI, UART
  • Debug: GDB + OpenOCD, logic analyzer, SEGGER SystemView

Target roles

  • Bluetooth Middleware Engineer
  • Controller Firmware Engineer
  • Embedded Software Engineer
  • Firmware Developer
// 02 — experience

Work & Training

[Mon YYYY] –
Present

Associate Software Engineer

Harman International · Bengaluru
  • Develop and maintain Bluetooth middleware on Android AOSP (HFP, A2DP, AVRCP, MAP, PBAP) in Java and C/C++
  • Support controller and firmware work: firmware loading via UART, HCI snoop and Ellisys capture analysis, logic analyzer signal verification
  • Root cause analysis on field and test issues using the SIG core spec, OTA logs, ADB and Perfetto
  • Run PTS certification cycles for Classic and BLE profiles
Jan 2026 –
[Mon YYYY]

Bluetooth Developer Intern

Harman International · Bengaluru
  • Implemented and debugged HFP, A2DP, MAP, PBAP and AVRCP on the Android Bluetooth stack
  • Captured and analysed OTA logs, supported PTS testing, debugged in Java using ADB
Completed

Embedded Software Trainee

Vector India · Bengaluru
  • Interrupt-driven firmware and drivers for SPI, I2C, UART, CAN on ARM7 LPC2129
  • FreeRTOS task design, TCP/IP fundamentals, Linux system programming
Completed

ARM Cortex-M4 Bare-Metal Program

Argyan Tech
  • Cortex-M4 deep-dive: registers, NVIC, exceptions, AAPCS, startup code
  • Built a bare-metal scheduler using SysTick & PendSV; debugged with GDB/OpenOCD
Completed

PIC Microcontroller Course

Argyan Tech
  • Embedded C on PIC16F877A: timers, ADC, UART, GPIO at register level in MPLAB X (XC8)
// 03 — projects

Featured Work

🧩 STM32F407 Bare-Metal C++ Driver Library

Register-level peripheral drivers for the STM32F407VG Discovery board: no HAL, no LL, built against the reference manual with a clean object-oriented C++ API.

  • GPIO, RCC, EXTI, NVIC, SysTick, USART, SPI and I2C drivers
  • PlantUML class and architecture diagrams, theory notes, and working examples per driver
Embedded C++STM32F407VGRegister ProgrammingPlantUML
View on GitHub ↗
🔌 Custom UART Bootloader — STM32F407VG

A production-style bootloader built without vendor middleware: the mechanism behind safe OTA and field updates.

  • Flash erase, memory write, and CRC32 verification before application jump
  • Custom VTOR relocation, linker scripts and startup code; Python host utility over UART
Embedded CUARTARM Cortex-M4Python
View on GitHub ↗
⏱️ Bare-Metal Task Scheduler

Round-robin scheduler on STM32F407VG, built entirely from the command line.

  • Hand-written linker scripts and startup files
  • Manual stack frame manipulation via SysTick & PendSV; GDB + OpenOCD debug
GCC ARM CLIOpenOCDGDB
View on GitHub ↗
🚗 Real-Time Vehicle DAQ — FreeRTOS

Multi-sensor vehicle monitoring with concurrent SPI, I2C and UART acquisition on ARM7 LPC2129.

  • FreeRTOS tasks across multiple bus types
  • Trace and profiling with SEGGER SystemView
ARM7 LPC2129FreeRTOSSystemView
View on GitHub ↗
➕ 32-bit Hybrid Adder — VLSI

Ling and Ripple Carry adder for a speed/area trade-off, designed in Cadence Virtuoso.

Cadence VirtuosoVLSI Design
// 04 — tech stack

Skills & Tools

Languages
Embedded CEmbedded C++JavaPythonARM Assembly
Bluetooth & Protocols
Classic & BLEHFPA2DPAVRCPMAPPBAPHCISIG Core SpecOTASPII2CUARTCANMQTTHTTP
Microcontrollers & Boards
STM32F407VGARM7 LPC2129STM32F103C8ESP32PIC16F877A8051Raspberry Pi 4
RTOS & Bare-Metal
FreeRTOSCustom BootloadersLinker ScriptsStartup CodeNVICSysTickPendSVDMA
Debug & Toolchain
ADBEllisysHCI SnoopLogic AnalyzerPerfettoGDBOpenOCDGCC ARMKeil µVisionSTM32CubeIDESEGGER SystemViewGit · GitHub
Platforms & Practices
Android AOSP Bluetooth StackLinux System ProgrammingBlueZ (learning)Root Cause AnalysisJira · AgileCI/CD
// 05 — certifications

Credentials

Eduskills & MicrochipEmbedded Systems
FastBit Embedded Brain AcademyARM Cortex-M, STM32 MCU1 & MCU2
NPTELCloud Computing
NPTELIntroduction to IoT
GeeksforGeeksGit & GitHub
AIMERS SocietyAI Model Development
🥈 2nd Place — Circuit Debugging, Ripple 2K24🎖️ Appreciation Award — Chatbot Development, AIMERS Society
// 06 — contact

Get in Touch

locationBengaluru, Karnataka, India
Open to Bluetooth Middleware, Controller Firmware, and Embedded Software Engineer roles.

I respond to all serious enquiries within 24 hours.