Returning Candidate?

Senior Software Development Engineer-AWS-DynamoDB

Senior Software Development Engineer-AWS-DynamoDB

Job ID 
Posted Date 

Job Description

Senior Software Development Engineer - AWS - DynamoDB Storage Node and Engine

Want to work on a product that can:
  • Backup hundreds of TBs of customer tables in seconds
  • Replicate tables across continents
  • Encrypt PBs of data with no performance degradation

DynamoDB is a fully managed NoSQL serverless database that does all this and more !!

DynamoDB provides fast and predictable performance (millisecond latencies for reads and writes) with seamless scalability. DynamoDB receives tens of millions of read and write requests per second to databases that are hundreds of TBs in size.

We are already one of the biggest distributed database systems in the world. That being said, we believe it is still Day 1 for DynamoDB and our aspirations are to grow this product by 10x in the next 2 years. We are looking for deeply technical, team first mentality individuals who are willing to commit themselves to this aspiration.

Engineers say DynamoDB is a technically challenging space that requires unique and innovative solutions. In DynamoDB, you will get to solve the hardest engineering challenges in distributed systems at massive scale. As a developer in the DynamoDB team, you will get to exercise your intellectual curiosity to its max, work with an amazing team of super sharp individuals who will help you grow your skills and career, and hone your design and architectural skills by getting to work with Principal Engineers and Senior Engineers on a daily basis.

This will be a hands on position where you will do everything from designing, implementing rock solid components, launching a new service iteratively, mentoring other engineers as well as evangelizing the work done by your team.

The storage node team is responsible for the data model, data durability, performance characteristics and access methods of DynamoDB’s data plane. Highly durable and available storage is at the heart of DynamoDB and as such, the storage node is a core component of the service. The buck stops with us. Consistent low latency is a must and requires design and coding techniques that provide guarantees for both. To keep things interesting, consistent latency must be delivered in the face of multi-tenancy. Maximizing node utilization while meeting our throughput and latency requirements is an interesting challenge – how do you guarantee availability and fairness in the face of massive traffic spike anomalies?
In addition you will have the unique opportunity of working with our infrastructure team to influence the design of the hardware your component will be running on. If data replication and consensus protocols interest you, then you are in the right place.

Nearly every customer facing feature of the DynamoDB service requires some support from the storage node. As such you will be taking part in design discussions from a broad range of teams across the organization and AWS, with ability to influence those designs. Delivering HIGHLY durable and available solutions must be in your DNA.

Position Responsibilities
  • Lead design, implementation, and deployment of highly distributed, large scale services.
  • Translate complex functional and technical requirements into detailed architecture and design
  • Be very hands-on; work with others on the engineering team to manage the day-to-day development activities, participate in designs, design review, code review, and implementation.
  • Deliver quality features on-time and on-budget and execute against project plans and delivery commitments.
  • Contribute to Amazon's Intellectual Property through patents and/or external publications.
For more information on Amazon Web Services please visit:
For more information about DynamoDB please visit

Basic Qualifications

  • Bachelor's Degree in Computer Science or equivalent and 4 or more years of professional experience Or, Master's Degree in Computer Science or equivalent and 2 or more years of professional experience
  • Team Player - ability to collaborate and lead by example
  • Strong coding skills in Java, C++ or C#
  • Strong multi threaded programming experience
  • Strong knowledge of data structures, algorithms, enterprise systems and distributed algorithms

Preferred Qualifications

  • experience designing and building large scale systems and web services
  • Experience with database systems
  • Excellent leadership, verbal and written communication skills
  • Proven results oriented person with strong delivery track record
  • Experience with distributed systems architecture