1. ROGER SPELLMAN
38 Deborah Sampson Street
Sharon, MA 02067
781-784-7637 (home)
781-799-5135 (cell)
rspellman@alum.mit.edu
SUMMARY: Strong leadership and analytical skills, with great attention to detail. Excellent
inter-personal skills; able to work with other engineers and with customers.
Extensive software engineering experience, specializing in:
Linux, especially Networking and File Systems
Clustered Computing
Embedded System Design and Implementation
Networking Protocols; Routers
Software and Firmware Optimization
Hardware-Software Interfaces
Device Drivers
Languages: C, C++, Java, Python, Bash Shell, Assembly Languages (x86, Power PC, MIPS)
Operating Systems: Linux, pSOS, VxWorks
File Systems: ext2/3, Lustre
Protocols: TCP/IP, UDP, RTP, MEGACO/H.248, SNMP, RDMA, ATM, IPSec, IKE, 802.3
Software: VxWorks, pSOS+, ClearCase, SubVersion
Hardware: x86-64, Pentium, Power PC, MIPS
Compilers: gcc, Green Hills, DIAB, MRI, Intel icc, Intel ifc
Debuggers: gdb, kgdb, xmd, SingleStep, XRay, SDS
Tools: Emulators, Protocol Analyzers, Logic Analyzers
Education: BS in Mathematics, Massachusetts Institute of Technology, 1983
EXPERIENCE:
2014 to 2016 Google Cambridge, MA
Senior Site Reliability Engineer
As a Google SRE (www.google.com/sre) working on Applications Infrastructure, I am part of a
team responsible for developing and maintaining Google's software infrastructure. Our software is
used in a wide variety of products, including YouTube and Google Hangouts. I write code in C++
(version 11), Java (with Dependency Injection), Python, and in several Google-created languages.
- Wrote Service Level Objectives and the code to measure whether or not our services were
meeting those objectives.
- Wrote substantial amounts of monitoring code, capturing data, generating graphs, detecting
problems, and alerting when problems require intervention.
- Led internal training for other SREs.
Project Lead/Lead Engineer for C++ performance measurements and improvements:
- Wrote repeatable performance tests for detecting performance regressions and providing guidance
on performance improvements.
- Implemented performance improvements.
- Documented procedures so that others could run existing tests and easily add tests for new
modules.
- Presented results and future plans at cross-team summits.
2. SRE Lead for the reliable queue-service:
- Added throttling code, so that the queue-service would not overload the backend storage system
(overloads had caused several outages over the prior few months).
- Wrote and implemented a detailed capacity-performance plan.
- Tuned the backend storage system to better handle the system’s loads.
On-Call Engineer:
- Responsible for five different software services; when a service has a failure that is not handled by
the automatic recovery software, I get paged to handle the problem.
- Work with other service owners to identify and address the root cause, write postmortems, and
update software to automatically handle similar problems in the future.
- Address a variety of other issues, such as capacity changes, software rollouts and configuration
changes.
2006 to 2014 Terascala Avon, MA
Senior Staff Engineer/Director of Platform Engineering
As lead architect and engineer, designed and implemented most of the software to manufacture and
configure Terascala’s high density, high speed storage appliance. The Linux-based product connects
together a large number of storage servers using InfiniBand, 40 GigE, 10 GigE, and GigE, to build a
multi-petabyte file system. Terascala’s partners, Dell and NetApp, bundle the company’s software
onto their hardware.
- Ported Lustre to company's hardware platforms. This involved configuring a Linux 2.6 kernel to
support several hardware platforms that included a variety of mother boards, SATA raid
controllers, HBAs, and NICs. This also involved configuring the Red Hat Linux distributions to
work with Lustre, and configuring High Availability Linux (Linux HA).
- Wrote a substantial amount of software to make it easy to deploy and manage Lustre, giving
Terascala the world’s first “Lustre Appliance.” On-site installation usually takes under one day
from the time the hardware is racked to the time users are able to access the file system. System
Administrators are able to monitor and manage their system through command-line tools and
through a GUI.
- Made changes to the Linux Kernel (block subsystem) to improve performance.
- Acted as the primary technical liaison in Terascala’s partnership with Dell and NetApp, and the
lead engineer in porting Terascala’s Appliance to their platforms.
Performed a wide variety of other tasks at Terascala:
- Wrote the product’s manufacturing process and procedures.
- Designed manufacturing quality acceptance tests that all systems must pass before being shipped.
- Wrote and presented technical presentations to customers.
- Evaluated hardware and software, and made recommendations as to what should or should not be
included in our products.
- Designed and implemented software to test 10G Ethernet and InfiniBand interfaces. Worked
closely with hardware engineers and vendors to debug problems with these interfaces. Some of
the tests were ultimately given back to the chip vendors, for inclusion into their test suites.
- Wrote web-based front end to these tests in PHP and Java Script.
- Designed and implemented performance and regression tests for the product. Tests uncovered
hardware design flaws, resulting in a complete redesign of the company's platform.
- As the resident file system expert, often participated in pre-sales meetings with customers and
their technical staffs.
3. 2005 to 2006 Performance Technologies / Maple Tree Networks Norwood, MA
Member of Technical Staff
Designed, implemented, and tested major firmware components of PTI’s high-density VOIP PTMC
module. Product supports 2016 VOIP connections using Centillium’s Entropia-III DSPs for media
and packet processing, and a MIPS processor running Linux 2.4 for device management.
- Designed and implemented Internal Call Agent, the device driver for the E-III.
- Debugged and optimized the Linux Ethernet device driver; debugged various Linux device driver
and interrupt handling problems.
- Added code to enable debugging of Linux device drivers without having to reboot the system;
users write commands to /proc files to control the debug level.
- Championed initiative to improve unit testing of developed software; trained other engineers in
how to test their software components using Test Environment Toolkit (TET).
- Wrote test specification, and implemented infrastructure to test the software.
Architected the company’s Media Gateway product, to be controlled via MEGACO/H.248. The
hardware included a cPCI carrier card with a PPC processor, three octal framers, an H.110 interface,
a Zarlink MT90866 TSI, a BCM5388 Ethernet switch, and one or more VOIP PTMC modules.
- As lead architect, wrote the product architectural specification.
- Identified and resolved many open issues that involved other divisions within PTI.
- Wrote the software-interface specification, identifying the interfaces between all the software
components.
2003 to 2004 Ammasso Boston, MA
Independent Contractor
Worked on various aspects of Ammasso’s Remote DMA enabled NIC, a product targeted toward
the High Powered Computing market, and networked storage devices. Product implemented
RDMA and TCP/IP protocols on an embedded PPC, controlled by device drivers running on
LINUX 2.4 and 2.6 systems. Product passed packets at GigE wire rate, with a latency of 15
microseconds. Product suite included a full implementation of RNIC Verbs, Direct Access Provider
Library (DAPL), and the Message Passing Interface (MPI) library.
- Designed and implemented MPI Device Driver to interface with RNIC on Ammasso hardware
- Wrote MPI system test plan, and implemented the tests using Test Environment Toolkit (TET).
- Implemented key features of the firmware, including enhanced memory management used to
detect memory overwrites and leaks, and modifications to support 16,000 connections.
- Analyzed firmware cache utilization, in order to improve per-packet latency.
- Supported embedded firmware, and LINUX 2.4 and 2.6 device drivers.
4. 2001 to 2002 Maple Tree Networks Norwood, MA
Senior Staff Engineer; System Architect
Note: Maple Tree Networks was purchased by Performance Technologies in 2003.
Lead Architect/Engineer in Mapletree Network’s Next Generation UniPorte Architecture, a Voice
over Packet platform using a Media Processing System-On-A-Chip (MPSoC). Product was
designed to support 1024 Voice over Packet ports, using several MPSoCs and a single RISC
processor. Protocols included RTP (RFCs 3550, 3551, 2833) and ATM Adaptation Layer 2
(AAL2 – ITU-T I.363.2). Voice processing included G.711, G.729A, G.726, G.723.1, AMR, Echo
Cancellation (G.168), Voice Activity Detection, and Tone Detection.
- As Lead Architect/Engineer:
- Co-Authored Product Functional Specifications.
- Co-Authored Top Level Design, specifying all data flows and high-level interfaces.
- Presented Top Level Design to potential customers and to engineers joining the project.
- Heavily involved in subcontract management, including working with ASIC design house
in the specification and test procedures for custom ASIC.
- Worked with hardware engineers, defining the hardware-software interface.
- As Lead RISC Engineer:
- Wrote RISC Subsystem Design, identifying every software component on the RISC, and the
interfaces and interactions between these components.
- Designed, Coded, and Tested several key software components, including Data Movement,
Image Management, and System Initialization.
- Managed the RISC software group, including annual performance reviews.
- Miscellaneous:
- Oversaw the development process, including decomposition of requirements into
subsystems and components, documentation standards, and code reviews.
- Optimized legacy UniPorte Architecture product to quadruple the port density.
1999 to 2001 Telco Systems Norwood, MA
Staff Engineer; System Architect
Played a key role in specifying, architecting, designing, and implementing a high-speed voice/data
switch. The product supported 56 T1s, two DS3s, and Fast Ethernet in a fully redundant system.
Protocols included ATM, Frame Relay, PPP, and TCP/IP.
- Co-Authored the System Functional Specification, focusing on configuration and software
maintenance.
- As lead software architect:
- Defined all the data flows.
- Identified every software component (there were 66).
- Specified the major interfaces and interactions between the software components, for
example how lines are configured, how signals are detected, how calls are set up, how a
redundancy switch takes place, and how performance is measured.
- Provided input to the hardware design, and specified the hardware/software interface.
- As lead software engineer:
- Designed the system's "platform" components (including system initialization,
debugging/logging, and crash handling), and supervised their implementation.
- Made changes to the software development methodology.
- Assisted in choosing tools (compilers, debuggers, source control, etc.).
- Performed design reviews and code reviews on most components in the system.
- Gave training on Unit Test methodology.
- Designed and Implemented several components, including: High-Availability, System
Timers, and Memory Management
5. 1997 to 1999 Compaq / Microcom Norwood, MA
Independent Contractor
Principal level engineer in the Embedded Software Group. Performed a variety of tasks for current
and next generation Modem Concentrator products. The hardware included 68040/68360 based
boards running inside Chipcom's OnCore Hub, and 68860 based boards running in a proprietary
chassis with a PCI backplane and Fast Ethernet interfaces. The software was built on top of pSOS
Operating System.
- Played critical role in the release of versions 4.0, 4.1, and 5.0 of the product.
- Wrote system initialization specification with focus on ease of installation, using techniques
such as auto-discovery and intelligent defaults. Presented this to a wide audience, including
engineering, marketing, and senior management.
- Integrated Telnet Client into the core of the data stack; converted Telnet software from single-
threaded to multi-threaded.
- Designed and implemented ASCII Text Editor designed for Embedded Systems.
- Designed Memory Management module to improve performance, minimize fragmentation, and
detect memory overwrites.
- Wrote device drivers to interface with FPGA. Reviewed hardware specifications, and suggested
changes when appropriate.
- Redesigned and implemented I2C driver.
1998 to 1999 Altiga Networks / Cisco Systems Franklin, MA
Independent Contractor
Developed and Debugged software for a high-speed Virtual Private Networking (VPN) Server,
capable of supporting 5,000 simultaneous users. Product was custom hardware, based on a Power-
PC CPU, PCI backplane, and custom ASICs for Data Encryption.
- Debugged and Enhanced Fast Ethernet Driver for Intel-21143 LAN Controller to support Auto-
detection (10Mbs vs 100Mbs, Full Duplex vs Half Duplex), and robust error handling.
- Worked with a team to improve product performance. At the start, the product passed 3,000
packets per second (pps); at the completion, product passed 83,000 pps. Techniques included
streamlining the data flow, optimizing algorithms, and minimizing task switches.
- Added features to Internet Key Exchange (IKE) and IP Security (IPSEC) database routines to
support multiple IKE tunnels and key re-negotiation.
- Improved IKE tunnel setup performance from 1.1 seconds per tunnel to 80ms per tunnel.
1995 to 1996 Microcom Norwood, MA
Independent Contractor
Note: Microcom was purchased by Compaq in 1997.
Performed a variety of tasks in the development of an Ethernet-based Modem Concentrator. The
hardware consisted of 68360 based boards running inside Chipcom's OnCore Hub. The software used
the pSOS Operating System.
- Solved many bugs, including some bugs that had been in the product for a long time.
- Worked closely at the Hardware/Software interface; became the local expert on the 68360.
- Wrote a System Architecture Initialization Specification, and presented this to a wide audience.
- Implemented the functionality defined in the Initialization Specification.
- Wrote a variety of tools, including:
- Stack Analysis Tool that detected stack overflow
- Crash Dump Utilities
- Designed and implemented performance improvements on several Microcom products.
6. 1989 to 1995 Motorola Mansfield, MA
Software Architect, Lead Software Engineer 1995
Played a key role in architecting, designing, and implementing a VME Based (multiprocessor) IP
Router for the Cable TV Industry. System was built on top of pSOS Operating System.
- Architected the data flows, buffer passing schemes, and high-speed forwarding algorithm to
achieve a throughput of 60,000 packets per second.
- Designed, coded and unit tested the Forwarding Software and Buffer management software.
Principal Software Engineer/Team Leader 1989 - 1994
- Ported AppleTalk Router code into Motorola Multiprotocol Periphery Router.
- Ported proprietary OS to various Hardware Platforms.
- Updated kernel's scheduling, buffer management, and memory management algorithms.
- Performed Code Optimizations.
- Lead effort to change compilers from GNU to MRI.
- Defined the Coding Standards.
- Wrote UNIX Shell scripts to assist other developers to do builds, and use the environment.
- Defined the Hardware-Software interfaces for ATM switch..
- Wrote the Software Architecture for Device Driver Group.
- Interacted with other group leaders in defining the System Architecture.
- Gave various training seminars, including Design Strategies, Unit Test, and XRAY Debugger
1988-1989 Technology Concepts Sudbury, MA
Independent Contractor
Worked on various PC and VAX based Software at various levels of the Decnet Protocol stack.
- Defined and implemented the Human Interface for a mail program.
- Implemented load sharing at the Data Link Layer.
- Wrote User Documentation.
1986-1988 First National Bank of Chicago Chicago, IL
Independent Contractor
Architected, designed, and implemented a network to tie together several applications running on
disparate systems.
1983-1986 Cambridge Technology Center Cambridge, MA
Acted as Course Administrator for several executive level training courses and as lead software
engineer for various software projects. Average class sizes were between 100 and 150 students.
- Developed courses for a computer training center owned by two MIT professors.
- Played a key role in changing the company’s emphasis from IBM Mainframes to UNIX.
1982 MIT Laboratory for Computer Science Cambridge, MA
Developed various UNIX utilities including an enhanced messaging and email system.
EDUCATION: Massachusetts Institute of Technology, Class of 1983
Bachelor of Science in Mathematics, with a Minor in Writing.
MISCELLANEOUS: Have given many training classes over the years. Most recently, gave courses on:
Lustre File Systems; Introduction to Data Communications; Software Design; Unit Test; Debugging
techniques and tools.
7. 1989 to 1995 Motorola Mansfield, MA
Software Architect, Lead Software Engineer 1995
Played a key role in architecting, designing, and implementing a VME Based (multiprocessor) IP
Router for the Cable TV Industry. System was built on top of pSOS Operating System.
- Architected the data flows, buffer passing schemes, and high-speed forwarding algorithm to
achieve a throughput of 60,000 packets per second.
- Designed, coded and unit tested the Forwarding Software and Buffer management software.
Principal Software Engineer/Team Leader 1989 - 1994
- Ported AppleTalk Router code into Motorola Multiprotocol Periphery Router.
- Ported proprietary OS to various Hardware Platforms.
- Updated kernel's scheduling, buffer management, and memory management algorithms.
- Performed Code Optimizations.
- Lead effort to change compilers from GNU to MRI.
- Defined the Coding Standards.
- Wrote UNIX Shell scripts to assist other developers to do builds, and use the environment.
- Defined the Hardware-Software interfaces for ATM switch..
- Wrote the Software Architecture for Device Driver Group.
- Interacted with other group leaders in defining the System Architecture.
- Gave various training seminars, including Design Strategies, Unit Test, and XRAY Debugger
1988-1989 Technology Concepts Sudbury, MA
Independent Contractor
Worked on various PC and VAX based Software at various levels of the Decnet Protocol stack.
- Defined and implemented the Human Interface for a mail program.
- Implemented load sharing at the Data Link Layer.
- Wrote User Documentation.
1986-1988 First National Bank of Chicago Chicago, IL
Independent Contractor
Architected, designed, and implemented a network to tie together several applications running on
disparate systems.
1983-1986 Cambridge Technology Center Cambridge, MA
Acted as Course Administrator for several executive level training courses and as lead software
engineer for various software projects. Average class sizes were between 100 and 150 students.
- Developed courses for a computer training center owned by two MIT professors.
- Played a key role in changing the company’s emphasis from IBM Mainframes to UNIX.
1982 MIT Laboratory for Computer Science Cambridge, MA
Developed various UNIX utilities including an enhanced messaging and email system.
EDUCATION: Massachusetts Institute of Technology, Class of 1983
Bachelor of Science in Mathematics, with a Minor in Writing.
MISCELLANEOUS: Have given many training classes over the years. Most recently, gave courses on:
Lustre File Systems; Introduction to Data Communications; Software Design; Unit Test; Debugging
techniques and tools.