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 Webserver team owns the run-time system that is responsible for serving the S3 API to customers. This includes the get, put, copy and delete API's as well as the platform in which each API executes after receiving a request from a customer client. We own building core features, data life cycle workflows, versioning, multi-part upload and static website hosting for the S3 webserver. Our systems must be designed to handle wildly varying access patterns and unprecedented load as AWS continues to grow at an incredible rate, driven by usage from customers across 190 countries.
The S3 Webserver team is looking for passionate, experienced software engineers to build the next generation S3 frontend webserver. As a member of the S3 Webserver team, you will have the unique opportunity to both take part in design, development and ownership of entire backend sub-systems that solve hard distributed system problems as well as doing the same for new API's that are used by millions of applications around the world. Join us as we define S3 for customers and significantly drive growth not just for S3, but for the entire AWS ecosystem.
This is a senior engineering role where you will be recognized as a team leader expected to excel with minimal technical supervision. You will collaborate directly with senior managers and have direct influence over the team.
- 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
- Consistently making systems simpler
- Spending time reviewing code
- Solving big problems with a lot of ambiguity