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 OS X/BSD/Linux/Unix server
software from the Minneapolis/St. Paul area.
SUMMARY
- Technical architect experienced with multi-petabyte
globally-distributed 24/7 production storage systems, high-performance
multi-threaded real-time client-server 64-bit object-oriented server
software development, and system-wide performance tuning.
- 29 years experience with C and Unix, especially networking and file
systems.
- 22 years experience with multi-threaded programming and
multiprocessor systems.
- 10 years experience with C++, 13 years with object-oriented
programming.
- 8 years experience with Perl, 3 years with internet mail protocols, Java,
and Objective-C.
PORTFOLIO
- Open Source Projects: State Threads Library
and Accelerating Apache
Project.
- US 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
Senior Server Software Engineer
Contributed to the quality of two major releases of Mac OS X Server, Snow Leopard 10.6 and Lion 10.7.
- Enhanced and maintained open source components of the mail service
including Dovecot and Postfix. More than quintupled
Dovecot's scalability. Improved responsiveness for mobile users by
adding support for key Lemonade features including forward-without-download, compression, and
server-side indexing and searching of mail including non-text
attachments (e.g. PDFs, word processor documents). Contributed features
and bugfixes
to the open source projects.
- Represented Apple with SPEC's
mail server subcommittee until the latter disbanded. Led development of
the SPECmail2009 benchmark.
Provided anonymized data
on real mail characteristics from Apple's corporate mail system.
Received a SPECtacular award for my contributions.
- Measured and tuned the performance of Apple mail servers. Published
a briefly-industry-leading benchmark
result.
- Developed mechanisms for automatically reconfiguring services after
a server's network configuration changes.
- Assisted other teams by fixing bugs in Xsan, Address
Book, and several services.
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 properties to join.
- Led a team of up to six local and international 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
Software Engineer
Joined the Full
Service Network interactive television project at its inception,
followed through to its successful deployment, helped develop it into a
few
different
products,
and improved the performance of general-purpose Irix servers.
- Developed real-time, multi-threaded, 64-bit C++ data pumps to stream
MPEG video and audio through raw ATM and UDP/IP with synchronized
parallel, sequential, piecemeal, random-access, reverse, and looped
delivery to thousands of viewers. Received US Patent 5,751,280
for synchronizing and 5,973,679,
6,654,933,
6,941,508,
and 7,272,780
for indexing.
- Single-handedly increased the performance of the 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.
- 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. 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.
- 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.
- Evaluated, performance-tuned, and debugged file systems, disks, network
interfaces and drivers, mutex primitives, and a CORBA-compliant object
communication system. Helped define overall software 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
|
|
OS X, BSD, Linux, Irix, Unix
|
|
Programming Languages
|
|
Objective-C and Cocoa, C++ and STL, C, Java, Perl,
shell/grep/awk/sed, PHP, assembly
|
|
Threads
|
|
State threads,
Pthreads,
Blocks and GCD
|
|
Application Protocols
|
|
IMAP,
POP,
SMTP,
HTTP, TLS/SSL
|
|
Servers and Services
|
|
Dovecot,
Postfix,
Apache,
thttpd,
Akamai and AkaDNS
|
|
Configuration Management
|
|
Subversion,
Perforce,
CVS,
RCS,
ClearCase
|
|
Tracking and Ticketing
|
|
Bugzilla,
Request Tracker
|
|
Storage and File Systems
|
|
HFS+,
Xsan,
Network Appliance filers,
RAID,
UFS,
NFS,
XFS,
ZFS
|
|
Tools
|
|
Xcode,
Stunnel,
Gnuplot,
RRDtool,
Doxygen
|
|
Other
|
|
JPEG,
MPEG,
SQL/RDBMS
|
My family,
bicycling,
model rocketry,
pipe organs,
pervasive social computing,
ethnic foods,
chocolate.
rev Jul 2011