University of California, Los Angeles
Ph.D. in Computer Science, 2010
Masters in Computer Science, 2006
Thesis: Improving File System Consistency and Durability with Patches and BPFS
Advisor: Eddie Kohler
GPA: 3.9
University of Virginia,
School of Engineering and Applied Science
Bachelor of Science in Computer Science, 2004
Bachelor of Arts in Mathematics, 2004
Thesis: Amorphous Shape Mapping
Advisor: David Evans
CS GPA: 3.9, Math GPA: 3.2, Overall GPA: 3.4
SAMSARA
Software Engineer April 2015-Present
Developing an end-to-end networking sensing service, including designing hardware and developing the embedded and distributed software systems that gather and report data for our users.
GOOGLE, STORAGE INFRASTRUCTURE, SPANNER
Software Engineer February 2011-March 2015
With the Spanner team, developed the Spanner distributed database from prototype to core production service. Was the primary engineer behind the Spanner backup and restore service.
UCLA, READABLE SOFTWARE SYSTEMS GROUP
Graduate Student Research
Assistant Fall 2004-2010
Lead or co-lead the BPFS, Featherstitch, and Libprefetch projects. Contributor to the JPred project.
VMWARE, VMFS GROUP
MTS Intern with Jinyuan Li, Mayank Rawat,
and Murali Vilayannur Summer 2009
Designed and developed new distributed data movement capabilities for VMFS ESX clusters to improve performance and load balancing. Contributed to the design of new VMFS space saving technologies.
MICROSOFT RESEARCH, OPERATING SYSTEMS GROUP
Intern with Ed
Nightingale and Jeremy Condit Summer 2008
Developed new file system consistency protocol design principles for phase change memory that yield both significantly faster and safer file systems than traditional consistency protocols.
GOOGLE, ADSENSE AND JAVA INFRASTRUCTURE GROUPS
Engineer
Intern Summer 2005
Designed and developed a declarative RPC representation to replace AdSense's existing hand-coded RPC system. Extended internal AdSense RPC systems to permit further automation of ad analysis.
APPIAN, TECHNOLOGY
Technology Intern Summer 2004
As a team with three other interns, developed the first two business processes built on Appian Enterprise's BPM engine, from process specification to deployment. To implement our processes I developed Appian Enterprise's initial process loop construct and initial process model migration tool; both later supported the Army's Knowledge Online website, the world's largest intranet.
MICROSOFT, WINCE CORE OS GROUP
Software Design Engineer
Intern Summer 2003
Co-designed and developed Windows CE's UPnP AV Framework, a lightweight toolkit that simplifies UPnP AV DCP implementations. Contributed to the Windows CE C++ STL implementation.
DYNETICS, MISSILE SYSTEMS DEPARTMENT
Engineer Intern (DoD Secret Clearance) Summers 2000 and 2001, Winter Breaks 2000-2001 and 2001-2002
Developed a joystick input option for the simulation architecture JMASS, a graphical frontend that streamlined and further automated geometrical testing of solid propellant missiles, a graphical communication link analyzer that enabled engineers to assess flight tests more quickly and thoroughly, software that helped determine the feasibility of lower-frequency wind sampling for Tactical Unmanned Air Vehicle testing. Designed updates to the missile simulation system BADGER. Ported Solaris and Irix programs to Solaris, Linux, and Cygwin.
US ARMY, REDSTONE ARSENAL, AMRDEC, MISSILE GUIDANCE
DIRECTORATE
SEAP Apprentice Summer 1999
Designed the target recognition training backend for the directorate's memory-less target recognition system.
BPFS, MICROSOFT RESEARCH AND
UCLA
2008-2010
Designed file system software and cache hardware for phase change memory to provide significantly stronger reliability guarantees than existing file systems support.
Libprefetch, UCLA
2008-2010
Explored the performance properties of current disks and developed new file system prefetching interfaces and techniques that dramatically increase non-sequential disk read performance.
Featherstitch, UCLA
2005-2010
Developed new file system abstractions that allow applications to manipulate stable storage more efficiently, safely, and easily. Developed the patch disk change abstraction for file system implementations and fast, scalable in-kernel graph analysis and manipulation algorithms.
JPred, UCLA
2005-2006
Devised the first modular and typesafe type system that permits dynamic dispatch on object types in the face of multiple inheritance.
Amorphous Shape Mapping, UVA
2003-2004
Developed and analyzed a method of mapping shapes using an amorphous computer, Undergraduate Thesis.
Cracker Barrel Game Complexity, UVA
Spring 2003
Proved a variant of the cracker barrel game to be NP-Complete.
Amorphous Shape Growing, MIT PROJECT ON MATHEMATICS AND
COMPUTATION
Summer 2002
Developed an amorphous shape forming method, exploring node layout via cell growth and gradient exudation.
UNIVERSITY OF CALIFORNIA, LOS ANGELES, COMPUTER SCIENCE
DEPARTMENT
Teaching Assistant, Operating Systems (CS 111) Fall 2005,
Winter 2006, Spring 2006
Developed the synchronization lab and enhanced the course's existing shell, file system, and event labs. Developed automated grading systems for the course's lab. Led weekly discussions and helped students during office hours and via email. Assisted with midterm and final design. Authored and delivered one lecture.
THE UNIVERSITY OF VIRGINIA, COMPUTER SCIENCE DEPARTMENT
Teaching
Assistant, Software Development Methods (CS 201) Fall 2001
Helped students during office hours, oversaw lab sections, and graded labs.