Turning ideas into software that moves, scales, and lasts.

I build software across the stack.
From embedded systems and C++ simulations to modern web apps.

About

Hello, I am Ivan.

I’m a CPEN student at UBC, graduating in December 2027. I’m part of UBC Rocket, where I get to build and break things while working on real engineering problems. I like working across the stack and spend most of my time with C++/C, Java, TypeScript, React, and Next.js. I’m currently open to Summer 2026 opportunities—feel free to reach out at yingfanluo@gmail.com.

Software Engineer · UBC Rocket — Thrust Vectoring TeamSept. 2025 – PresentVancouver, BC
  • Engineered a high-performance ground control station in C++ and Qt, visualizing 50+ Hz telemetry streams for real-time mission control awareness.
  • Implemented an ICM-20948 IMU firmware stack on STM32, streaming accelerometer and gyroscope data at 1 kHz via SPI + DMA.
  • Built Python-based automation frameworks to test and debug sensor + telemetry behavior and catch regressions early.
  • Modernized the team membership portal with Docker, Next.js, and Supabase to streamline logistics for 50+ members.

Projects

A selection of product work across web, mobile, and interactive simulation. My motivation is to create a interesting, user-centered experiences that solve real problems.

Rate My Dish UBC

Full-stack web app for UBC students to rate and comment on dining hall dishes.

  • Collects ratings and comments per dish with a lightweight review flow.
  • Shows a leaderboard to surface top dishes across dining halls.
  • Fetches the dining hall menu daily to keep listings current.
  • Custom chatbot integration to help users find dishes quickly.

CS2 Tactics (Mobile App)

In development

Collaborative mobile app that helps Counter-Strike 2 teams plan, visualize, and share strategies in real time.

  • Design tactical lineups, coordinate roles, and share plans during prep sessions.
  • Real-time backend supports live collaboration and rapid iteration.
  • Cross-platform mobile stack focused on fast UX and reliable teamwork.

GravitySandbox

Qt Quick prototype for experimenting with 2D gravitational simulations.

  • Bodies are integrated with a symplectic Euler solver for stable motion.
  • Trails visualize recent paths to make dynamics easy to read.
  • Interactive canvas tools let you set up orbits quickly.

Blog / Notes

Short essays, systems notes, and drafts from the Foundations of Computing series.

Foundations of ComputingPart 1

From Logic Gates to Systems

Software often feels abstract, but every program ultimately runs on hardware built from simple components. This post explores how complex digital systems emerge from basic logic.

Read the draft
Foundations of ComputingPart 2

State and Timing in Digital Systems

Correct logic can still fail if timing assumptions are wrong.

Read the draft
Foundations of ComputingPart 3

Software Design Is About Promises

Interfaces define promises clients rely on.

Read the draft
Foundations of ComputingPart 4

Mutability and Meaning in Software

Mutable state increases cognitive load over time.

Read the draft