About Me

Who I Am

Hi! I'm Linden, a 4th-year Software Engineering student at the University of Ottawa with a passion for low-level systems, game engines, and reverse engineering.

I specialize in building things without much abstraction — from ground-up graphics pipelines to memory injection tools and UI frameworks. My main project is Kiwi3D, a fully custom game engine written entirely in C++ using just <windows.h> — but I'll leave that for the Projects page :)

Whether I'm designing a renderer, writing x86 assembly, or poking at Windows internals, I enjoy projects that challenge me to think deeply about how systems work under the hood. I care a lot about code clarity, long-term design, and writing tools that feel intuitive to use.

I'm currently looking for opportunities in game engine development, embedded systems, reverse engineering, or any role where I can keep pushing my understanding of low-level software.

My Past

I've been coding for nearly a decade now. I actually started with C++ back in middle school, using some version of DevC++ (an IDE for C++) I found online for free.

I built some ASCII-based games in the console window — like Block Breaker or a top-down 2D game — mostly because I didn't know how to do anything with real graphics.

Despite having barely any resources (mostly Google and Stack Overflow), I found myself drawn to systems where I could control everything — even if I barely understood how at the time.

Over the years, I explored other languages like JavaScript, Python, and Java, but I eventually returned to C++ — this time with a much deeper understanding of how to use it well.

I guess my love of low-level programming was always kind of there!

My Goals

I have a lot of goals for the near future, but I'll keep the focus here on my main long-term goal.

My biggest goal is to build my own game engine and create a Steam-worthy game on it. This goal drives most of my personal work — from systems design to low-level understanding.

My main project so far, Kiwi3D, was a stepping stone toward that vision. It was built with no external libraries, but I've since realized that a no-libs approach isn't feasible for a large-scale engine. Archiving Kiwi3D was a way to preserve what I built and clear the path for a full-fledged version in the future.

My README for Kiwi3D even mentions:
“A future version is planned, featuring a full redesign using Vulkan and modern tools.”
That will be the full-fledged engine.