Staff Software Engineer, Queueing and Storage Services



Software Engineering
Seattle, WA, USA
Posted on Thursday, April 25, 2024
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 Queueing and Storage Systems (QSS) team is responsible for the “platform” of our databases (MySQL, PostgreSQL, DynamoDB, Redis/Elasticache, and more) and queues (Kafka, RabbitMQ) across the entire company. The team manages some of these centralized systems for the entire engineering organization, but is primarily an enablement squad -- helping enable other teams to effectively and efficiently manage their own persistent storage infrastructure.
To get there, we are developing tooling platforms to automate provisioning, deployment, management, and interactions with the next generation of databases and queues used by our application teams. Without deep experience scaling databases and queues, feature teams often make common mistakes trying to use these systems. We try to get out ahead of that, building solutions that will scale without running into common problems like hot spots, uneven load distribution, and general poor performance.
The Role:
The QSS team is building a suite of tooling to automatically deploy a relational database platform that is fully managed within a feature squad’s service. Schema management, change data capture, replication, denormalization, and aggregation is all managed automatically by the platform. The tooling and platform allow teams to focus on the business logic around managing and querying for their data, without the overhead of every team individually implementing nuanced platforms like entity change queues. This suite of tools will eventually extend into a full platform for real-time data processing/analytics, allowing different data stores to aggregate and roll up into new enriched data sources for the platform to leverage.

Your Daily Adventures Will Include

  • Designing/building Kubernetes operators to automatically manage/provision infrastructure, scaling, deployment coordination, and credentials
  • Maintaining the reliability and performance aspects for the databases and queues for the production Outreach platform
  • Designing reusable storage platforms for feature squads to leverage
  • Analyzing solutions and implementing best practices for our database clusters and other stateful components
  • Prototyping new managed storage/queue solutions and access patterns for new services and feature roadmaps
  • Developing solutions for migrating data between systems
  • Providing database expertise to engineering teams (for example through reviews of database migrations, queries and performance optimizations)
  • Supporting and debugging database production issues across services and levels of the stack
  • Proactively designing/tuning monitors/alerts/dashboards to alert on symptoms and not on outages
  • Documenting every action so your learnings turn into repeatable actions and then into automation.

Our Vision of You

  • You love enabling your coworkers to be successful
  • Experience operating scaled/high-throughput database and/or queue platforms in production systems
  • Able to write high quality code in a programming language (e.g. Golang, Ruby, Scala, Elixir, Python) that deploys to a production environment used by customers
  • Experience designing and supporting internal-facing tooling where the “customers” are your coworkers
  • You thrive in an ambiguous environment that requires seeking out and collaborating with both your team and the rest of the company to design effective solutions
  • Understanding of which details are important and ability to prioritize incremental delivery over long-term go-dark projects
  • Willingness to learn new technologies (most of our time is spent in Golang, with a smattering of Ruby/Rails)You embody our core values. We are hungry craftspeople, we have grit, we are honest, we take ownership, we have each other’s back no matter what, we’re one with our customers, and we find strength in diversity and inclusion
The annual base salary range for this role is $165,000-$225,000 USD. You may also be offered incentive compensation, bonus, restricted stock units, and benefits. Actual compensation is based on factors such as the your skills, qualifications, and experience. We also have a location-based compensation structure; there may be a different range for candidates in other locations.
Why You’ll Love It Here
• Generous medical, dental, and vision coverage for full-time employees and their dependents
• Flexible time off
• 401k to help you save for the future
• Diversity and inclusion programs that promote employee resource groups like OWN+ (Outreach Women's Network), Adelante (Latinx community), OBX (Outreach Black Connection), Mosaic (AAPI community), Pride (LGBTQIA+), Gender+, Disability Community, and Veterans/Military
• A parental leave program that includes not just extended time off but options for a paid night nurse, and a gradual return to work
• Infertility/ assisted reproductive services benefit
• Employee referral bonuses to encourage the addition of great new people to the team
• Plus, unlimited snacks and beverages in our kitchen
• We’re an equal opportunity employer. All applicants will be considered for employment without attention to race, color, religion, sex, sexual orientation, gender identity, national origin, veteran or disability status