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.
We are looking for an experienced SDE lead the architectural design, implementation, deployment and maintenance of innovative data management solutions at Internet scale. The S3 Lifecycle team makes it easy for customers to take action on billions of objects. Using Lifecycle customers can define rules to automatically manage the Lifecycle of objects, such as transition of less-frequently accessed objects to low-cost storage alternatives and scheduled deletion. We also own Cross-Region Replication (CRR), giving customers full control over the location of their data; so they can choose an appropriate location to copy objects based on local regulatory requirements, a desire to have the data close to principal clients to reduce latency, or for other reasons. To meet these challenges, the team develops workflow pipelines for asynchronous data processing at scale, working closely with Glacier and other partner teams.
As a Software Development Engineer on this team, you will have the unique opportunity of not just designing, developing and owning entire backend 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.
•BS degree in Computer Science, Computer Engineering or related field.
•8+ years (or more) professional experience in commercial or web-scale system software development and delivery
•Proven object-oriented design and implementation skills in Java, C++ or C#
•Deep understanding of scalable computing systems, software architecture, data structures and algorithms
•Proficient in network, distributed, asynchronous and concurrent programming
•Experience influencing software engineering best practices within your team
•Possess strong verbal and written communication skills
•Possess strong analytical skills, with excellent problem solving abilities in the face of ambiguity
•Demonstrated leadership abilities in an engineering environment in driving operational excellence
•Graduate degree in Computer Science, Computer Engineering or related field