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.
My Face

  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:

And I have created the following learning material: