CS student at Carleton in the AI & Machine Learning Co-op stream. Most of my time goes to systems programming, algorithms, and math. I build things at every layer — Linux kernel patches, bare-metal firmware, and full-stack web apps.
Project Officer (FSWEP) · Immigration, Refugees and Citizenship Canada · Jun 2026 – Aug 2026
Wrote Python automation for the IT Capacity Management team that cut down on a lot of manual work. Turned client conversations into structured requirements and put together intake reports that made it to senior management briefings.
Python Power Automate Government IT
Logistics Coordinator · cuHacking · Sep 2025 – Present
Helping run Carleton's annual hackathon. Venues, schedules, sponsors — the stuff that has to work for everything else to work.
B.Sc. Computer Science · Carleton University · 2024 – 2029
AI & Machine Learning Co-op stream, though most of my time goes to systems programming, algorithms, and math.
Data Structures Systems Programming C/C++ Linear Algebra Discrete Structures
Government of Canada Reliability Status Security Clearance · Issued 2026
Languages
Web & Tooling
Embedded & Systems
STM32 ARM Cortex-M4 POSIX Threads DKMS devkitARM
My program didn't have a course map. I built one for every program at Carleton — prerequisites as a DAG, REST API, drag-and-drop semester planner.
Python Parsel FastAPI PostgreSQL Next.js React Flow
I wanted to understand how something actually boots, so I wrote a bootloader from scratch. No HAL, no game engine — bare-metal SPI on an STM32F4 loading shareware Doom off an SD card.
C ARM Cortex-M4 Linker Scripts OpenOCD STM32F4
My Wi-Fi was capped at 54 Mbps. Should have been 1 Gbps. I traced the bug through the mac80211 stack, wrote the patch, and fixed it in the kernel.
C Linux Kernel Wireless Networking mac80211
My business card boots on a Nintendo DS. Plug it in, play a short game, get my contact info at the end. Pure C, no SDK game engine, runs on real hardware.
C NDS SDK ARM Homebrew
A ghost hunting simulation in C where every actor is its own POSIX thread on shared memory. Spent a while on the deadlock prevention. Zero deadlocks across 1,000+ ticks.
C POSIX Threads Semaphores Linux


