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 sole 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've been involved both directly and indirectly with a number of different teams. The following are representative examples of things I've done.
- Participated in the design and development of Cobalt's first public-facing API.
- Led multiple company-wide upgrades of Ruby to ensure we were on the latest version.
- Spearheaded enabling YJIT in Ruby 3.2, resulting in about a 10% reduction in average API response time across the entire app.
- Designed and principally implemented a new data model and API to support a range of new product offerings.
- Mentored more junior team members.
- Participated in the interview loops for many technical hires.
- With other staff engineers, helped set technical direction and priorities across the company. This included prioritizing legacy tech debt as well as planning for the future.
- Investigated platform performance and stability issues.
2015 January - 2021 March / Indeed.com / Seattle, WA
Software Development Engineer II / Quartermaster Team / 2018 April - 2021 March
The Quartermaster team was 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).
- Participated in the daytime on-call rotation to support the entire application stack.
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.
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 - 2014 December
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-internal 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).
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.
- 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
FAAC is a small defense contractor specializing in driver training simulators. Over the course of my time there, I progressed from an associate engineer fresh out of college to a senior engineer acting as the technical lead for all military simulator contracts.
- 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.
- Designed and implemented second generation of distributed real-time simulation architecture.
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.
TOOLS AND SKILLS
Tools
- Languages currently in use: Kotlin and Ruby.
- Languages I've used extensively over the course of my career: SQL, Java, Scala, Go, Perl, C, early C++.
- Broad exposure to most major development environments, including IntelliJ, VS Code, and tools like vim and tmux at the command line.
- Most major SQL databases as well as some familiarity with MongoDB, Redis, etc.
- Familiarity with Kubernetes and Terraform.
Skills
- Extensive experience with SCRUM and Kanban methodologies.
- Strong written and verbal communication skills.
- System design.