Do you want to help shape the future of compute for the Amazon Web Services cloud?
The EC2 Enterprise Workloads organization is responsible for tackling tough problems faced by enterprise customers via cloud-based solutions.
The team uses cutting-edge technologies to develop large-scale platforms to help customers optimally run their business.
We are hiring Senior Software Development Engineers to make Amazon Elastic Compute Cloud (EC2) the best place to run enterprise class workloads.
As part of our team you will help build next generation services that simplifies how our customers and partners configure and manage high performance computing workloads on the cloud.
You will closely work with various pre-release Amazon technologies and build services that handle large scale, highly available distributed systems.
We are looking for Software Development Engineers who are passionate about working on cutting edge technologies, who bring deep technical knowledge, and who have experience with distributed systems to drive technical design and implement end-end solutions.
If you’re into operating systems, how software interfaces with hardware, file systems, or just working on challenging software problems where performance and code size still matter, come and join us.
The ideal candidate for this position is a software engineer excited to work in a cloud scale environment who has a strong track record of developing and delivering Windows user- or kernel-mode drivers in a system level programming language such as C / C++.
Here at AWS, we embrace our differences. We are committed to furthering our culture of inclusion. We have ten employee-led affinity groups, reaching 40,000 employees in over 190 chapters globally.
We have innovative benefit offerings, and host annual and ongoing learning experiences, including our Conversations on Race and Ethnicity (CORE) and AmazeCon (gender diversity) conferences.
Amazon’s culture of inclusion is reinforced within our 14 Leadership Principles, which remind team members to seek diverse perspectives, learn and be curious, and earn trust.
10017
Key job responsibilities
This team and the role would be a good fit for you if you feel excited about the following
- innovate and come up with a vision to bring the best system software to enterprise customers
- improve the CI / CD process across multiple services / pipelines to increase development velocity
- work collaboratively with team and other teams on solution development of both user and kernel space applications
- work with Principal / Sr. Principals and Product management team to define solution technical roadmap
- analyze business requirements and provide solution design with estimated work effort
- create architecture design with resilience, scalability, and performance
- assure the highest quality bar relentlessly with software development best practices
- participate design and code review and provide insightful suggestions across products and / or teams
- mentor junior team members and develop the best
- participate in Agile development process and influence the process refinery
A day in the life
As a software development engineer, your daily tasks may include the following
- Participate regularly in stand-ups and team meetings
- Review design docs, code changes from team peers
- Design, implement, and deploy the new software solution assigned to you or owned by team
- Improve existing automation processes
- Go through backlogs related with products you or team own
- Participate in oncall rotation
- Have fun and learn new AWS services and Windows technologies.
About the team
The EC2 Windows OST (OS Technologies) team owns the fundamental OS level software and services which enable the EC2 Windows offerings.
We bring innovations to Windows OS so that Windows instances and enterprise workloads can perform best on AWS EC2 platforms.
These innovations include but not limited to kernel drivers, user applications, and machine learning powered troubleshooting services.
We also make efforts to provide fundamental support for other AWS teams to enable their services like Backup, High performance computing, Security and many others
BASIC QUALIFICATIONS
- 5+ years of non-internship professional software development experience
- 5+ years of programming with at least one software programming language experience
- 5+ years of leading design or architecture (design patterns, reliability and scaling) of new and existing systems experience
- Experience as a mentor, tech lead or leading an engineering team
- BS in CS / EE or related field with 10+ years of experience
- MS / PhD in CS / EE or related field with 8+ years of experience.
- Proficient in C / C++
- Computer Science fundamentals in algorithms, data structures, system architecture, software engineering basics
- 5+ years of experience in developing Windows user-mode or kernel-mode drivers
- Familiar with at least one Windows driver development model, such as MiniPort, NDIS, StorPort, WDM, WDF etc
- Deep understanding into OS level, familiar with either Windows or Linux kernels
- Prior experience with at least one full software development cycle from architect, design, code, review, verification, automation, debugging / system-level troubleshooting, release / maintenance
- Good communication skills in both verbal and written forms
PREFERRED QUALIFICATIONS
- 5+ years of full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations experience
- Bachelor's degree in computer science or equivalent
- Programming experience with other higher level languages, like PowerShell, Python, Rust, Golang etc
- Knowledge in storage stack, familiar with NVMe protocol, Windows file system, storage space, S2D.
- Knowledge about Virtualization technologies, Cloud-computing concepts
- Knowledge about OS boot up sequences
- Knowledge about security concepts, like TLS, PKI, attestation, Signing, Encryption, Certificate, TPM, Secure Boot, TEE
- Knowledge about CPU technologies, like Intel SGX, Intel TDX, AMD SEV-SNP, ARM CCA
- Experience with software performance, scale, or / and stress testing
- Knowledge or experience with software performance evaluation or benchmarking
- Comfortable in a fast-paced, start-up like environment
- Passion to work with mission critical services and deliver the best to customers