Software Development Engineer - AWS - New DynamoDB Data Plane Service
Want to work on a new service to help redesign the core replication, streaming and storage components of DynamoDB using cutting edge distributed systems, replication and storage technologies? Want to work on a project, which will redefine the DynamoDB core storage components to allow us to scale by orders of magnitude?
DynamoDB is an industry leading, fully managed NoSQL serverless database that already supports:
· Backing up hundreds of TBs of customer tables in seconds
· Replicating tables across continents
· Encrypting PBs of data with no performance degradation
· Transactional read and write functionality
· Fast and predictable performance (millisecond latencies for reads and writes) with seamless scalability
As part of this effort you will help build the core components that will allow DynamoDB to keep pushing the boundaries for availability, durability and low latencies as well as laying the foundation for future customer-facing features. As part of this effort you will play a key role in redesigning core pieces of DynamoDB to help build the foundation and set the standard for DynamoDB for years to come.
As an engineer on the DynamoDB Data Plane team, you will be responsible for architecting and developing the next generation storage system that can handle 100s of billions of requests a second with industry leading latency, availability and durability characteristics. You will be working on the core consensus and replication algorithms that lays the foundation for future feature work to meet the demands of tomorrow. Together with a team of world-class engineers you will have a lot of freedom in defining, designing and delivering these components. In your work, you will be exposed to the latest research in the field of distributed computing, while at the same time be responsible for making practical engineering trade-offs, such as maximizing hardware utilization and minimizing costs.
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.
We need developers who can handle hard distributed systems problems as well as hard resource optimization problems. As a tier zero Amazon service that is growing at a very high rate our solutions have to be super solid, scalable, efficient, and extremely fault tolerant. You will be designing systems to adhere to these tenets, and mentor more junior engineers. We are also rapidly adding features, both customer facing and internal. You'll be involved in both. This is a hands-on position where you will be asked to do everything from building rock-solid components to formulate strategy and evangelize technology, mentor other engineers and provide training and support for our supported technologies. You need to not only be a top software developer with a good track record of delivering, but also excel in communication, leadership and customer focus. If you want to test your limits and tackle technical challenges you won't see anywhere else then come join our group.
Your responsibilities will include:
· Translation of complex functional and technical requirements into detailed architecture and design
. Run multi engineer cross team projects. You will need to demonstrate and mentor others on project management, and prioritization.
· 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.
· Delivery quality features on-time and on-budget and execution against project plans and delivery commitments.
· Perform data analysis to identify opportunities to optimize our fleet.
· Work with data scientists to understand the data they need, and build services to act on the insight from the data scientist.
· Maintain current technical knowledge to support rapidly changing technology, always on a look out for new technologies and work with management and the development team in bringing in new technologies.
Candidate must be able to work with a minimum of technical supervision and supplemental engineering support, while responding efficiently to multiple program priorities. Work with engineering teams to design and optimize a wide variety of development projects using a variety of development tools and practices. In addition, the role involves developing shared components and tools, analyzing the latest technologies and development trends, establishing and implementing standard practices.
In joining our team, you'll enjoy a competitive salary, great benefits, a creative and comfortable work environment, and the exciting opportunity to be part of a fast-paced and growing technology company.