Northeastern University

Two years in Vancouver, eleven courses, and a journey from teaching students to building tools that teach.

Scaling Impact

Teaching and software development seemed like different worlds at first. But the more I built, the more I realized they're both about the same thing: empowering people. As a teacher, you work with students one classroom at a time, helping them see what they're capable of. As a developer, you build tools that can reach thousands, maybe millions, helping them do things they couldn't do before. Same mission, different scale.

That's what brought me to Northeastern University in 2023. A chance to scale up the impact, to continue enabling others to achieve more, but through code instead of chalk.

Finding My Foundation

Fall 2023 started with CS5001 and CS5002, jumping straight into the deep end. These weren't just courses to get through. They became the foundation for everything that followed.

CS5002 with Professor Richard Hoshino was technically called "Discrete Structures," but really it felt more like a math course. We spent most of our time solving problems on paper: graph theory, logic, proofs. Only in some lectures we'd write code, like implementing Dijkstra's algorithm or sorting algorithms. But as a teacher myself, I could see the craftsmanship in how he structured everything. Every lecture connected to the next, every problem built on what came before. You could tell he spent hours planning the flow, making sure students weren't just learning formulas but actually understanding why they mattered.

Spring 2024 brought CS5004 and CS5008. In CS5004 with Professor Lino Coria, object-oriented design started clicking in a way it hadn't before. The abstractions made sense. The patterns revealed themselves. Something shifted in how I saw code. Not just as instructions, but as structure, as design.

That foundation led me somewhere I didn't expect.

David's Corner

After finishing CS5004, I became a TA for the course. I TA'd for two semesters: Summer and Fall 2024. In Fall 2024, Professor Coria had this idea. Give me 15-30 minutes each week to share practical tips and go deeper into topics students might struggle with. He called it "David's Corner."

It was a small class, maybe 15 students. For that semester, I prepared these weekly sessions. Setup tools properly, write better tests, understand why certain patterns matter, debug effectively. The practical stuff that textbooks don't always cover well. I documented everything in notes, thinking maybe future students or TAs could use them as reference.

In Spring 2025, I moved to TA for Mobile Development. Different course, different students, but the same work. Helping people understand not just what to code, but why it matters.

What struck me was how different teaching felt now. Before, in Hong Kong, I stood in front of a classroom explaining literature, language, meaning. Now I was teaching through code, through tools, through building things. But the core was the same. Helping students see something they couldn't see before. Just with different materials.

When Teaching Met Technology

I knew this problem well from Hong Kong. Stacks of assignments to grade, never enough time, and students who needed more than just a number at the top. As a teacher, you learn that small comments matter. A few words praising their thinking, pointing out improvement, offering direction. These help students learn better, feel better about the work.

But professors have hundreds of submissions. The choice becomes: grade fast and leave nothing, or spend hours writing feedback and fall behind. Both feel wrong.

For my capstone, I built FeedbackAI. An AI-powered grading tool that works right inside Canvas through a Chrome extension. It uses locally run language models to generate personalized feedback based on rubrics, keeping everything private and following data rules. Two-step process: first it understands the grading criteria deeply, then it evaluates work against that understanding. Professors can adjust everything, teach it what matters to them.

Fast grading that still feels human. A bridge between my two worlds.

Going Deeper

As I built and taught, the courses kept pushing me further.

Summer 2024 was intense. Three courses back to back: CS5200 for database systems, CS5800 diving deep into algorithms, and CS5520 for mobile development. Different paces, different depths, but they all connected somehow.

Fall 2024 brought CS5500 with Professor Juancho Buchanan. He's been in industry for years, building real systems, and you could feel the difference. His sessions were chill but packed with the kind of wisdom you only get from experience. Not just "here's how to code this" but "here's how teams actually work, here's what matters when you're building something real."

Spring 2025 pushed me into new territory. CS6760 (Privacy, Security, and Usability) had us reading research papers and arguing about them in round table discussions. There's something energizing about defending your interpretation of a security model while classmates pick apart your reasoning.

Then CS6650 (Distributed Systems). This one was tough. Really tough. But it showed me how large systems actually work. How they handle failure, how they scale, how they stay consistent when nothing is truly consistent. It's one thing to build an app. It's another to understand how systems serving millions are designed.

Each course revealed something new. Each one went deeper.

The Complete Journey

Two years, eleven courses, each one a piece of the puzzle.

SemesterCourseTitle
Fall 2023CS5001Intensive Foundations of Computer Science
CS5002Discrete Structures
Spring 2024CS5004Object-Oriented Design
CS5008Data Structures, Algorithms, and Their Applications within Computer Systems
Summer 2024CS5200Database Management Systems
CS5800Algorithms
CS5520Mobile Application Development
Fall 2024CS5500Foundations of Software Engineering
CS7980Research Capstone
Spring 2025CS6650Scalable Distributed Systems
CS6760Privacy, Security, and Usability

Two years. Eleven courses.

What matters is finding a new way to do what I've always wanted to do: help people become more capable. In Hong Kong, I did it by teaching students directly. Now I'm learning to do it by building tools that can reach further.

The mission continues. Just with different materials.