Mohamed Hefny
Senior 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
About the camera.
Before a SLAM system trusts anything it sees, it calibrates the camera. These are my intrinsics.
I'm a senior software engineer at Microsoft and a graduate student at Simon Fraser University, finishing in fall 2026. At SFU I research visual SLAM.
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: Senior Software Engineer, Microsoft (since Feb 2025)
previous: AWS CloudFormation · Morgan Stanley · Intact
research: visual SLAM · 3D Gaussian splatting
# rms reprojection error: 0.21 px02 Trajectory
Eight keyframes, one trajectory.
Each keyframe is somewhere I stayed long enough to build something, starting with where I am now and tracking back in time. 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.
- Keyframe: a place I stopped
- The camera: where you are now
- Tracked points: what the camera sees
- Covisibility: keyframes sharing a skill
Graduate student
Research in visual SLAM and 3D Gaussian splatting, supervised by Dr. Steven Ko, Professor of Computing Science.
- Python
- C++
- Visual SLAM
- Gaussian splatting
Software Developer II
Worked on AWS CloudFormation, improving the service and the experience of the customers who define their infrastructure as code with it.
- Java
- Kotlin
- AWS
- Infrastructure as code
Software Developer
Developed APIs and worked with cross-functional teams to build solutions for financial clients.
- APIs
- Financial services
AI Software Developer
Built a Spring microservice that monitors Kafka messages, plus Python tooling on top of MongoDB and AWS S3.
- Java
- Spring
- Kafka
- Python
- MongoDB
- AWS
- APIs
- Financial services
Java Software Developer
Designed and built RESTful web services in Spring and Quarkus.
- Java
- Spring
- Quarkus
- APIs
- Financial services
Full Stack Developer
Built the web app the QA team used to manage its inventory.
- Web
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
03 Landmarks
Things I built along the way.
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.
- SLAM Adversarial Lab2026Stress-tests visual SLAM two ways: degrade what the camera sees (fog, rain, night, a cracked lens) or the machine it runs on (CPU, memory and GPU caps, frame deadlines), across fourteen SLAM backends. IROS 2026.Python · Podman / Docker · CUDA
- Pollution Lens Canada2026Interactive map of Canada's 2024 National Pollutant Release Inventory: 59,000 facility records traced from province to sector to where the pollution ends up, as glow maps and Sankey flows. SFU visualization course project.React · D3 · Canvas · Python · group project
- Switchboard2020–21Web service for peer-to-peer video streaming between senders and receivers. Concordia capstone project.Java · Spring Boot · React · MySQL · team of 9
- SuperHypercube2021OpenGL remake of Super Hypercube: rotate a shape so it fits through the hole in an oncoming wall. Shadows, textures and a soundtrack.C++ · OpenGL · team of 6
- Montreal Crime Analytics2020A* search for the safest walk across Montreal, over a grid built from the city's crime data, with an admissible diagonal heuristic.Python · GeoPandas · A*
- Post Classifier2020Naive Bayes classifier that sorts Hacker News posts into story, ask_hn, show_hn and poll, at over 80% accuracy on 5,000 test posts.Python · pandas · NLTK
- Eight-Minute Legends2021A complete C++ implementation of the board game Eight-Minute Empire: Legends.C++ · team of 5
- CONPASS2020Campus map app with indoor directions through Concordia's buildings. Mini-capstone project.React Native · JavaScript
- This map2021–26The page you're on: Gaussian splats, point clouds and a pose graph, rendered in your browser.TypeScript · Next.js · three.js · WebGL
04 Publications
Published maps.
A map is only useful once someone else can build on it. These come out of my graduate research at SFU.
SLAM Adversarial Lab: An Extensible Framework for Visual SLAM Robustness Evaluation under Adverse Conditions
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.
SLAMSqueezeBench: Comparing SLAM Systems under Resource Constraints
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.
Estimating Power-Law Exponent with Edge Differential Privacy
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
Close the loop.
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.