Sr. Software Development Engineer - Persistence, DynamoDB Storage Engine
About the role
Come help us shape the future of one of the largest NoSQL database services on the planet! Amazon DynamoDB is one of the largest distributed database systems in the market, delivering single-digit-millisecond performance at any scale. The DynamoDB Storage Engine team is the custodian of all customer retrievable data stored on disk in DynamoDB and owns services, components, and libraries that persist customer data on disk, keep it secure, and make it available for timely retrieval.
Many of the world's fastest growing businesses, such as Lyft, Airbnb, and Redfin, as well as enterprises, such as Samsung, Toyota, and Capital One, depend on the scale and performance of DynamoDB to support their mission-critical workloads. In this role, your work will directly safeguard the durability and availability of data for these customers at planetary scale.
Responsibilities
- Own the on-disk storage layer of the DynamoDB storage engine — the foundation upon which all customer data durability rests.
- Design and implement optimal on-disk representations for various in-memory data structures, balancing read performance, write amplification, and space efficiency.
- Architect and evolve storage formats, compression strategies, and encoding schemes that minimize footprint while preserving fast retrieval.
- Build and maintain mechanisms for crash recovery, data integrity verification, and resilience to partial failure — ensuring customer data is never lost or corrupted.
- Own the write-ahead log, compaction pipelines, and data lifecycle management from ingestion through tiered storage.
- Drive the long-term storage architecture strategy, evaluating tradeoffs across durability, availability, latency, and cost.
- Mentor engineers across the team on storage internals, failure mode reasoning, and persistence best practices.
Requirements
- Deep technical expertise in C and/or Rust with significant experience writing systems code that interacts directly with storage media.
- Strong understanding of storage engine fundamentals: on-disk data formats, write-ahead logging, checkpointing, and crash recovery.
- Experience designing for resilience to failure — reasoning about partial writes, torn pages, bit rot, and data corruption at every layer.
- Expertise in compression algorithms and encoding schemes — understanding when and how to apply them for optimal size/speed tradeoffs.
- Solid understanding of how file systems, block devices, and I/O subsystems behave under real-world workloads.
- Track record of shipping durable, production storage systems where data loss is unacceptable.
Qualifications
- 5+ years of non-internship professional software development experience.
- 5+ years of programming with at least one software programming language.
- 5+ years of leading design or architecture (design patterns, reliability, and scaling) of new and existing systems.
- Experience as a mentor, tech lead, or leading an engineering team.
Skills
What Would Set You Apart
- Prior experience building or operating high-throughput distributed storage services or database engines at scale.
- Hands-on experience with LSM tree-based storage engines — compaction strategies, write amplification tradeoffs, bloom filters, level/tiered architectures, space amplification management.
- Deep familiarity with compression internals (LZ4, Zstandard, dictionary compression, per-block vs. per-page strategies) and their interaction with read/write patterns.
- Experience with storage device characteristics — understanding SSD FTL behavior, write cliffs, GC-induced latency, device wear, and how to design software that works with (not against) the hardware.
- Familiarity with Linux I/O subsystems including io_uring, AIO, direct I/O, and fallocate for predictable storage behavior.
- Experience with formal or semi-formal techniques for verifying correctness of persistence logic (crash consistency proofs, fault injection testing, Jepsen-style validation).
- Contributions to open-source storage engines or database projects.
- 5+ years of full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations experience.
- Bachelor's degree in computer science or equivalent.
Benefits
- Comprehensive health insurance (medical, dental, vision, prescription, Basic Life & AD&D insurance, and option for Supplemental life plans).
- Employee Assistance Program (EAP), Mental Health Support, Medical Advice Line.
- Flexible Spending Accounts.
- Adoption and Surrogacy Reimbursement coverage.
- 401(k) matching.
- Paid time off and parental leave.
- Sign-on payments and restricted stock units (RSUs).
Pay
USA, WA, Seattle - $168,100.00 - $227,400.00 USD annually.