MICHAEL J. ABBOTT
Unix Server Software Architect & Performance Optimist
www.repbot.org/mike
mike
repbot.org
OBJECTIVE
To design and develop large-scale high-performance BSD/Linux/Unix server
software in the Minneapolis/St. Paul area.
SUMMARY
- Technical architect experienced with multi-petabyte distributed
storage systems, 24/7 production operations, high-performance
multi-threaded distributed 64-bit real-time server software development
and system-wide performance tuning.
- 26 years experience with C and Unix, especially networking and file
systems.
- 19 years experience with multi-threaded programming and
multiprocessor systems.
- 10 years experience with C++ and object-oriented programming.
- 5 years experience with Perl.
PORTFOLIO
- Open Source Projects: State Threads Library
and Accelerating Apache
Project.
- U.S. Patents: 5,751,280,
5,973,679,
6,654,933,
6,941,508,
and 7,272,780
regarding streaming media.
- Samples: Code and
technical
documentation, available on-line.
EXPERIENCE
Apple, Cupertino,
California March 2008 - present
Server Software Engineer
Contributed to the quality of Mac OS X Server.
Yahoo!, Sunnyvale,
California April 2003 - December 2007
Technical Architect
Managed, enhanced, and streamlined the distributed storage system
supporting Yahoo! Photos, Briefcase, Groups, Shopping, Personals, and 40 other
properties as it grew from tens of terabytes in one farm to several
petabytes in dozens of farms around the world, serving a billion files a
day to hundreds of millions of users.
- Designed, implemented, and documented hundreds of improvements to
increase scalability, reliability, usefulness, and performance while
reducing expenditures on capital and operations. Charted a long-term
worldwide growth strategy. Identified and redesigned underperforming
system components. Evaluated new hardware and strategized with hardware
vendors. Refined the system into a mature managed storage service,
easy for new properties to join.
- Led a team of up to six engineers and operators developing and
maintaining the storage service. Introduced, assigned, and
prioritized tasks while balancing the complex, competing business
requirements of our client properties. Liaised with scores of other
teams. Trained new team members. Instituted policies of sharing
information and of documenting history, procedures, and best
practices.
- Held ultimate authority and responsibility for 24/7 production
operations of this storage service, safeguarding millions of dollars of
revenue. Served routinely as the primary pageable on-call contact.
Regularly audited configuration, security, backups, and performance.
Devised and refined dozens of continuous historical data plots and
extrapolations using open source software. Simplified, automated,
documented, and outsourced operations whenever possible. Investigated
complaints escalated from customer care. Mined content and access
patterns for business intelligence.
- Managed the relentless, exponential growth of the amount of content
stored. Collected growth data, projected trends, and predicted bursts.
Planned capacity expansion and ordered tens of millions of dollars of
hardware for just-in-time deployment. Presented and defended hardware
orders and system architecture to executive review boards. Shepherded
install tickets through the many stages of installation by disparate
service groups.
- Significantly reduced the incremental cost of storage while
considering capacity, reliability, density, power consumption, speed,
and the ease and cost of operations. Reduced the number of servers per
unit of storage by over 90%. Created and implemented a framework for
transparently compressing stored content to reduce storage and save
millions of dollars more. Deployed multiple tiers of storage farms
based on different hardware platforms to meet the various business needs
of the properties and to minimize cost.
- Conceived, implemented, and deployed a complete system of automatic
fault detection, isolation, mitigation, and failover across
geographically disperse data centers. Met the highest corporate
standards for business continuity planning and high availability for
mission-critical properties.
- Served as the primary security contact for nine properties.
Conducted biannual compliance reviews of those properties. Improved,
proselytized, and enforced security policies. Improved the prevention,
detection, and remediation of abuse.
CacheFlow,
Sunnyvale, California October 2001 - April 2002
Senior Software Engineer
Developed a high-performance access logging subsystem for a
next-generation web accelerator until the product was cancelled.
Silicon Graphics (SGI),
Mountain View, California July 1993 - October 2001
Broadcast Server Developer June 2001 -
October 2001
Contributed to the quality of SGI's Media
Servers for Broadcast and helped design their next generation.
Streaming Media Optimizer December 2000
- June 2001
Single-handedly quintupled the number of real-time media streams a given
Irix
system could serve. Prototyped an Arsenic-inspired
user-level Gigabit Ethernet driver and other high-performance,
low-latency interfaces for transmitting real-time media over a network.
Apache Project Contributor November
1998 - January 2001
Single-handedly increased the performance of the open source Apache HTTP server 900% as measured
by the SPECweb96 benchmark
and 200% as measured by SPECweb99. Ported Apache to
SGI's
64-bit ABI. Created the Accelerating Apache Open Source
Project.
Brightmail NSPR Port Project
Leader July - October 1999
Led two other SGI engineers in developing an operating system
abstraction layer based on Mozilla's NSPR and porting Brightmail's anti-spam mail server
to it. Delivered complete, tested, documented package on schedule.
Published a derivative work as the State Threads Library Open
Source Project.
Web Server Benchmarking Project
Leader September 1998 - December 2000
Measured and increased the performance of various HTTP servers on
various platforms. Maintained a web server benchmarking lab.
Contributed to SPEC Web subcommittee
meetings and SPECweb99
development. Authored the initial version of SGI's Web
Server Tuning Guide.
Everest
Initiative Project Leader October 1997 -
August 1998
Led one other SGI engineer in more than tripling the performance of Netscape's FastTrack web server on
Irix and captured
the SPECweb96 world record. Granted all source code changes back to
Netscape on schedule.
MediaBase Project Member August 1995 - September 1997
Contributed to several successful releases of the award-winning Cosmo/WebFORCE
MediaBase web-based video server.
- Developed real-time, multi-threaded, highly scalable 64-bit C++
server applications to stream rate-guaranteed media to thousands of
simultaneous viewers.
- Tuned and debugged XFS on Challenge and Origin servers. Ported
entire project to several Irix and compiler releases.
Interactive
Digital Solutions Joint Venture
Member June 1994 - August 1995
Contributed to an attempt to turn the Orlando interactive television
project into a product.
Interactive Television Project
Member July 1993 - June 1994
Joined the SGI/Time Warner Cable "Orlando" Full
Service Network interactive television project at its inception and
followed through to its successful deployment. Assisted with additional
ITV trials for NTT and CableVision.
- Developed a real-time, multi-threaded, highly scalable 64-bit C++
data pump to stream MPEG audio and video through raw ATM and UDP/IP with
synchronized parallel, sequential, piecemeal, random-access, reverse,
and looped delivery. Received U.S. Patent 5,751,280
for synchronizing and 5,973,679,
6,654,933,
6,941,508,
and 7,272,780
for indexing.
- Evaluated, performance-tuned, and debugged file systems, disks,
network interfaces and drivers, mutex primitives, and the
CORBA-compliant object communication system. Helped define overall
architecture.
Kubota Pacific Computer, Santa Clara,
California September 1991 - June 1993
System Software Engineer
- Began porting TitanOS, a System V Release 3.2 and BSD 4.3 hybrid,
from the multiprocessor MIPS R3000 Titan machines to a new R4000 Titan
upgrade, until the project was cancelled. Researched software
techniques for managing cache-incoherent I/O.
- Ported MIT's X11R5 server to a 64-bit DEC Alpha OSF/1 platform.
Shared with my peers my ground-breaking Alpha porting experience.
- Ported two proprietary file systems from TitanOS to DEC Alpha OSF/1,
providing magneto-optical disk interoperability between those platforms.
Included kernel modules, support commands, a comprehensive test suite,
and documentation.
- Contributed to the quality of several TitanOS releases. Fixed
scores of bugs throughout the kernel, network drivers, libraries, and
utilities. Assisted customers directly with emergency problems.
Unisys (Convergent Technologies), San Jose, California July 1989 - August 1991
System Software Engineer
Developed a multiprocessor version of System V Release 4 for the
U6000/65 multiprocessor i486 departmental server.
- Participated in the Intel Multiprocessor Consortium, cooperating
with Intel, NCR, Olivetti, and Unix System Laboratories to develop
SVR4/MP for the 80x86. Multithreaded drivers and Streams modules.
Critiqued and assisted in implementing USL's MP Device Driver Interface
/ Driver-Kernel Interface and revised drivers to conform to it.
Developed start-up code for the additional processors. Developed and
ported multiprocessor administration tools.
- Ported the Consortium kernel to a third-party multiprocessor machine
and performed the initial port to the U6000/65. Cooperated closely with
hardware and firmware teams to bring up the new machine.
- Developed multiprocessor extensions to the kernel debugger to allow
independent control of each processor. Enhanced and supported the
kernel debugger, crash dump analyzer, and related commands.
Software Engineer Internships
Encore Computer Corporation, Marlborough,
Massachusetts Summer 1988
Ported RPC and NFS daemons and libraries. Analyzed NFS performance.
Data General Corporation, Westborough,
Massachusetts Winter 1987, Summer 1987, Summer
1986
Developed system software for a standalone I/O processor. Analyzed
system performance.
NOVA Biomedical Corporation, Waltham,
Massachusetts Summer 1985
Developed an application to maintain an inventory of fluid packs for
hospital laboratory instruments.
Data General Corporation, Westborough,
Massachusetts Summer 1984
Integrated Unix releases for a native-Unix machine. Customized systems
software.
Lincoln-Sudbury Regional High School, Sudbury, Massachusetts 1981-1985
System Manager
While a student,
maintained and customized Unix versions 7 and BSD 2.9 on a PDP
11/70.
EDUCATION
Cornell University, College of Engineering, Ithaca, New York
Bachelor of Science Degree with Distinction, May 1989
Major: Computer Science; Concentration in Electrical Engineering
SKILLS AND INTERESTS
|
Operating Systems
|
|
BSD, Linux, Irix, Unix
|
|
Programming Languages
|
|
C++ (and STL), C, Perl, shell/grep/awk/sed, PHP, assembly
|
|
Threads
|
|
State threads,
Pthreads
|
|
Network Protocols
|
|
TCP/IP, UDP/IP, Ethernet (10/100/1000),
ATM
|
|
Application Protocols
|
|
HTTP, SSL,
CORBA/IDL
|
|
Web Servers and Services
|
|
Apache,
thttpd,
Akamai and AkaDNS
|
|
Configuration Management
|
|
Perforce,
CVS,
RCS,
ClearCase
|
|
Tracking and Ticketing
|
|
Bugzilla,
Request Tracker,
dotProject
|
|
Storage and File Systems
|
|
Network Appliance filers,
RAID,
UFS,
NFS,
XFS
|
|
Tools
|
|
Stunnel,
Gnuplot,
RRDtool,
Doxygen
|
|
Other
|
|
JPEG,
MPEG,
SQL/RDBMS
|
| |
|
Technical Associations
|
|
USENIX,
SNUG
|
My family,
model trains,
model rocketry,
pipe organs,
pervasive social computing,
ethnic foods,
chocolate.
rev Apr 2008