Senior Backend Software Engineer (Online Storage)
- Ottawa, Canada
- Senior Level
- 5+ years
- Bachelor's degree
- Posted
Skills
Required
- Kubernetes
- MySQL
- database deployments
- Kubernetes networking
- service discovery
- TLS
- distributed database architecture
- Postgres
- Spanner
- CockroachDB
- Python
- Kotlin
- Terraform
Preferred
- provisioning / failover / upgrades / schema migrations
- Relational and Distributed SQL Databases
- data migrations
- multi-tenant database clusters
- ensuring zero downtime
- control-plane / automation
- database benchmarking
- load testing
Join Affirm as a Senior Backend Software Engineer in the Data and Storage Services team. You will be responsible for architecting, building, and scaling relational and distributed SQL databases, as well as owning the networking stack that connects services to storage on Kubernetes. You will have the opportunity to directly influence your team's roadmap, collaborate with product management, design, and analytics, and foster a culture of quality and ownership on your team.
Responsibilities
- Architect, build, and scale Relational and Distributed SQL Databases, identifying opportunities for improvement.
- Design and execute reliability-focused schema and data migrations across multi-tenant database clusters, ensuring zero downtime.
- Lead engineers on your team through ambiguity to solve open-ended problems, and ensure that everyone is supported throughout delivery.
- You have built control-plane or automation tooling for databases, such as provisioning, failover, upgrades or schema migrations, ideally on Kubernetes
- You have expertise in database benchmarking, load testing, and capacity planning
Requirements
- You have in-depth, hands-on experience with large-scale database deployments in a production environment
- You have experience defining a technical plan for the delivery of a significant feature or system component with an elegant, simple and extensible design. You write high quality code that is easily understood and used by others
- You understand Kubernetes networking, service discovery and TLS well enough to debug connection and failover problems between services and databases
- Your experience demonstrates that you take ownership of your growth, proactively seeking feedback from your team, your manager, and your stakeholders
- Solid understanding of distributed database architecture, data modeling, and performance tuning. Particularly, expertise in SQL tuning and performance optimization techniques
- You have expertise in distributed databases and database technologies such as MySQL(Preferred), TiDB(Preferred), Postgres, Spanner, Vitess, CockroachDB etc
- You have executed zero-downtime migrations and major version upgrades on production databases, and have built CLI tooling or runbooks to make those procedures repeatable
- You are familiar with connection poolers and proxies such as ProxySQL, RDS Proxy, Pg Bouncer, PgDog etc
- You are experienced in designing, developing and launching backend systems at scale technologies like Python, Kotlin, AWS, MySQL, Terraform and Kubernetes
- This position requires either equivalent practical experience or a Bachelor’s degree in a related field
- You have strong verbal and written communication skills that support effective collaboration with our global engineering team
- You are proficient at making significant changes in a large code base, and have developed a suite of tools and practices that enable you and your team to do so safely
- You have a total of 5+ years of experience as a software engineer
jobapplier