Blog
- A more efficient change synchronization mechanism (external link)
- Security debt we never created (external link)
- My April Fools’ Day prank got waylaid by a Google Workspace footgun
- Down the rabbit hole: Implementing SSH port forwarding over AWS Session Manager (external link)
- How practical should computer science degrees be, anyway?
- Reflections on teaching a Stanford cloud course
- What infra do you need for an infra course?
- How to create a Stanford course
- Migrating Personal Infra to Cloudflare with No Downtime
- A student’s dream: hacking (then fixing) Gradescope’s autograder
- Dodging OAuth origin restrictions for Firebase spelunking
- Firebase: Insecure by Default (feat. that one time our classmates tried to sue us)
- Flipping the script: when a hacking class gets hacked
- Upgrading my personal security, part two: disk encryption and secure boot
- Upgrading my personal security, part one: password generation, 2FA, YubiKey
- Hello, world!