The world of networking is undergoing a sea change. Commodity routers, repeatable designs, dense fabrics and virtualization techniques dot the data center network landscape. SDN concepts are merging the boundaries of control plane and management plane functions and expectedly, software is playing an ever-increasing role in controlling and managing these networks. At Amazon Web Services, we run one of the biggest networks in the world. The software ecosystem managing this network needs to be intelligent, scalable and fault tolerant. Our vision is to ultimately have self-managed networks and we have launched the Intelligent Networks initiative as part of that. The Foundational Network Services Organization is responsible for building key services that would enable this vision.
We are looking for a software development manager to lead a team of engineers that would build a set of foundational network services. Some of the services would generate network designs, translate them to topologies and then produce configurations for all elements in the topology. Another set of services would provide primitives for interacting with the network, including configuration deployment, operational state changes and traffic engineering. A comprehensive data model of the Amazon network would be built to support these operations. Yet another set of services constantly collect the state of the network, manage its lifecycle and ensure it is consistent with the intended, software-defined state.
As a manager in this team, you will be leading a team of highly motivated software developers that thrives on solving challenging problems with innovative solutions. The team bridges network engineering and software engineering disciplines to solve real world problems. They build large-scale distributed software systems in Java, Python and other languages using open source technologies like Apache, Celery, Redis, HTTP/REST services etc., and other Amazon’s proprietary technologies.
· A background in computer science fundamentals: a bachelor's degree or higher in Computer Science (or equivalent) · 10+ years of experience in building production software applications with focus on efficient back-end components . 4+ years of managing teams building production software · Software development skills, preferably in Java, C/C++, Ruby and/or Perl in Linux environment · Problem solving and troubleshooting skills
· Knowledge of major protocols, topology design, network hardware and device configuration. · A solid understanding of performance and efficiency issues. · Experience with distributed computing and enterprise-wide systems. . Experience building web services and micro-services. . Experience dealing with complex data models, including design and implementation · Experience taking a leading role in building complex software systems that have been successfully delivered to customers. · Exposure to software engineering best practices· . Ability to take a project from scoping requirements through actual launch of the project. · A strong customer orientation.