Developing infrastructure for highly-scalable, highly-available Internet applications.
Architect and tech lead of fault-tolerance and distribution-aware component of Amazon SimpleDB: a highly-scalable, highly-available web service, including research, architecture, coding, supervising the work of other coders, testing, release management, and operations. Implemented high-performance, fault-tolerant group communication system. Diagnosed and solved problems on running production system. Evangelism of Erlang language within Amazon.com. Developed multi-component build framework for entire project.
Managed group responsible for development and operation of engineering automation, including source code repository, build system, unit tests, integrated testing. Release engineering and department-wide coding standards and practices. Coordinated engineering teams with QA, system administration, and techpubs.
Project lead for IMAP server. Integrated Cyrus cluster architecture with Sleepycat DB replication. Improved system performance to meet contract obligations. Worked on-site in Japan with business parters for integration and testing. Designed and implemented parts of MMS router that interacted with IMAP server.
Project lead of five-developer team. Responsible for architecture and programming of high-performance IMAP server (C/Pthreads on UNIX and Windows). Complete overhaul of half-million line codebase. Managed first Windows release. Represented product at strategic meetings with partners and customers. Managed sustaining engineering concurrent with new development. Worked with Tech Support to handle escalated customer issues. Worked with QA and Docs to manage release process for seven releases. Project planning and feature negotiation with product management and marketing.
Project lead of five-developer team. Project research, design, implementation, and release planning. Designed and implemented algorithms for scalable, high-availability, distributed e-mail server (C/Erlang on Solaris). Developed and contributed remote procedure call library for Erlang language. Design and implementation of high-performance RPC for Sleepycat database. Patent pending on data storage algorithms. Delivered alpha release on-time as project was canceled.
Project leader for medical diagnostics software; responsible for design, implementation, testing, training, and deployment of clinical diagnostic software (Tcl/C/Sybase web application on Solaris). Developed work schedule, presented to management, managed remote developer, and worked on-site with customer. Project member for UI software; designed web-based UI for genetic database search acceleration hardware (Tcl/C/Oracle web application on Solaris). Reported directly to VP of Engineering.
Responsible for design, implementation, training, and deployment of data system to handle all tracking data from deep-space missions (C/PL/SQL on Solaris/Oracle). Analyzed and redesigned legacy system. Negotiated interfaces with data providers and data customers. Day-to-day management of junior developer. Responsible for make/buy decisions and selection of commercial components. Redesign of JPL deep-space tracking data formats.
Developed technical recommendations for languages and tools for use in future development by section's 40 programmers. Selected and recruited representatives.
Worked with team adapting artificial intelligence planning and scheduling system for use in on-board spacecraft autonomous control (Lisp on Solaris). Negotiated interfaces with other systems. Responsible for work schedule for "remote agent" of DS-1 spacecraft (comet and asteroid rendezvous under autonomous control.
Part of emergency development effort to salvage use of Galileo spacecraft. Made 30% speed improvement in error correction software used to decode pictures sent back to Earth (e.g. http://www.jpl.nasa.gov/galileo/images.html, C/threads on Solaris).
System administration of heterogeneous UNIX environment, 120 users, critical operations machines.
Designed and implemented runtime system of parallel logic language (KL1, C on Sequent Symmetry). New system had order-of-magnitude space and speed improvement, increased robustness, new features: garbage collection, source-level debugging and profiling through native UNIX utilities.