Skip to content
View JJAYAVARDAN's full-sized avatar

Block or report JJAYAVARDAN

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
JJAYAVARDAN/README.md

Hi, I'm Jolapuram Jayavardan πŸ‘‹

Embedded Software Engineer Β· Bluetooth Stack Developer Β· ARM Cortex-M4 Specialist

I build firmware and connectivity stacks that have to work β€” bare metal to RTOS, silicon to protocol.

LinkedIn Email Portfolio Resume


πŸ§‘β€πŸ’» About Me

I'm an Embedded Software Engineer specializing in bare-metal ARM programming, RTOS architecture, and Bluetooth protocol stacks. Currently a Bluetooth Developer Intern at Harman International, where I work on Android's Bluetooth stack β€” implementing and certifying HFP, A2DP, MAP, and PBAP profiles for automotive infotainment systems.

What sets my background apart: I don't just call embedded APIs β€” I've built a register-level C++ peripheral driver library from scratch (GPIO, RCC, EXTI, NVIC, SysTick, USART, no HAL/LL), a custom UART bootloader (flash erase, CRC verification, VTOR relocation), and a bare-metal task scheduler with zero HAL/IDE dependency, writing my own linker scripts, startup files, and manually manipulating Cortex-M4 stack frames. That's the kind of register-level fluency that's increasingly rare as more engineers stay in HAL/Arduino-land.

  • πŸŽ“ B.Tech, Electronics & Communication Engineering β€” CGPA 8.0/10, RGMCET, Nandyal
  • πŸ”§ Comfortable across the stack: silicon registers β†’ drivers β†’ RTOS β†’ application protocol
  • πŸ“‘ Production exposure to Bluetooth certification workflows (PTS testing, OTA capture)
  • 🎯 Targeting: Embedded Software Engineer / Firmware Engineer / Bluetooth-Connectivity Developer roles
  • 🌱 Currently deepening Linux kernel-level Bluetooth internals and real-time systems design

πŸ› οΈ Tech Stack

Languages C C++ Java Python Assembly

Microcontrollers & Boards STM32 ESP32 ARM7 PIC RaspberryPi

RTOS & Bare-Metal FreeRTOS Custom Bootloaders Linker Scripts Startup Code NVIC SysTick PendSV DMA Interrupts

Protocols SPI I2C UART CAN HFP A2DP MAP PBAP OTA MQTT HTTP

Platforms Linux Android ROS (Basics) PCB Design

Tools & Debugging Git GitHub GCC ARM OpenOCD GDB Keil Β΅Vision STM32CubeIDE MPLAB X SEGGER SystemView ADB Logic Analyzer Cadence Virtuoso ESP-IDF


πŸš€ Featured Projects

A from-scratch, register-level peripheral driver library for the STM32F407VG Discovery board β€” no HAL, no LL.

  • Six drivers built directly against the reference manual: GPIO, RCC, EXTI, NVIC, SysTick, USART
  • Clean object-oriented C++ API β€” GPIO owns an RCC instance, EXTI takes port+pin, static NVIC methods β€” direct register struct access underneath
  • Documented with PlantUML class and architecture diagrams, plus per-peripheral theory and register breakdowns
  • Example applications for each driver (LED blink, button + EXTI interrupt, USART loopback)
  • Why it matters: shows the same register-level fluency as the bootloader/scheduler below, applied to a reusable driver layer instead of a one-off program
  • Embedded C++ STM32F407 Register Programming PlantUML

Built a production-style bootloader with no vendor middleware.

  • Flash erase, memory write, and CRC32 integrity verification before application jump
  • Custom VTOR relocation, linker scripts, and startup code to separate bootloader/app memory regions
  • Companion Python host tool for firmware transfer and command handling over UART
  • Why it matters: demonstrates the exact mechanism (safe, verifiable firmware updates) used in real OTA/field-update systems
  • Embedded C UART ARM Cortex-M4 Python

A cooperative/round-robin task scheduler built entirely from the CLI β€” no HAL, no IDE.

  • Hand-written linker scripts and startup files for precise memory layout control
  • Manual Cortex-M4 stack frame manipulation via SysTick & PendSV for context switching
  • Debugged at the register and stack-frame level using GDB + OpenOCD
  • Why it matters: proves RTOS internals are understood, not just used
  • GCC ARM OpenOCD GDB

Multi-sensor vehicle monitoring system on ARM7 LPC2129.

  • FreeRTOS tasks coordinating concurrent SPI, I2C, and UART sensor reads
  • Task-level profiling and RTOS trace visualization with SEGGER SystemView
  • ARM7 LPC2129 FreeRTOS SEGGER SystemView

Custom adder architecture combining Ling and Ripple Carry logic for optimized speed/area trade-off, designed in Cadence Virtuoso.

  • Cadence Virtuoso VLSI Design

πŸ“Œ Remaining repo links are placeholders β€” push each project to its own repo (not buried in a single course-projects folder) so each one is independently star-able, forkable, and indexable by GitHub search.


πŸ”­ What I'm Working On

  • πŸ“² Shipping Bluetooth profile features (HFP/A2DP/MAP/PBAP) and running PTS certification cycles at Harman International
  • 🧩 Extending the STM32F407 driver library with SPI, I2C, and CAN drivers
  • 🐧 Going deeper into Linux BlueZ internals to connect my embedded background to the Android Bluetooth stack I work in daily
  • 🧰 Migrating my project history out of a single repo into individually documented, pinned repositories (see recommendations below)

πŸ“š Currently Learning

  • Linux kernel-level Bluetooth (BlueZ) architecture
  • Advanced RTOS scheduling and real-time systems design
  • Secure OTA update design (signed firmware, rollback protection)

πŸ“Š GitHub Stats

GitHub Stats GitHub Streak

Top Languages

GitHub Activity Graph

⚠️ Note: stats widgets reflect public commit activity, which will look thin until projects are split into individual repos with real commit history (see below). This is normal for embedded portfolios and easy to fix.


πŸ’Ό Experience Snapshot

Role Company Focus
Bluetooth Developer Intern Harman International Android BT stack β€” HFP, A2DP, MAP, PBAP; PTS certification
Embedded Software Trainee Vector India Interrupt-driven drivers (SPI/I2C/UART/CAN), FreeRTOS, Linux
ARM Cortex-M4 Bare-Metal Program Argyan Tech Cortex-M4 architecture, custom scheduler, AAPCS
PIC Microcontroller Course Argyan Tech Register-level Embedded C on PIC16F877A

πŸ“œ Certifications

Embedded Systems β€” Eduskills & Microchip Β· ARM Cortex / STM32 MCU1 & MCU2 β€” FastBit Embedded Brain Academy Β· Cloud Computing β€” NPTEL Β· Introduction to IoT β€” NPTEL Β· Git & GitHub β€” GeeksforGeeks

πŸ† Achievements

πŸ₯ˆ 2nd Place, Circuit Debugging β€” Ripple 2K24 Β |Β  πŸŽ–οΈ Appreciation Award, Chatbot Development β€” AIMERS Society


πŸ“¬ Contact

πŸ“§ Email j.jayavardan.r@gmail.com
πŸ”— LinkedIn linkedin.com/in/jayavardan j
🌐 Portfolio https://jjayavardan.github.io/JJAYAVARDAN
πŸ“„ Resume View / Download
πŸ“ Location Bengaluru, Karnataka, India

Open to: Embedded Software Engineer Β· Firmware Developer Β· Bluetooth/Connectivity Engineer roles

Pinned Loading

  1. stm32f407-baremetal-cpp-drivers stm32f407-baremetal-cpp-drivers Public

    Production-quality bare-metal C++ drivers for the STM32F407VG Discovery using direct register programming (No HAL/LL).

    C++ 1

  2. stm32f407-task-scheduler stm32f407-task-scheduler Public

    Bare-metal task scheduler for STM32F407 using SysTick and PendSV interrupts

    Assembly

  3. Data-Acquisition-System-for-LPC21xx Data-Acquisition-System-for-LPC21xx Public

    Embedded C-based Data Acquisition System (DAQ) for LPC21xx (ARM7TDMI-S) using Keil uVision. Monitors temperature (LM35), voltage, and light intensity (LDR via ADC), along with real-time data from D…

    HTML

  4. code-review-env code-review-env Public

    A real-world OpenEnv environment where an AI agent reviews code and identifies bugs, security issues, and performance problems.

    Python

  5. ESP_32-programing-projects ESP_32-programing-projects Public

    All ESP32 projects

    C

  6. PIC16F877A PIC16F877A Public

    PIC16F877A Programming

    SWIG