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, internet-scale Tier 1 web services for S3. We own large-scale distributed systems that are responsible for processing every S3 requests as well as APIs and backend systems responsible for definition, behavior, management and security and enforcement of all S3 buckets.
As a Software Development Engineer 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. You would be part of the team taking on re-architecting, re-writing and creating systems that shape how S3 operates and how customers use S3 in the future. Additionally as part of the technical leadership, you will mentor and develop Jr engineers as well as driving collaboration with other senior and principal engineers in S3 and have direct influence over the team.
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 in building large-scale distributed systems. You should be somebody who enjoys working on complex software systems, is customer-centric, and feels strongly not only about building good software but 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
Thinking in terms of architecture as well as code
Solving big problems with a lot of ambiguity
Spending time reviewing code and mentoring Jr. engineers
Consistently making systems simpler