I'm an Engineer and I like to build things
I am a firmware engineer with a background in electrical engineering and growing experience in embedded systems development. I focus on writing reliable, efficient firmware for microcontrollers and sensor systems, with a strong interest in low-level hardware-software integration and real-time applications. I specialize in bare-metal firmware development on AVR and ARM Cortex-M microcontrollers, building efficient, deterministic systems with hardware insight and software rigor.
I work primarily in embedded C, C++ and Python targeting ARM Cortex-M and AVR architectures, with experience in bare-metal environments using GCC/Make-based toolchains. I have practical experience developing peripheral drivers and implementing communication protocols including UART, SPI, and I²C, with an understanding of interrupt handling, timing constraints, and resource management in constrained systems. With a consistent emphasis on deterministic behavior, I apply modular design, defensive coding, and validation/testing to build firmware that is readable, maintainable, and hardware-aware.
My project work includes an interrupt-driven UART driver for the ATmega328P written in bare-metal C++, utilizing circular buffers and ISR-safe data handling for asynchronous serial communication; an Arduino-based I²C infrared sensor node with attention to polling behavior and power considerations; and a C-based circuit impedance solver applying numerical methods to circuit analysis. These projects reflect my ability to move between hardware concepts and firmware implementation independently.
I hold a B.S. in Electrical Engineering and am currently pursuing the Dartmouth Computing with Linux Professional Certificate to strengthen my systems programming foundation and deepen my familiarity with Linux kernel interfaces and development workflows.
Proficient in C programming with expertise in writing efficient, maintainable, and portable code. Experienced in low-level programming, memory management, and implementing data structures and algorithms for performance-critical applications
Experience in Embedded Systems, including firmware development and Linux-based platforms. Expert in bare-metal C programming, low-level hardware interfacing, memory management, and optimization for resource-constrained environments
Autodidact, who takes initiative to learn new skills and independently move projects forward
Proficiency in C++ with experience using the Standard Library (STL), implementing common data structures and algorithms, and applying Object-Oriented Design principles to develop readable, portable, and maintainable code
Proficient in developing and automating test cases to validate functionality, detect edge cases, and maintain quality, readable code
Proficient in firmware debugging across the full stack — from register-level hardware inspection to runtime fault analysis — using GDB, JTAG, and oscilloscopes to resolve issues in resource-constrained embedded systems
The DiligentInvestor is a personal finance tool for quality investors
RISC-V single-cycle processor design and implementation for Digital Hardware Design