B.Eng. Software Engineering
Software engineering degree, with internships in between. Along the way: an OpenGL game, a peer-to-peer video streaming capstone, a React Native campus map and a C++ board-game engine.
- Java
- C++
- Python
- OpenGL
- Web
Software engineer at Microsoft. Graduate student at SFU, researching visual SLAM.
This page is a map of how I got here, reconstructed live in your browser. Scroll to move the camera.
Fitting 3D Gaussians to one photoReconstructed from one photoiter 0 / 30,000 · PSNR – dB · 0 Gaussians
Start tracking01 Calibration
Before a SLAM system trusts anything it sees, it calibrates the camera. These are my intrinsics.
I'm a software engineer at Microsoft and a graduate student at Simon Fraser University, finishing in fall 2026. At SFU I research visual SLAM and 3D Gaussian splatting.
Before Microsoft I built backend services and APIs at Intact and Morgan Stanley, then worked on AWS CloudFormation, Amazon's infrastructure-as-code service. I studied software engineering at Concordia University in Montreal.
%YAML:1.0
origin: London, Ontario
trained: B.Eng. Software Engineering, Concordia
studying: Graduate student, SFU (fall 2025 – fall 2026)
current: Microsoft, since Feb 2025
previous: AWS CloudFormation · Morgan Stanley · Intact
research: visual SLAM · 3D Gaussian splatting
# rms reprojection error: 0.21 px02 Trajectory
Each keyframe is somewhere I stayed long enough to build something. As you scroll, the camera drives the loop, inserts keyframes and triangulates what it sees.
Green edges link keyframes that share a skill, the way a SLAM system links frames that observe the same landmarks. Hover a skill to light up its edges.
Software engineering degree, with internships in between. Along the way: an OpenGL game, a peer-to-peer video streaming capstone, a React Native campus map and a C++ board-game engine.
Built the web app the QA team used to manage its inventory.
Designed and built RESTful web services in Spring and Quarkus.
Built a Spring microservice that monitors Kafka messages, plus Python tooling on top of MongoDB and AWS S3.
Developed APIs and worked with cross-functional teams to build solutions for financial clients.
Worked on AWS CloudFormation, improving the service and the experience of the customers who define their infrastructure as code with it.
Research in visual SLAM and 3D Gaussian splatting.
03 Landmarks
Every map needs landmarks. These are projects from my own repositories, each reconstructed as a small sculpture inside the loop, next to the keyframe it belongs to.
04 Publications
A map is only useful once someone else can build on it. These come out of my graduate research at SFU.
Turns existing SLAM datasets into adverse ones (fog, rain, camera and video-transport faults) at severities in real-world units, and searches for the severity at which each SLAM system fails.
Benchmarks SLAM the way it actually runs on edge hardware: capped compute and memory, competing workloads and camera frame drops, across nine classical, learning-based and Gaussian-splatting systems.
Estimates a graph's power-law exponent under edge differential privacy by privatizing only the sufficient statistics, in both centralized and local models.
05 Loop closure · Contact
Every trajectory drifts until it recognises somewhere it has been before. This one ends where it started, so this is the place to say hello.
Map saved: 0 keyframes, 0 points.
Built with Next.js and three.js: Gaussian splats, point clouds and a pose graph, all rendered in your browser.