Published using Google Docs
christopher-small-cv
Updated automatically every 5 minutes

Christopher Small

70 Chilton Street, Cambridge, MA 02138

(617) 945-6961

christopher.small@gmail.com

https://goo.gl/DjNgPG

Professional Experience

Google (2017—)        Cambridge, MA

2022—present: Software Engineer/tech lead on Google Cloud team responsible for configuration and telemetry of wide-area networking hardware.

2017—2022: Software Engineer/tech lead on Flights Availability team, responsible for a back-end service providing up-to-date per-flight booking information for hundreds of airlines and millions of flights, supporting Google Flight Search and the websites of several major carriers.

Facebook (2015—2017)        Cambridge, MA

Software Engineer

Member of Core Data, the organization responsible for storing and serving Facebook’s Social Graph. Developed an update pipeline that cut the tail (p99) latency of in-region updates to secondary caches (storing materialized views) by an order of magnitude, which reduced the user-visible window of inconsistency between the two, especially when cross-region replication lagged.

Philo (formerly Tivli) (2013—2015)        Cambridge, MA

Principal Member of Technical Staff

Responsible for back-end infrastructure engineering, customer support, and managing new deployments for the Philo IPTV platform.

Quanta Research Cambridge (2012—2013)        Cambridge, MA

Senior Member of Technical Staff.

Contributed to the design and development of a cloud-based service for Eulerian Video Magnification, a technique developed by Quanta and MIT researchers that magnified small periodic motions. Completed implementation, debugged, and supported the cloud service. Handled a jump from 10 visitors a day to 10,000 when the site was discussed in the New York Times. Developed a proof-of-concept cloud-based digital animation service that used Dropbox for transparent mirroring between the user’s machines and the cloud-based service, and web UI for monitoring progress and previewing results.

NetApp (2009—2012)        Waltham, MA

Senior Engineer, Advanced Technology Group.

Tech lead of Project Mercury, a portable host disk cache for virtual machine monitors. Transferred the project to production (NetApp Flash Accel). Responsible for design and development of the  core multithreaded deduplicating block cache. Designed and implemented a novel adaptive trie-based data structure for storing inverse block mapping, greatly reducing client RAM use in the common case.

BBN Technologies (2005—2009)        Cambridge, MA

Senior Scientist, Networking Research.

2008—2009: GENI Project Office: Senior Systems Engineer. Oversaw planning of GENI. Worked with research community to identify system requirements, develop system architecture, define cross-project interfaces, evaluate proposals, and oversee prototyping efforts by academic groups.

2006—2008: SPINDLE: DARPA Disruption Tolerant Networking (DTN) program ($8.9M contract). Phase III: PI. Led team of sixteen engineers. Responsible for working with customer (DARPA), and evangelizing technology to transition partners. Phase III focused on developing robust and scalable technology and transitioning it into fielded military communication systems. Phase II: systems tech lead. Led staff of twelve engineers debugging, re-architecting, testing, hardening, extending, and integrating IRTF DTN Research Group reference implementation of DTN. Demonstrated system in live field tests.

2005-2006: RAMCAP: project member. RAMCAP developed special-purpose hardware for forensic capture of RAM of a running computer system. Brought up kernel (Linux 2.4 on PPC) on flaky hardware, wrote device drivers, etc.

Sun Microsystems (2000—2005)        Burlington, MA

2001—2005: Principal Investigator, Sun Labs. Led group of five investigating how best to take advantage of chip multiprocessor and vertically multithreaded systems. Four patents awarded.

2000—2001: Network Storage Technology Office. Research in scalable distributed storage.

Bell Laboratories, Lucent Technologies (1998-2000)        Murray Hill, NJ

Principal Investigator, Information Sciences Research Center. Research in operating systems, collaborative web searching, and file system modeling. Helped design and develop Pebble, a microkernel OS that generated specialized code for individual IPC paths at run-time. Patent awarded.

Siemens-Nixdorf (1991-1993)        Cambridge, MA

Technical lead of six-person Multimedia Group. Developed multimedia email system for Unix (pre-MIME). Architect of network-based multimedia resource allocator. Taught C++ classes to staff.

Beyond Inc. (1989-1991)        Cambridge, MA

Project lead for message transport and message database for email/groupware application.

ON Technology (1988-1989)        Cambridge, MA

Designed class system for ON Object Environment. Initiated ON Location, ON’s first product.

Ontologic (1985-1988)        Billerica, MA

Worked on compiler, browser, dynamic linker for first commercially available object-oriented DBMS.

Bell Laboratories, AT&T (1984-1985)        North Andover, MA

Language Tools Group. Wrote optimizer for C compiler, link editor for 8051.

Education

Harvard University (1993—1998)        Cambridge, MA

M.S., Ph.D. Computer Science.

Thesis: Building an Extensible Operating System. (Advisor: Dr. Margo Seltzer)

Boston University (1980—1984)        Boston, MA

B.A. Mathematics (magna cum laude), M.A. Computer Science.

Patents

Professional Activities 

Refereed Publications

Unrefereed Publications 

Thesis: Building an Extensible Operating System 

When designing an extensible operating system, a developer must ensure that the operating system is protected from misbehaved extensions. Two kinds of protection are needed: first, extensions should not violate the operating system’s interface, and second, extensions should not be able to leave the operating system in an inconsistent state.

The major contributions of the thesis are (1) the design and evaluation of MiSFIT, a low-overhead software fault isolation tool for the x86 architecture that ensures that extensions do not violate the operating system’s interface; (2) the design and evaluation of VINO Lightweight Transactions, a low-overhead mechanism that allows the kernel to maintain its consistency in the face of ill-behaved extensions; (3) experiments that show the end-to-end overhead of MiSFIT and VLT protection is  low, on the order of 1-2%, and the net performance gain possible from using application-specific extensions  is significant, in some cases more than 20%; and (4) a cost-benefit framework for comparing extension technologies and an evaluation comparing commonly used extension technologies.