Sr. Software Development Engineer - Persistence, DynamoDB Storage Engine
Amazon
- Location
- US, WA, Seattle
- Employment
- Full Time
- Work model
- On-Site
- Level
- Senior
- Posted
- 23h ago
Skills
About this 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. At DynamoDB, we continue to believe it is Day 1! 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. We are looking for a senior software development engineer with a deep passion for storage and persistence — someone who thinks deeply about how data should live on disk, how to balance durability guarantees against performance, and who finds elegance in the engineering of reliable, space-efficient, crash-resilient storage systems. 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. What You'll Do - As a senior engineer on the persistence track, you will 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. What We're Looking For - 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. 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