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,

Our success is reliant on building teams that include people from different backgrounds and experiences who can elevate assumptions and ideas with fresh perspectives. We're dedicated to hiring the whole human, not just a resume. To that end, we look for a diverse pool of applicants-including those from historically marginalized groups. We would like to invite you to apply even if you don't think you meet all of the requirements listed below. We don't want a few lines in a job description to get between us and the opportunity to meet you.

About the Team:
The Dev Tooling team builds systems to increase developer productivity and improve system reliability across all of Outreach. We own developer environments, CI/CD, system observability, shared libraries, and shared frameworks. This is a wide charter with technical depth that acts as the oil keeping the Outreach software development engine running smoothly.

This team is a team of generalists, with specializations. With the wide charter, you may find yourself spending a morning building a logging library, and the afternoon helping a team design an efficient way to run integration tests in a production-like environment. We spend our time alternating between helping our engineering customers with immediate issues and developing features with long-term impact - a great environment if you like quick wins mixed in with larger investments. The wide charter also means there are myriad opportunities to expand your knowledge and skills, both on the technical front and in product design. If wide leeway to improve developer productivity and production reliability sounds exciting to you, come talk to us!

The Role:
This particular role is geared towards an individual who specializes in ruby and ruby on rails. In this role you will be supporting the critical shared components and framework of our monolith ruby application. This particular codebase is the most heavily trafficked codebase at all of Outreach, and is responsible for the bulk majority of our revenue generating operations.
Your Daily Adventures Will Include:
  • 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 

Our Vision of You:
  • 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)