Xiaoliang (David) Wei


URL: http://davidwei.org
Bio Photo
Tel: 650-469-3827 (Google Voice)
650-644-5835 (Work phone)


2001 - 2007

California Institute of Technology, CA

1997 - 2001

Tsinghua University, Beijing, P.R.China


Jan 2008 - now

Facebook Inc.

Engineering Director, Growth (Feb 2013): learning the skills for life, solving the growing pain

Engineering Director, Mobile (Dec 2011): engagement data, performance, reliability, efficiency, power, testing, London mobile team

Research Scientist (Dec 2010), Mobile: building the best mobile experience

Research Scientist, Infrastructure / web performance:

  • user latency measurement: serverside and clientside measurements and bottleneck analysis
  • end user latency optimization: modelling and optimization for highly dynamic web applications
  • architecture and best-practice for maintaining long-term performance of fast evolving web applications
  • deployment of web applications by agile developments

Release pusher (2009 - 2012): on rotation to coordinate all engineering teams on weekly code pushes

Bootcamp mentor (2011): mentoring new hires for their first 6 weeks

Recruiting and employee career growth (2012): establishing and running the pipeline of recruiting (branding, sourcing, interviewing, closing) and career growth (onboarding, ramping up, leadership development) for engineers from Chinese cultural backgrounds

Sep. 2005-now

NS-2 Enhancement Project

Contributor / Committer

I started a series of work to enhance the network simulator NS-2. Results include:

  • Analyze and improve the event scheduler of NS-2 simulator. The improvement patch allows NS-2 running up to 50 times faster.
  • Design and implement a NS-2 TCP module which can use the source code of Linux congestion control modules. The module allows Linux kernel developers to run controllable simulation in NS-2. It also allows researchers to evaluate the performance of different TCPs in NS-2.
  • Design and implement a TCP Pacing module. The module incorporates several different pacing algorithms.
  • Fixed some bugs in NS-2 codebase

Jul 2007 - Jul 2008

Engineering and Applied Science Division, Caltech


Research on Internet congestion control, network simulations and distributed system.

Sep 2007 - Jan 2008

Google Inc.

Software Engineer, Platform

Research and develop networking technologies that can improve user experience all over the world and/or improve the efficiency of the operations in the company:

  • TCP/IP networking: design advanced QoS and traffic prioritization features for both intra-datacenter and inter-datacenter traffics
  • Network mesurement: investigate the traffic patterns in Google network
  • Frontend latency: investigate webclient cache hit rate and cross-application navigation patterns for potential caching / prefetching strategies
  • Android: developed a simple online text-to-speech (TTS) service for Google Android
Apr. 2007-Aug 2007

Ripple Networks Inc., El Segundo, CA


Build a distributed data delivery system from scratch to pre-deployment stage:

  • Specify Functional Requirement and Project Roadmap with team: Meet different groups to compile the functional specifications for different phases of the project
  • Architect the system: design and specify the major components and interfaces with heavy consideration for extensibility and scalability
  • Build common infrastructural components for the development and unit test of the project
  • Develop the functional components with a teammate, enforce unit testing with coverage check and memory check
  • Integrate the components: design the build process and integration testings
  • Specify the functional and performance testing with a teammate
  • Deployment preparation: write software package specification (RPM) for deployment
  • Maintenance: write tutorials for new engineers and multiple levels of documentations of the project

Oct. 2006-Apr 2007

FastSoft Inc., Monrovia, CA

Senior Engineer

Commercializing my research results (FAST) at Caltech; Design and Develop TCP-aware network devices:

  • Ensure RFC conformance of network devices
  • Design new protocol state machine for coupling devices
  • Design and develop TCP features
  • Design and develop testing infrastructure for network devices

Jun. 2002-Jun 2007

NetLab, California Institute of Technology, CA

Research Assistant, FAST team member

Co-inventors of FAST, a new variant of TCP congestion control algorithm for high speed network. My work includes:

  • Design and implement the first prototype of FAST
  • Propose a new model to analyze the dynamic of FAST and other TCPs
  • Support further development of FAST in Linux and NS-2 simulator
  • Design benchmark for evaluating TCP algorithms
  • Study the effect of burstiness on TCP traffic
  • Demo the FAST prototype in SuperComputing2002 and SuperComputing2005

Jul. 2005

BillKeeper.net Project

I developed a website (www.BillKeeper.net) which helps people to simplify their payment returns in cost-sharing activities. The work includes designing a graph reduction algorithm and implementation with PHP+MySQL.
Jul. 2004 - Sep. 2004

Google Inc.

Engineering Intern

We worked on improving data transfer performance in Googles network.
My work includes simulation and design of new algorithms for TCP and higher level scheduling algorithms.

Oct. 2001- Jun. 2002

NetLab, California Institute of Technology, CA

Research Assistant on CDN project

We studied a high density model for server allocation and placement in content distribution network (CDN).
My work includes:

  • simulation and evaluation of new algorithms in content distribution network

Feb. 2001-Jul. 2001

Tsinghua-Bell Labs Joint Laboratory on Computer Networking, Beijing

Research Assistant (for Bachelor thesis work)

We worked on protocol conformance testing. My work includes:

  • Design passive testing algorithm for routing protocols
  • Implement an experimental system

Jul. 2000-Nov. 2000

IBM China Research Laboratory, Beijing


We studied the semi-structural database and XML database. My work includes:

  • Design and implement efficient indexing strategies for XML database

Teaching (see details)

Oct. 2002 - Dec. 2002


Oct. 2003- Dec. 2003

Computer Science Dept., California Institute of Technology

Teaching Assistant for CS145a (Networking)

I taught the programming part of CS 145a (Networking) at Caltech. My work includes:

  • instructions on network programming and protocol designs
  • design and grading of homework and project assignments
The slides of my classes can be found here.

Recent Talks (complete list)

Professional Activities

Publications (complete list)

Award (complete list)