Computer Engineering · McMaster University

Zain Naqvi

Firmware & embedded systems engineer. I build the low-level code that brings hardware to life, and design the boards it runs on.

Zain Naqvi

Selected Work

Six firmware and systems projects. Click any card for the full write-up.

Preemptive RTOS Kernel 01

Preemptive RTOS Kernel

A real-time kernel built from scratch on an MSP432. Assembly context switcher, priority-based preemptive scheduler, semaphores and mutexes with priority inheritance, and a first-fit heap, all measured on hardware down to the cycle.

  • ARM Cortex-M
  • Assembly
  • RTOS
CAN Bus Intrusion Detection 02

CAN Bus Intrusion Detection

A bare-metal IDS on an MSP432E401Y that flags malicious CAN traffic in real time. Five detectors split across the ISR and main loop, with roughly 8 microsecond detection latency verified through DWT cycle counting.

  • CAN
  • Bare-metal C
  • Automotive Security
Linux PCI Device Driver 03

Linux PCI Device Driver

A Linux kernel driver for the QEMU EDU PCI device covering probe and teardown, character-device I/O, MSI interrupts, and DMA, with clean goto-based error unwinding and proper per-device state.

  • Linux Kernel
  • PCI
  • Device Drivers
STM32U5 Secure Bootloader 04

STM32U5 Secure Bootloader

A bare-metal secure bootloader on an STM32U585 (Cortex-M33) building a chain of trust: register-level flash driver, A/B banking, and hardware SHA-256 over the image via DMA, with ECDSA signature verification in progress.

  • STM32
  • Cortex-M33
  • Secure Boot
ToF 3D Spatial Mapping 05

ToF 3D Spatial Mapping

A time-of-flight sensor system that reconstructs a 3D spatial map of its environment.

  • Time-of-Flight
  • Sensors
  • 3D Mapping
16-bit CPU in Verilog 06

16-bit CPU in Verilog

Bottom-up CPU built in Verilog from primitive logic gates up through a 16-bit ALU, register file, program counter, and RAM, with a simulation testbench per module. Nand2Tetris architecture, implemented in Verilog rather than HDL.

  • Verilog
  • RTL Design
  • Digital Logic
  • Testbench Simulation

About

I'm a Computer Engineering student at McMaster University working at the lowest layers of the stack, where firmware meets silicon. My focus is embedded firmware, RTOS and bare-metal systems, and silicon bring-up. I care most about the code that gets hardware running correctly and provably: schedulers, drivers, boot chains, and the timing and safety guarantees around them.

I've shipped real hardware across two robotics teams, McMaster RoboSub, where I lead electrical, and the Aerial Robotics and Drones Club, designing PCBs in Altium and working across CAN, SPI, I2C, and UART. My personal projects go deep on the same territory: a preemptive RTOS kernel, a CAN bus intrusion detection system, a Linux PCI driver, and a secure bootloader, all measured and verified on real hardware.

I'm looking for firmware, embedded systems, and silicon bring-up roles, the kind of work where getting the low level right is the whole job.

  • Firmware: C / C++ / ARM Assembly / RTOS / Bare-metal
  • Protocols: CAN / SPI / I2C / UART
  • Hardware: PCB Design (Altium) / Oscilloscopes / MCUs
  • Tooling: Keil / GDB / Git / Linux
  • Bring-up & Debug: SWD/SWO / DWT cycle profiling / hardware verification

Let's build something.

Interested in firmware, robotics, embedded systems, or software engineering opportunities? I'd love to hear from you.

zainnaqvi.200621@gmail.com