i'm currently studying cs and data science at uc berkeley, so naturally out of my passion for cs i spend a lot of time working on various side projects. this will serve as a makeshift portfolio where i will showcase all of my projects.
i also contribute actively to infrastructure for cs61a (a course of nearly 2000 students per semester) at uc berkeley. our infrastructure is used by multiple courses in the uc berkeley eecs department, so it's always exciting to work on tools that make managing such large courses a little easier.
personal projects
- dna: my python library that makes the process of deploying containerized web apps quick and efficient. see the source code on github.
- guide to cs 61a: my explanation of everything taught in berkeley's premier cs course. see the content on github.
- personal website starter: the next.js template for my personal website. uses a json configuration, so you can reuse and/or extend the template as you wish!
cs61a infrastructure
- autograder: python-based assignment autograder that batches up student submissions and grades them efficiently. used by data8 and cs61a, two of the largest classes on campus, to grade 1000-1500 submissions in under 30 minutes.
- grade-display: a collection of scripts that make the course grade aggregation process over 90% faster than the manual process that was handed down to me during my first semester on course staff.
- hosted apps: a dna-based service that manages deployment of stateful course apps, such as staff's internal sandboxes and a demo of the finished version of cats (a course project), as well as proxies pull requests for internal staff testing of courseware and content.
- howamidoing: a course grades aggregation tool that displays student scores for all assignments and allows them to project their future scores. the tool itself was not designed by me, but i've been making efficiency improvements (speeding up grade uploads so they take ~5 seconds instead of ~2 minutes) and adding staff-side features (easy ways to edit the display configuration and export score spreadsheets).
- ide + sandboxes: a vscode server for course staff to spin up fresh sandboxes to work on content and the website. uses a global caching system to ensure that incremental builds are as fast as possible, and allows each user to customize their workflow while still leveraging efficiency improvements. plans for the future include the ability to clone a pull request quickly via github, to reduce the amount of overhead in reviewing changes.
- sicp: a command-line task runner that simplifies some common development tasks for the course. added the first few features to this cli that allow staff to set up course repositories easily with appropriate formatting hooks installed.
- wiki: a documentation website for all course infrastructure. we're currently lacking reusable documentation, so this will serve as a hub for anyone to understand how the software works and how to contribute to it, so as to encourage more software development by course staff and others.