The Amazon Elastic Compute Cloud (EC2) VPC Dataplane team owns the packet pipeline that runs right beneath all our customer's EC2 VPC instances, adding features like firewalls (security groups), routing, billing and monitoring as we touch every single packet on every single host across our worldwide fleet in more than 30 regions. Our vision is to combine the performance of bare metal networking while maintaining all the benefits of the cloud, including delivering features not possible on bare metal leading to true Software Defined Networking (SDN).
We continue to grow, and are looking for kernel/embedded C programmers who can deliver ultra-high performance for our EC2 customers - our goal is to be processing many millions of packets per second on embedded CPU cores. This requires both being able to implement highly optimized data structures, but also low level tuning to our hardware. If you have good experience in C/C++ or Rust, and a passion for systems software engineering such as kernel or embedded software development, then this is a unique opportunity to join us in building the platform which is the basis for all new EC2 VPC features in the years to come.
With the extensive network and access to Principal, Sr. Principal and Distinguished Engineers across EC2, AWS and Amazon, there are many stretch opportunities to grow your skills and knowledge.
Key job responsibilities
Your responsibilities will include:
- Develop new features and enhancements for the VPC dataplane that run on embedded systems across our global fleet of EC2 hosts.
- Design and build secure and scalable services to enable monitoring, diagnostics, and automated recovery.
- Design and build next generation hardware/software validation platforms that enables efficient CI/CD.
- Collaborate with cross-functional teams to understand and define requirements, design system architectures, and implement robust and scalable solutions.
- Continuously improve development processes, tools, and automation to enhance productivity and quality.
- Support junior engineers with scoping, design; providing mentorship to ensure the right development practices are followed.
- Be very hands-on; work with the engineering team to manage the day-to-day development activities by leading architecture decisions, participating in designs, design review, code review, and implementation.
- Communicating with users, other technical teams, and senior management to collect requirements, describe software product features, technical designs, and product strategy
BASIC QUALIFICATIONS
- 3+ years of non-internship professional software development experience
- 2+ years of non-internship design or architecture (design patterns, reliability and scaling) of new and existing systems experience
- Experience programming with at least one software programming language
PREFERRED QUALIFICATIONS
- 3+ 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
- Proficiency in design and analysis of algorithms and data structures
- Linux operating system knowledge
- In-depth knowledge of TCP/IP
- Kernel or embedded development, particularly Linux kernel
- Scripting (Ruby/Python/Rust)
- Strong knowledge of Computer Science fundamentals in object-oriented design, data structures, algorithm design, problem solving, and complexity analysis
- Knowledge of, at least, one modern programming language such as C, C++, Rust, Python or Perl
- Experience developing complex software systems that have been successfully delivered to customers
- Knowledge of professional software engineering practices & best practices for the full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations
- Ability to take a project from scoping requirements through actual launch of the project
- Experience in communicating with users, other technical teams, and management to collect requirements, describe software product features, and technical designs
- Experiencing mentoring junior software development engineers and driving engineering excellence
- Meets/exceeds Amazon’s leadership principles requirements for this role
- Meets/exceeds Amazon’s functional/technical depth and complexity for this role
Amazon is committed to a diverse and inclusive workplace. Amazon is an equal opportunity employer and does not discriminate on the basis of race, national origin, gender, gender identity, sexual orientation, protected veteran status, disability, age, or other legally protected status. For individuals with disabilities who would like to request an accommodation, please visit https://www.amazon.jobs/en/disability/us.
Our compensation reflects the cost of labor across several US geographic markets. The base pay for this position ranges from $129,300/year in our lowest geographic market up to $223,600/year in our highest geographic market. Pay is based on a number of factors including market location and may vary depending on job-related knowledge, skills, and experience. Amazon is a total compensation company. Dependent on the position offered, equity, sign-on payments, and other forms of compensation may be provided as part of a total compensation package, in addition to a full range of medical, financial, and/or other benefits. For more information, please visit https://www.aboutamazon.com/workplace/employee-benefits. This position will remain posted until filled. Applicants should apply via our internal or external career site.