Amazon Simple Storage Service (S3) is storage for the Internet. Through the use of pioneering techniques in distributed computing, developers can durably store their data on AWS’s proven computing infrastructure to achieve virtually limitless storage capacity at minimal cost. Amazon S3 provides simple APIs that can be used to store and retrieve any amount of data, at any time, from anywhere on the web. While the emerging area of cloud computing has seen tremendous growth over the past few years, we are still in the early stages of realizing its full potential.
The S3 FrontEnd team is looking for passionate, experienced software engineers to build the next generation of internet-scale Tier 1 web services for S3. We own large-scale distributed systems that are responsible for processing every S3 request as well as APIs responsible for definition, behavior, management and security and enforcement of all S3 buckets.
As a Software Development Engineer II on this team, you will have the unique opportunity of not just designing, developing and owning entire back-end sub-systems with hard distributed system problems but also designing API's that are used by millions of applications around the world and by doing so defining S3 for customers.
The work you do here is going to significantly drive growth not just in S3 but the AWS ecosystem. It involves creating a reliable, scalable, and flexible web service requires exceptional technical expertise, a sound understanding of the fundamentals of Computer Science, complex algorithms and practical experience building large-scale distributed systems. You should be somebody who enjoys working on complex system software, is customer-centric, and feels strongly not only about building good software but also about making that software achieve its goals in operational reality.
- Design, implementation, deployment and maintenance of innovative software solutions to transform service security, durability, availability, performance and cost.
Using software engineering best practices to ensure the standard of quality of all team deliverables
Writing high quality distributed system software
Effectively estimating time to implement design & consistently making systems simpler
Thinking in terms of architecture as well as code
Spending time reviewing code and mentoring SDE1 and Jr. engineers