Software Development Engineer - AWS Networking
DESCRIPTION We are designing and delivering software at Amazon scale to manage and upgrade the AWS network-a large part of what makes up the global internet. Our team is responsible for the end-to-end deployment of all changes to configurations, operating systems, and other artefacts that run the Amazon network, encompassing millions of network devices worldwide. We design, author, and vend the software infrastructure ourselves to safely, reliably, predictably, and quickly roll out changes to the fleet. Humans make mistakes, so despite the size and complexity of our problem space, we feel it's important that our solutions be simple and use as little human interaction as possible. We are searching for software engineers who thrive writing distributed software systems that work at immense scale, who have a passion for elegant software written with the highest standards in mind, and who believe in a customer data-driven approach to system design.
We are a group of engineers that value diverse perspectives, collaborate freely, and believe we should help each other succeed (and fail) as a team. We love to learn and take ownership for our work, and we think you probably do too. As a member of our team, you will have opportunities to stretch your skills, whether that means resolving deep algorithmic knots in our backend services or designing a better user experience for our technical users. We are often the first team to do what we do and there's no StackOverflow article for that!
Here are some reasons you should come work with us:
• You want to think about and build software that scales to operate the largest network on earth.
• Influence your team's software architecture and likely influence related teams architecture too.
• Solve difficult or complex architecture and business problems. Your solutions are extensible. You work to simplify, optimize, and remove bottlenecks.
• You love to learn, and you seek out diverse viewpoints from the smartest minds around the world in order to solve problems that don't have a solution you can run a search for.
• You want to own solutions where you get to define technical objectives, prioritise delivery, and be responsible for all aspects of the lifecycle.
• You like to experiment, with the accompanying failures that occur, because you are pushing the boundaries of our field. You see failure as an opportunity to learn and grow both yourself and your team.
• You value the highest technical standards, have a propensity towards action in solving problems and take ownership for your results.
BASIC QUALIFICATIONS • Bachelor's Degree in Computer Science or equivalent professional experience.
• Proven professional experience in a software environment, developing high quality code.
• Proficiency in 2 or more programming languages; including, but not limited to: Java, C++, C, C#, or Python.
• Computer Science fundamentals in object-oriented design, data structures, algorithms and complexity analysis.
• Knowledge of designing systems that scale through software (architecture, design patterns and reliability).
• Knowledge of professional software engineering best practices for the full software development life cycle; including coding standards, code reviews, source control management, build processes, testing, and operations.
• Experience with software development using Linux/UNIX environments, its challenges and considerations.
• Excellent written and verbal communication skills.
PREFERRED QUALIFICATIONS • Experience leading multiple products in parallel, taking them from concept to production, and maintaining them
• A solid understanding of networking protocol details.
• Have mentored software engineers to improve their skills, and make them more effective, and productive software engineers.
Amazon Web Services is an equal opportunity employer and value diversity at our company. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.