Teaching

Architecture. Computation. Design.

Courses I’ve built and taught

Five university courses on how software actually gets made — real-time and 3D systems, interface design, and the politics of computation. I write production code the rest of the time. Teaching is the part where I have to explain why a decision is right, not just ship it.

Columbia University · Computer Science & GSAPP · 2020–present

 
 

Instructor · Columbia GSAPP

Computational Design Workflows

An advanced studio in building experimental design tooling: real-time multiplayer over WebRTC and WebSockets, 3D and WebXR with Three.js, and physical input from Arduino.


Instructor, Spring 2026 · Columbia Computer Science · 200+ students

User Interface Design · COMS 4170

Designing, prototyping and evaluating interfaces — contextual inquiry, heuristic evaluation, iterative prototyping — built using Python/Flask, JavaScript and a real backend, not mockups.

I built Discovery Coach, an AI agent that helps students scope a project without doing the assignment for them. I wrote about how I made it quieter with every revision.


Source: Heather Dewey-Hagborg, Stranger Visions Installation

Public Interest Technology

A cross-disciplinary seminar — computer science, architecture and journalism — testing methods of discovery and design against the question of what public interest technology actually is.


Co-instructor with Catherine Griffiths, Summer 2026 · Columbia GSAPP

Methods as practice/practice as methods

The opening colloquium of the GSAPP Computational Design Practices program. A critical reading of computation as a situated practice — Haraway, Zuboff, Crawford, Scholz — ending in each student's own research proposal.

CODING FOR SPATIAL PRACTICES -- Squarespace.png

Instructor · Columbia GSAPP

Coding for Spatial Practices

JavaScript, CSS and HTML from zero, taught to designers and architects who had never programmed. The web treated as a medium for representation and speculation rather than a set of tools.