Will Wang
I am an engineer.
B.S & M.S Computer Science @ UC Berkeley.
Distributed and Operating Systems
SWE @ Stripe
About
I'm Will, I graduated with a M.S. and B.S. in computer science from
UC Berkeley.
I'm a Kubernetes fanatic and am interested in building distributed systems and infrastructure. I am currently working on
Banking Integration at
Stripe. In my free time
I hack around on Kubernetes and Envoy. Previously I interned on the Kubernetes Storage team at Google working
on the
CSI PD Diver
and scaling storage to 5000+ nodes.
I was advised by Prof.
Scott Shenker
and was part of
NetSys lab. My research focus was
automated resource allocation optimization in distributed systems and infrastructure level data privacy policy enforcement.
I've taught the Operating Systems, Networking, and Data Structures classes in various GSI positions.
Aside from school, I develop for the non-profit site
berkeleytime.com.
Check out out my
GitHub,
LinkedIn, and
email.
In true Kubernetes fashion, here is a summary of who I am as a Kube resource YAML.
kind: SWE
apiVersion: apps/v1
metadata:
name: Will Wang
spec:
education:
- M.S. Computer Science @ Berkeley (2020)
- B.S. Electrical Engineering & Computer Science @ Berkeley (2019)
experience:
- SWE Intern @ Google (Kubernetes Storage, GKE)
- Product Manager, Backend Engineering Lead @ berkeleytime.com.
- SWE Intern @ Kelda (Kubernetes)
research:
advisor: Prof. Scott Shenker
lab: Network Systems
concentration: Distributed Systems
projects:
- Resource Allocation Optimization in Distributed Systems
- Infrastructure Level Data Policies
teaching:
- GSI @ CS 61B Data Structures (Spring 2020)
- uGSI, Head GSI @ CS 162 Operating Systems (Spring 2019, Fall 2019)
- uGSI @ CS 168 Networking (Fall 2018)
writing:
- How Microservices Saved the Internet (Medium)
- Demystifying containers 101 (Medium)
Experience
Google
Software Engineering Intern
Summer 2019
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.
Kelda
Software Engineering Intern
Summer 2018
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.
Berkeleytime
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.
Gulfstream Aerospace
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.
Research
I currently research in the UC Berkeley Network Systems laboratory. My work deal mainly with distributed systems, its optimization,
and data privacy. My research is focused on practical solutions to real world problems in distributed systems.
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.
Infrastructure Level Data Privacy
Built on top of the popular orchestration infrastructure Kubernetes and Istio, this project combines request tracing with the ideas of tainting from Information
Flow Control (IFC). Requests are automatically tainted with privacy metadata regrading the data they carry and are operating on, and service infrastructure automatically reject
requests that do not meet its operator defined policies.
Teaching
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:
20 Hour GSI for CS 61B (Spring 2020)
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:
90-min Lecture on Containers, Microservices, and Container Orchestration (Video - Berkeley Login Required)
CS 162 Homework 6: Golang Consistent Key Value Store (Spec)
How Microservices Saved the Internet (Medium)
Demystifying containers 101 (Medium)
CS 168 Project 2: Transport
Path Compression Sections 4 & 5 of WQUPC Worksheet (link)