Ben Olmstead
Senior Software Engineer
Specializing in Embedded Systems
ben+resume-1310@xn13.com / 1-206-883-7832
Sunnyvale, CA
Current version at http://xn13.com/ben-olmstead-resume.html
Keywords
- C, C++, Shell Script, Python, Assembly
- SQL
- Posix, Linux
- Soft Real-Time Systems
- DRY Principles, Object Oriented Software, Fault-Tolerant Systems
Employment
Member of Technical Staff - Software Engineer (2011-present)
I work on Google's Camera Systems team. This is a cross-disciplinary team encompassing mechanical, electrical, and software engineers. I am responsible for the entirety of the on-board software for Google's aerial camera platform, but also have a hand in other camera systems.
- Revived development on a business-critical system whose software engineers had all left the team before I started.
- Reconstructed system requirements from scratch, by talking to stakeholders and reverse-engineering existing code.
- Conceived, designed, and implemented a new system software stack.
- Added new controls to validate data in real-time.
- Greatly simplified support tasks by providing clear, actionable information in the system logs.
- Proposed ways to improve system productivity, and implemented them or worked with other teams who could.
- Removed software as a bottleneck for releasing new hardware to the field.
- Updated the system software to handle new system hardware.
- Reduced use of cellular bandwidth.
Senior Software Development Engineer (2009-2011)
(Amazon.com Subsidiary) Lab126
I worked on the Kindle 2, 3, and Touch, primarily on the system daemons, written in C.
- Re-wrote the Text-to-Speech integration in the Kindle, reducing errors more than 25-fold compared to the previous version.
- Fixed numerous bugs in the core Linux system on the Kindle.
- Improved logging on the device for diagnosing problems in the field.
- Trained and advised teammates on C, POSIX/Linux behavior, and shell scripting.
- Guided junior team members through implementation of new features.
- Worked with other teams within Lab126 and Amazon to agree on and implement interfaces for new features.
Software Development Engineer (2007-2009)
Amazon.com
I worked on the Global Financial Systems (GFS) team, leading a group of developers in maintaining and improving Amazon's C++ and Perl financial reporting systems.
- Created the product backlog for the Sustaining Engineering sub-team, and served as Scrum Master for that team.
- Worked closely with internal customers to understand business meaning and fix root cause of data quality issues.
- Initiated, designed, and implemented new controls for data integrity and SOX compliance.
- Mentored new hires on Amazon and GFS systems.
Senior Software Developer (2005-2007)
PSI (via merger with ODS Software)
I refactored a 1,000,000-line thick-client transaction-processing program in C#, solidifying core code while continuing to add new features.
- Reduced line count and removed dead code.
- Created unit tests for existing features.
- Decoupled code and applied DRY design principles.
Software Engineer (2000-2004)
Polycom (via acquisition of Voyant Technologies)
I wrote control software for custom voice conferencing telephony bridges, using C++, Perl, Java, C#, Ruby, and shell scripting. I took primary ownership of the end-user-facing web interface and the core threading, networking, and serialization framework.
- Rewrote the application's built-in web server, using heavily-tested core code to replace poorly-tested special-purpose code.
- Refactored the core threading, message-passing, serialization, and networking infrastructure to support new use cases, including pluggable serialization formats and transport protocols, and dynamic address registration.
- Worked with telephone companies to support carrier-specific low-level telephony protocols.
Education
Bachelor's of Computer Science equivalent.