← back

Poway Unified School District — Open Coding Society

Systems Engineering Intern

Jan 2025 – Aug 2025

San Diego, CA

  • job
highlights.md
  • Configured cloud workspaces providing Ubuntu, Kali Linux and Debian VMs for 200+ students without personal computers, including DNS migration and SSL/TLS management.
  • Deployed and configured KASM cloud workspaces providing Ubuntu, Kali Linux, and Debian VMs for 20-30 concurrent students, enabling equitable access to development tools for students without personal computers.
  • Executed full DNS migration across 25-30 production subdomains from a legacy domain to opencodingsociety.com using AWS Route 53, managing SSL/TLS certificates via Certbot while maintaining HTTPS functionality for 200+ student users.
  • Built Python scripts for bidirectional data migration between local development and production AWS EC2 instances, implementing access controls to prevent unauthorized data extraction or malicious injection.
  • Led a 5-person engineering team as primary technical liaison, coordinating infrastructure development using sprint-based agile methodology and training 8 district teachers (16 hours) on production-grade workflows including Flask, Spring, Docker, and GitHub.
  • Configured cross-platform development environments (macOS, Windows/WSL, KASM) with VSCode, Jupyter kernels for Python/JavaScript/Java, and Git integration, creating setup documentation for diverse student hardware.

Hired by my Computer Science teacher to build and run the infrastructure behind Open Coding Society, a platform supporting 200+ students across three CS courses (CSSE, AP CS Principles, AP CS A) at Del Norte High School. I led a 5-person engineering team as the primary technical liaison between the students building it and the teachers relying on it.

Equal access, regardless of hardware

Not every student has a laptop that can run a full dev environment. I deployed KASM cloud workspaces — Ubuntu, Kali Linux, and Debian VMs, backed by S3 for persistent storage — so a student on a Chromebook gets the same VSCode-plus-terminal environment as a student on a MacBook. 20-30 concurrent users at peak.

Migrating a live domain without breaking anything

The platform moved from a legacy domain to opencodingsociety.com — 25-30 production subdomains (KASM, Spring and Flask backends including crosswise.opencodingsociety.com, dozens of student project subdomains) via AWS Route 53, with SSL/TLS renewal handled through Certbot. The requirement that made this hard: keep HTTPS working across every service through the whole migration, for 200+ active users, with planned but minimal downtime.

The part that didn’t go perfectly

Production databases lived on separate EC2 instances from the applications using them — SQLite databases with binary assets (images) tied in by foreign key, spread across 30-40 student project groups. I wrote Python and Bash tooling for bidirectional migration between local dev and production. During one of those migrations, I accidentally deleted a production database. I recovered it and rebuilt the migration scripts with real access controls afterward — authentication requirements and execution permission limits specifically designed to prevent both unauthorized data extraction and the kind of mistake I’d just made. It’s the incident I’d point to if asked about handling something going wrong in production.

Teaching the workflow, not just building it

Half the job was making sure the platform survived past my internship: two 2-day sessions (16 contact hours total) training 8 district teachers on Flask, Spring, Docker, and GitHub-based project workflows, so the “world-ready” tooling actually got adopted into the curriculum rather than staying something only I understood.

↑↓ navigate · ↵ select · esc close