About
Fourth-year mathematics undergraduate at UBC. Most of what I build is backend, and I usually want to know how the tools I am using actually work underneath — which is how most of my projects start.
How I got to software
I started with programming courses in high school, then spent a long stretch building static HTML and CSS websites. That is a small thing to start from, but it is the part that stuck: you write something down and it exists, and the gap between the two is entirely yours to close.
These days most of my projects are in Python, Java, TypeScript and SQL.
What I build
Most of what I build is backend. I like working out how data should be stored and moved around, and I would rather understand a tool than take it on faith.
That is basically why the Kafka clone happened. I wanted to know how a message queue actually works underneath — how a log is laid out so a record can be found without scanning all of it, and how many connections one process can really hold — so I built a small one instead of reading about it. Reading had given me the vocabulary and none of the constraints.
Full stack when it is needed
I do full stack when a project needs it. The main one is FocusEye, which classifies attention second-by-second from webcam video and accumulates sessions into a history worth comparing: a PyTorch model behind a Java Spring Boot API, with a React and TypeScript dashboard in front of it.
That one taught me that the harder problems do not stop at the API.
What I am looking for
Lately I have been spending more time on ML and AI, mostly the models themselves — what an architecture can and cannot represent, and what it is actually learning rather than appearing to.
I am looking for a software engineering internship or co-op term starting January 2027 or summer 2027, and I am flexible on which.
Bachelor of Science, Mathematics
University of British Columbia · Sep 2023 — Apr 2028