I am an engineer.
B.S & M.S Computer Science @ UC Berkeley.
Distributed and Operating Systems
SWE Intern @ Google GKE
I'm Will, a current M.S. and former B.S. student at UC Berkeley
. I'm a
Kubernetes fanatic and am interested in building distributed systems and infrastructure. I'm currently interning on the Kubernetes Storage
team at Google working on the
CSI PD Diver
and scaling storage to 5000+ nodes.
I've advised by Prof. Scott Shenker
and am part of NetSys
lab. My research concentrates on difficult
problems in distributed systems such as resource allocation optimization. I've taught the Operating Systems and Networking classes in
various GSI positions. Aside from school, I develop for the non-profit site berkeleytime.com
Check out out my
In true Kubernetes fashion, here is a summary of who I am as a Kube resource YAML.
name: Will Wang
- M.S. Computer Science @ Berkeley (2020)
- B.S. Electrical Engineering & Computer Science @ Berkeley (2019)
- SWE Intern @ Google (Kubernetes Storage, GKE)
- Product Manager, Backend Engineering Lead @ berkeleytime.com.
- SWE Intern @ Kelda (Kubernetes)
advisor: Prof. Scott Shenker
lab: Network Systems
concentration: Distributed Systems
- Resource Allocation Optimization in Distributed Systems
- Security and Privacy Policies via Lineage Tracing
- Head GSI @ CS 162 Operating Systems (Fall 2019)
- uGSI @ CS 162 Operating Systems (Spring 2019)
- uGSI @ CS 168 Networking (Fall 2018)
- How Microservices Saved the Internet (Medium)
- Demystifying containers 101 (Medium)
Here are the companies and organizations that I either previously or currently worked for
as an engineer. For specifics involving the work done or (if possible) code written, please
contact me by email. I have also done a lot of course development for CS 168 and CS 162,
which is not listed here.
Software Engineering Intern
I worked on a couple projects as part of the GKE Kubernetes Storage Lifecycle team. My project focused on improving the performance of the storage stack to support large multi-thousand node clusters. I worked on parallelizing and ensuring idempotency in GCP Container Storage Interface Persistent Disk Driver operations, scale test both in-tree and CSI storage plugins, and mitigating known scaling bottlenecks.
Software Engineering Intern
I worked with a small team of researchers from NetSys on making Kubernetes more accessible by creating a local development tool that eases the
complex CI/CD and incident response pipelines. I built applications using GKE, AWS, and Minikube along with monitoring, logging, and CI/CD
tools such as Jenkins, Spinnaker, Gitlab, Prometheus, Elasticsearch, etc.
Backend Engineering Lead
September 2017 - Present
Berkeleytime is UC Berkeley's most popular course catalog, with over 26,000 unique monthly users. I led and developed on major initiatives to
redesign a new frontend in React and move our infrastructure from Heroku to Kubernetes. I also worked on Django backend projects like the
scheduler, user authentication, and application performance.
High School Intern
August 2015 - June 2016
In high school, I was interested in mechanical engineering and so took an apprenticeship at Gulfstream Aerospace working on interior
mechanical design of their G550 and G650 aircraft.
I haven't been teaching for too long, but I have held various roles across the the courses here at Berkeley, mostly in the systems area.
So far I have been a:
Head GSI for CS 162 (Fall 2019)
20 Hour uGSI for CS 162 (Spring 2019)
8 Hour uGSI for CS 168 (Fall 2018)
Junior CSM Mentor for CS 61B (Spring 2018)
Academic Intern for CS 61B (Spring 2018)
And I have created the following learning material:
How Microservices Saved the Internet (Medium)
Demystifying containers 101 (Medium)
CS 168 Project 2: Transport
Path Compression Sections 4 & 5 of WQUPC Worksheet (link)
I currently research in the UC Berkeley Network Systems laboratory. My work deal mainly with distributed systems, its optimization,
and providing system guarantees. My research is focused on practical solutions to real world problems in distributed systems. I've been involved
in research since I was a freshman in undergrad, and I have worked on all aspects of research as you would expect from a graduate student.
Service level knowledge include Docker, Kubernetes, and AWS/GCP.
Resource Allocation Optimization in Distributed Systems (AutoTune)
The AutoTune project aims to reduce the cost to deploy a distributed system by minimizing
resource allocation while improving performance. It automatically cuts down on overprovisioned
resources and alleviates underprovisioned ones, then packing the system into the minimum number of nodes required.
AutoTune is implemented in Python and uses microservice-resource stressing to determine under and over provisioned resources.
A pre-print paper for this project is available upon request.
Security and Privacy Policies via Lineage Tracing
This ongoing project aims to build a system for globally deploying and
enforcing data based policies at the microservice level with-out intrusive application code level modifications. We hope
that it can be used by compliance experts with minimal software engineering experience to easily program complex
privacy and security policies into existing infrastructure.
This is accomplished by tracking pieces of data, called tuples, at the cluster level using data lineage and then blocking the
flow of data between microservices if it does not pass all the relevant policies. A very rough whitepaper is available upon request.
Verified Triggers was an exploratory project to safely declare and enforce cluster wise policies in Kubernetes.
Operators running a distributed system can enforce properties (i.e. fault tolerance of a distributed database) by
specifying a set of event driven triggers that perform an action (i.e. move worker if more than 50% of workers on same machine)
when activated. When systems become complex, these triggers may have unintended and troublesome effects when used together, most notably
non-convergence or unbounded growth.