Amazon Web Services is looking for experienced software development engineers to help define and build the future of cloud computing! This position is a developer role with an EC2 Networking team.
The team owns the packet pipeline that runs right beneath all our customer's EC2 VPC instances, adding features like firewalling (security groups), billing and monitoring as we touch every single packet on every single host across our massive worldwide fleet.
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 i.
e. true Software Defined Networking (SDN).
We are growing fast, and are looking for low-level programmers who can deliver ultra high performance - our goal is to be processing millions of packets per second on a CPU core all in C.
This requires both being able to implement highly optimized data structures, but also low level (including by hand assembly and vectorizing) tuning to our hardware.
If you have good experience in Rust or C / C++, and a passion for systems software engineering such as kernel or embedded development, then this is a unique opportunity to join us at day one of building the platform which is the basis for all new EC2 VPC features in the years to come.
10017
Key job responsibilities
- Being the lead engineer on a small team, mentoring junior engineers, ensuring 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.
- Maintain current technical knowledge to support rapidly changing technology, always on a look out for new technologies and work with management and development team in bringing new technologies.
- 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
- Programming experience in C / C++, Rust, Go
- Effective verbal and written communication skills
- Proficiency in design and analysis of algorithms and data structures
- Linux operating system knowledge + development experience
- In-depth knowledge of TCP / IP
- Kernel or embedded development, particularly Linux kernel
- 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
- Experience influencing software engineers best practices within your team
- Scripting (Ruby / Python)