Software Development Engineer, EC2 Nitro
EC2 Nitro drives the planet’s largest, fastest growing and most feature-rich compute cloud. Nitro is AWS’s ground-up design for virtualization at global scale built on a fully custom stack of hardware, firmware and applications. Nitro has enabled EC2 to support Intel, AMD and Amazon’s custom silicon — Graviton2 — while raising the industry bar for security and performance across our product line. The EC2 Server Provisioning team is the assembly line for EC2, turning new servers into EC2 virtualized hosts running customer workloads across the globe. Every EC2 customer instance running on every host type, in every data center, across the globe has passed through services operated by this team.
About the role
Engineers on EC2 Server Provisioning become subject matter experts on distributed, asynchronous services running at global scale. The EC2 Provisioning team lays the foundation on which every EC2 service — both internal and external — runs. The team is responsible for the software infrastructure required to make racks of hardware received from manufacturing into cloud infrastructure that allows customers to run the wide variety of EC2 instances available today. The scale spans many millions of devices across the globe, and every new EC2 instance type launched is built through EC2 Provisioning services. The infrastructure must manage live devices without any downtime to customers and keep the growing EC2 fleet healthy.
Responsibilities
- Own the full software development lifecycle: requirements, system design, implementation, testing, monitoring, support, alarming, and reporting
- Work closely with EC2 Principal Engineers and other technical leaders to refine technical direction, then follow through with detailed analysis, designs, and high-quality code
- Lead small, focused project teams and make major direct contributions to projects
- Deliver features with minimal direct oversight
- Participate in requirements gathering, design reviews, code reviews, incremental feature launches, operations, mentoring, and driving continuous improvement
- Develop primarily in Java within a Linux environment
Qualifications
Basic Qualifications
- 3+ years of non-internship professional software development experience
- 2+ years of non-internship design or architecture experience (design patterns, reliability and scaling) of new and existing systems
- Experience programming with at least one software programming language
Preferred Qualifications
- 3+ years of full software development life cycle experience, including coding standards, code reviews, source control management, build processes, testing, and operations
- Bachelor's degree in computer science or equivalent
- Comfortable with the Linux operating system
- Experience developing in languages such as Java, C#, Python, Go, or Ruby in a Linux environment
- Knowledge of the use, design, and development of distributed systems and web services
Benefits
- Inclusive team culture with ten employee-led affinity groups reaching 40,000 employees in over 190 chapters globally
- Annual and ongoing learning experiences including Conversations on Race and Ethnicity (CORE) and AmazeCon conferences
- Work-life harmony: flexibility in working hours, emphasis on personal/professional balance
- Mentorship and career growth: broad mix of experience levels, one-on-one mentoring, thorough but kind code reviews, projects assigned to develop well-rounded engineers
- Comprehensive benefits: health insurance (medical, dental, vision, prescription, Basic Life & AD&D insurance, option for Supplemental life plans, EAP, Mental Health Support, Medical Advice Line, Flexible Spending Accounts, Adoption and Surrogacy Reimbursement)
- 401(k) matching, paid time off, and parental leave
- Sign-on payments and restricted stock units (RSUs) included in compensation package
Pay
Base salary range: $143,700 – $194,400 USD annually (Seattle, WA). Final compensation determined by experience, qualifications, and location.
Company: Amazon Development Center U.S., Inc. | Job ID: A3203794