SlideShare a Scribd company logo
1 of 7
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.
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.
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.
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
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.
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.
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.

More Related Content

What's hot

What are latest new features that DPDK brings into 2018?
What are latest new features that DPDK brings into 2018?What are latest new features that DPDK brings into 2018?
What are latest new features that DPDK brings into 2018?Michelle Holley
 
Richard William Ivy Resume
Richard William Ivy ResumeRichard William Ivy Resume
Richard William Ivy ResumeRichardIvy
 
Pratik Shah_Revised Resume
Pratik Shah_Revised ResumePratik Shah_Revised Resume
Pratik Shah_Revised ResumePratik Shah
 
Psi multi accessgateway_casestudy
Psi multi accessgateway_casestudyPsi multi accessgateway_casestudy
Psi multi accessgateway_casestudyPrimesoftinc
 
Work Experiences in SoNix
Work Experiences in SoNixWork Experiences in SoNix
Work Experiences in SoNixZhijie Li
 
Resume_Hegel_updated_Network (1)
Resume_Hegel_updated_Network (1)Resume_Hegel_updated_Network (1)
Resume_Hegel_updated_Network (1)Hegel Durocher
 
Paul cliff-2014 voip resume
Paul cliff-2014 voip resumePaul cliff-2014 voip resume
Paul cliff-2014 voip resumePaul Cliff
 
A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS
A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS
A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS MOHAMMED FURQHAN
 
1 intro to_dpdk_and_hw
1 intro to_dpdk_and_hw1 intro to_dpdk_and_hw
1 intro to_dpdk_and_hwvideos
 
Embedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals masterEmbedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals masterHossam Hassan
 
Arun Prasad-R.DOCX
Arun Prasad-R.DOCXArun Prasad-R.DOCX
Arun Prasad-R.DOCXArun R
 

What's hot (20)

What are latest new features that DPDK brings into 2018?
What are latest new features that DPDK brings into 2018?What are latest new features that DPDK brings into 2018?
What are latest new features that DPDK brings into 2018?
 
Richard William Ivy Resume
Richard William Ivy ResumeRichard William Ivy Resume
Richard William Ivy Resume
 
Kelly Howard Resume_10_2015
Kelly Howard Resume_10_2015Kelly Howard Resume_10_2015
Kelly Howard Resume_10_2015
 
Resume
ResumeResume
Resume
 
GeneCernilliResume
GeneCernilliResumeGeneCernilliResume
GeneCernilliResume
 
Pratik Shah_Revised Resume
Pratik Shah_Revised ResumePratik Shah_Revised Resume
Pratik Shah_Revised Resume
 
Greg_Res_2015-ADP
Greg_Res_2015-ADPGreg_Res_2015-ADP
Greg_Res_2015-ADP
 
Resume_01
Resume_01Resume_01
Resume_01
 
Psi multi accessgateway_casestudy
Psi multi accessgateway_casestudyPsi multi accessgateway_casestudy
Psi multi accessgateway_casestudy
 
Ritesh Resume
Ritesh Resume Ritesh Resume
Ritesh Resume
 
Steve_Cooper_2016
Steve_Cooper_2016Steve_Cooper_2016
Steve_Cooper_2016
 
Work Experiences in SoNix
Work Experiences in SoNixWork Experiences in SoNix
Work Experiences in SoNix
 
Resume_Hegel_updated_Network (1)
Resume_Hegel_updated_Network (1)Resume_Hegel_updated_Network (1)
Resume_Hegel_updated_Network (1)
 
nathan
nathannathan
nathan
 
Paul cliff-2014 voip resume
Paul cliff-2014 voip resumePaul cliff-2014 voip resume
Paul cliff-2014 voip resume
 
resume_v36
resume_v36resume_v36
resume_v36
 
A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS
A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS
A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS
 
1 intro to_dpdk_and_hw
1 intro to_dpdk_and_hw1 intro to_dpdk_and_hw
1 intro to_dpdk_and_hw
 
Embedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals masterEmbedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals master
 
Arun Prasad-R.DOCX
Arun Prasad-R.DOCXArun Prasad-R.DOCX
Arun Prasad-R.DOCX
 

Viewers also liked

Viewers also liked (17)

Ravishanakar cv
Ravishanakar cvRavishanakar cv
Ravishanakar cv
 
Cover Letter
Cover Letter Cover Letter
Cover Letter
 
meganvietorUnisys2016
meganvietorUnisys2016meganvietorUnisys2016
meganvietorUnisys2016
 
Resume
ResumeResume
Resume
 
Venkata
VenkataVenkata
Venkata
 
Job list (2016_SEP_29)
Job list  (2016_SEP_29)Job list  (2016_SEP_29)
Job list (2016_SEP_29)
 
Django 1.10.3 Getting started
Django 1.10.3 Getting startedDjango 1.10.3 Getting started
Django 1.10.3 Getting started
 
CV IS4F - Carl Lamote
CV IS4F - Carl LamoteCV IS4F - Carl Lamote
CV IS4F - Carl Lamote
 
Ramakrishna_Python_2 years
Ramakrishna_Python_2 yearsRamakrishna_Python_2 years
Ramakrishna_Python_2 years
 
Resume-2016
Resume-2016Resume-2016
Resume-2016
 
MargaretBoisvertResume
MargaretBoisvertResumeMargaretBoisvertResume
MargaretBoisvertResume
 
vivi
vivivivi
vivi
 
resume (6)
resume (6)resume (6)
resume (6)
 
Nisreen Agha - Industrial Engineer
Nisreen Agha - Industrial Engineer Nisreen Agha - Industrial Engineer
Nisreen Agha - Industrial Engineer
 
Krishnagopal Thogiti_Java
Krishnagopal Thogiti_JavaKrishnagopal Thogiti_Java
Krishnagopal Thogiti_Java
 
NancyG_PDF format
NancyG_PDF formatNancyG_PDF format
NancyG_PDF format
 
Yichi Chen Resume
Yichi Chen ResumeYichi Chen Resume
Yichi Chen Resume
 

Similar to Spellman Resume

Similar to Spellman Resume (20)

Current Resume' - Jim Prater
Current Resume' - Jim PraterCurrent Resume' - Jim Prater
Current Resume' - Jim Prater
 
resume2
resume2resume2
resume2
 
Kavita resume startup
Kavita resume startupKavita resume startup
Kavita resume startup
 
Kavita resume
Kavita resume Kavita resume
Kavita resume
 
Resume_052715
Resume_052715Resume_052715
Resume_052715
 
David Robinson's On Line CV
David Robinson's On Line CVDavid Robinson's On Line CV
David Robinson's On Line CV
 
kavita_resume_3
kavita_resume_3kavita_resume_3
kavita_resume_3
 
ResumeRossNagarasan
ResumeRossNagarasanResumeRossNagarasan
ResumeRossNagarasan
 
John Wiedey resume
John Wiedey resumeJohn Wiedey resume
John Wiedey resume
 
Ankit sarin
Ankit sarinAnkit sarin
Ankit sarin
 
MingLiuResume2016
MingLiuResume2016MingLiuResume2016
MingLiuResume2016
 
V.S.VamsiKrishna
V.S.VamsiKrishnaV.S.VamsiKrishna
V.S.VamsiKrishna
 
Sudha Madhuri Yagnamurthy Resume 2 (5)
Sudha Madhuri Yagnamurthy Resume 2 (5)Sudha Madhuri Yagnamurthy Resume 2 (5)
Sudha Madhuri Yagnamurthy Resume 2 (5)
 
Davis, Michael Resume Aug 2015
Davis, Michael Resume Aug 2015Davis, Michael Resume Aug 2015
Davis, Michael Resume Aug 2015
 
resume
resumeresume
resume
 
RANBR
RANBRRANBR
RANBR
 
Eric Theis resume61.1
Eric Theis resume61.1Eric Theis resume61.1
Eric Theis resume61.1
 
Resume_Appaji
Resume_AppajiResume_Appaji
Resume_Appaji
 
Phillip 2015 08-28
Phillip 2015 08-28Phillip 2015 08-28
Phillip 2015 08-28
 
Abhilash resume
Abhilash resumeAbhilash resume
Abhilash resume
 

Spellman Resume

  • 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.