Will Wang
software engineer @ stripe, inc.
Banking Integrations @ Stripe
B.S & M.S Computer Science @ UC Berkeley.
Distributed and Operating Systems

Check out my resume
About
I'm Will, I work at Stripe on the Banking Integrations team. I've worked on a number of large projects at Stripe, including a new service for scheduling millions of daily payouts, a platform for managing our complex bank integrations, as well as building real time API and batch style integrations.

I graduated from UC Berkeley with a M.S. and B.S. in computer science. My research was focused on distributed systems and container orchestration, which has remained my interest and passion. Previously I interned on the Kubernetes Storage team at Google working on the CSI PD Driver 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. As a Graduate Student Instructor, I've taught the Operating Systems, Networking, and Data Structures classes at UC Berkeley.

I was also the lead developer 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:
    experience:
     - SWE @ Stripe (Banking Platform & Integrations)
     - SWE Intern @ Google (Kubernetes Storage, GKE)
     - Product Manager, Backend Engineering Lead @ berkeleytime.com.
     - SWE Intern @ Kelda (Kubernetes)
    education:
     - M.S. Computer Science @ Berkeley (2020)
     - B.S. Electrical Engineering & Computer Science @ Berkeley (2019)
    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
Stripe
Software Engineer
June 2020 - Now
As an engineer at Stripe, I've lead the development of a number of key projects in the Banking Integrations and Banking Platform teams. My team is responsible for scheduling and executing the millions of bank transactions that Stripe processes every day. In laymen's terms, we schedule the transactions into submissions, while taking into consideration fund flows, routing, execution SLAs, volume restrictions, etc. The submissions are assembled into instructions and sent to various banking partners for execution, and then we process and interpret reporting from these partners to reconcile and update our internal state. This complex platform consists of some critical platform services, with more than a dozen integration services.
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 - June 2020
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: