Staff Software Engineer (Backend - Golang OR Ruby&Rails)
Published on April 20, 2024
About the Team/Role: The Dev Tooling team is an internal-facing team dedicated to enabling the entire engineering organization to do better work. This wide and intentionally-vague charter encompasses a slew of evolving topics. If there’s a common thread between multiple projects, whether discovered in the present or envisaged for the future, we try to get out ahead and build the systems, tooling, and training needed for that work to be successful. We’re also spearheading a long-term project of open-sourcing our entire service platform -- from kubernetes cluster-building to template-based service development to the development environment/tooling to test it, it’s all going to be one big startup-in-a-box system for the world to use. Outreach’s primary product is based on a monolithic Ruby on Rails codebase, “the flagship”, heavily leveraging ActiveRecord and other common Ruby/Rails technologies. Over the past year, we have set a new North Star of all new service code being in Golang,
- Developing common Kubernetes deployment patterns across projects
- Developing best-practices and libraries for monitoring production systems
- Designing end-to-end multi-service integration test frameworks that work on laptops and in CI
- Identifying common themes in upcoming projects and building common frameworks to help teams build them faster
- Working with engineering teams to find out where we need to invest in more tooling
- Triaging feedback and bugs from users
- Engaging with the open source community
- Building reliable core service libraries so feature teams can focus on business logic
- Experience working on build systems, especially running in CICD
- Experience maintaining shared libraries, especially open-source libraries
- Experience with container-based workflows and services, especially Kubernetes
- Experience building production monitoring to track service and website health
- Expert in Golang (used extensively by the Dev Tooling team)
- Familiarity with Typescript, Python, and Ruby (used elsewhere in the company)