Josh Hamacher
6262 Tiffany Pines Ct NE, Rockford MI 49341
resume.contact@brutallogic.net
CAREER SUMMARY
I have over twenty-five years of professional development experience across both large and small organizations and in roles ranging from solitary developer to staff engineer. I've worked on projects ranging from standalone executables to real-time simulation components to database-backed web services. I'm a dedicated, hard-working self-starter with strong verbal and written communication skills.
EXPERIENCE
2021 April - Present / Cobalt.io / Remote (from Rockford, MI)
Staff Software Engineer / Various Teams / 2021 April - Present
As a staff engineer I worked with a number of different teams. The following are representative examples of projects I've led or been part of.
- Participated in the design and development of the first public-facing API.
- Led company-wide upgrades of Ruby to ensure we were on the latest version.
- Participated in a performance-oriented task force. My part was to enable YJIT in Ruby 3.2, resulting in about a 10% reduction in average API response time.
- Designed and principally implemented a new data model to support a range of new product offerings.
- Mentored more junior team members.
- I was responsible with other staff engineers for setting technical direction across the company, identifying and prioritizing attention for critical pieces of technical debt, investigating platform instabilities, and other engineering-wide coordination tasks.
2015 January - 2021 March / Indeed.com / Seattle, WA
Software Development Engineer II / Quartermaster Team / 2018 April - 2021 March
The Quartermaster team is responsible for self-service provisioning of internal MongoDB, MySQL, and Redis instances.
- Contributed to an open-source Kubernetes RabbitMQ operator; unfortunately changing priorities meant that this project was not continued.
- Made several changes in the core reservation logic (which determines which physical host each database will run on). These changes included adding the concept of a "reservable size", distinct from the "physical size" of the host, and refactoring existing reserved emergency disk space into the new model.
- Building on that change, introduced CPU oversubscription to better utilize existing physical hosts.
- Added ability to reserve multiple resources atomically, allowing for resources to be guaranteed to run on the same physical host(s).
- Migrated about twenty projects from Ant to Gradle.
- Participated in the daytime oncall rotation to support the entire application stack.
- Helped maintain and improve the entire application stack, from Go-language tools that interface directly with the OS to the user-facing React webapp.
Software Development Engineer II / DREMR Team / 2015 October - 2018 March
The DREMR team was responsible for Indeed's external (jobseeker- and employer-facing) email infrastructure.
- Designed and implemented a MongoDB-backed caching layer to allow the replaying of email-creation requests from remote datacenters in the case of catastrophic link failure.
- Designed and implemented an abstraction layer/service for an LSM-tree-based on-disk data store, allowing us to begin breaking up and horizontally distributing a legacy monolithic program.
- Participated in the daytime oncall rotation to support the entire application stack.
- Helped maintain and improve the entire application stack.
Software Development Engineer II / Resume Team / 2015 January - 2015 September
The resume team was the only Seattle-based team at the time. It was responsible for all aspects of a jobseeker's resume, from entry/import on the web to search.
- Worked with the data science team to attempt to identify features of "good" resumes for the purposes of coaching jobseekers to improve their own resumes.
2008 January - 2014 December / Amazon.com / Seattle, WA
Software Development Engineer II / Source Team / 2010 June - Present
The source team was responsible for the "commit to build" portion of Amazon's internal development workflow. Its role includes supporting all corporate revision control systems, managing a related database-backed metadata service, and (initially) code search and code review.
- Acted as the Scrum Master in an agile, scrum-based development process.
- Took part in my team's on-call rotation. Responsibilities during the on-call period included 24-hour pager availability, working with our customers (other Amazon developers) to answer questions and provide advice, coordinating with sibling teams on large-scale issues, and fixing any newly-discovered, high-priority bugs in our systems.
- Participated in the design, implementation, and support of Amazon's proprietary, Git-based distributed revision control system. This systems combined the advantages of a centralized revision control system (authoritative master version of code, automatic backups, auditability) with those of a distributed revision control system (horizontal scalability, easy peer-to-peer sharing of code under development).
- Also participated in the design, implementation, and support of several other large Amazon-wide systems, including a database-backed metadata system to aggregate source code change information and a system to abstract away differences in revision control systems for certain basic operations.
- Ensured a high level of availability for the corporate Perforce and Subversion servers. The former was one of the largest Perforce installations in the world at the time with over 8 million CLNs (and counting).
- Participated in the recruiting process, having performed over 100 phone screens and a dozen in-house interviews.
- Mentored interns and junior team members.
Software Development Engineer II / Build Team / 2008 January - 2010 May
The build team was responsible for all aspects of Amazon's internal source code and build systems, supporting the entire workflow from managing the revision control system through successfully completing builds of software packages. Associated systems include code search, code review, Perforce and Subversion revision control systems, a proprietary distributed build system, and several metadata systems.
- Took part in on-call rotation similar to that described above.
- Worked to improve Subversion integration with the rest of Amazon's infrastructure. Upgraded the Subversion server from version 1.3 to 1.4. This included upgrading several custom components.
- Spearheaded effort to reduce the time required to index the corporate source code repositories from twenty-seven hours to under eight.
1999 May - 2007 December / FAAC Incorporated / Ann Arbor, MI
Senior Engineer / Military Simulator Group / 2005 September - 2007 December
System engineer for most military simulator contracts throughout this period; technical lead on all military simulator contracts. Duties included estimating effort required to meet requirements, mentoring and guiding other technical staff, and acting as technical-managerial liaison.
- Designed, implemented, and tested a facility (QSL - "QNX Services for Linux") to provide basic QNX 4-style send/receive/reply messaging on Linux.
- Ported existing QNX 4 simulator product to Linux by using QSL. Maintained cross-platform QNX 4/QNX Neutrino/Linux capabilities from a single code base throughout conversion.
- Converted and verified via regression testing several legacy missile simulations written in Fortran to C++. Implemented a cross-platform DLL framework to support dynamic loading of missile simulations.
Engineer / Military Simulator Group / 2002 September - 2005 September
Technical lead on most military simulator contracts during this period.
- Designed and implemented second generation of distributed real-time simulation architecture. Responsible for maintenance and expansion of architecture to support new simulator product lines.
- Maintained and improved inherited code for performing real-time input and output (both digital and analog) for simulators.
Associate Engineer / Military Simulator Group / 1999 May - 2002 September
Assisted senior personnel in designing a QNX 4 distributed real-time simulation architecture for use in driver-trainer simulators. Completely implemented said architecture, totalling about 15,000 lines of code.
EDUCATION
1995 September - 1999 May / University of Toledo / Toledo, OH
Bachelor of Science, Computer Science and Engineering
- Graduated magna cum laude.
- Participated in the honors program.
PROFESSIONAL SKILLS
Languages and Tools
- Kotlin: Core language (3 years, current)
- Ruby: Core language (12 years, current); Rails (8 years, current)
- Java: Core language (12 years, stale); Spring (8 years, stale); Hibernate (4 years, very stale)
- Javascript: Core language (2 years, stale); React (2 years, stale)
- Python: Core language (5 years, stale)
- Scala: Core language (2.5 years, very stale)
- Go: Core language (2.5 years, very stale)
- Perl: Core language (10 years, very stale)
- C and C++: Core languages (10 years, very stale)
- SQL Databases: SQL (15 years, current); PostgreSQL (8 years, current); MySQL (5 years, stale); Oracle (5 years, very stale)
- NoSQL Databases: MongoDB (5 years, very stale)
Development Tools
- Integrated Development Environments: IntelliJ (10 years, current); VS Code (3 years, current); Eclipse (5 years, very stale); Visual Studio (5 years, very stale)
- Command Line Tools: Zsh (20+ years, current); Standard Linux Toolchain (20+ years, current)
- Revision Control: Git (12 years, current); Perforce (14 years, very stale); Subversion (8 years, very stale)
Platforms
- JVM: Application programming (15 years, current)
- Kubernetes (5 years, current)
- Docker (5 years, current)
- Linux: Scripting (20+ years, current); Application programming (10 years, stale); System programming (5 years, very stale)
- Microsoft Windows: Application programming (5 years, very stale)
- QNX 4/QNX Neutrino: Application programming (8 years, very stale); System programming (8 years, very stale)
RELATED INTERESTS
Cryptology
- Member of the American Cryptogram Association.
- Implemented automated solvers for various types of ciphers using techniques such as brute-force keyspace exploration, simulated annealing, and hillclimbing. Wrote algorithms to recognize valid English text.