Arista Networks was founded to pioneer and deliver software driven cloud networking solutions for large data center storage and computing environments. Arista’s award-winning platforms, ranging in Ethernet speeds from 10 to 400 gigabits per second, redefine scalability, agility and resilience. Arista has shipped more than 20 million cloud networking ports worldwide with CloudVision and EOS, an advanced network operating system. Committed to open standards, Arista is a founding member of the 25/50GbE consortium. Arista Networks products are available worldwide directly and through partners.
Arista Networks is looking for world-class software engineers to join our Software Defined Networking (SDN) software development team. As a core member of the SDN software team, you will be part of a fast paced, high caliber team building the network management, orchestration, and controller software our customers use to manage individual or clusters of network devices. Your software will be a key component of Arista's Extensible Operating System (EOS), Arista's unique, Linux-based network operating system that runs on all of Arista's data center networking products.
The SDN team is responsible for all aspects of the development and delivery of our network management, orchestration, and controller software. You will work with your fellow engineers and members of the marketing team to gather functional and technical requirements for upcoming projects. You will write functional specifications, design specifications, test plans, and the code to bring all of these to life. You will also work with customers to triage and fix problems in their networks. Internally, you will develop automated tests for your software, monitor the execution of those tests, and triage and fix problems found by your tests. At Arista, you will own your projects from definition to deployment, and you will be responsible for the quality of everything you deliver.
This role demands a strong and broad software engineering background, and good understanding of networking, network management tools and systems, network orchestration systems and controllers, and the deployments in which they are used. Your role will not be limited to any single aspect of software defined networking, but will cover all aspects of designing and developing new network management, orchestration, and controller features, testing the software, and support our customers using the features you build.
- Write functional specifications and design specifications for small-sized network management, orchestration, and controller features
- Independently implement solutions to small-sized problems in our network management, orchestration, and controller software, using the C, C++, Python, Java or Kotlin programming languages
- Understand, utilize, test, and debug third party libraries and controllers used in your solutions
- Write test plan specifications for small-sized network management, orchestration, and controller features, and implement automated test programs to execute the cases described in the test plan
- Debug problems found by our automated test programs and fix the problems
- Work on a team implementing, testing, and debugging solutions to larger network management, orchestration, and controller software problems
- Work with Customer Support Engineers to analyze problems in customer networks and provide fixes for those problems when needed in the form of new software releases or software patches
- Work with the System Test Engineers to analyze problems found in their tests and provide fixes for those problems
- Mentor new and junior engineers to bring them up to speed in Arista's software development environment
- Review and contribute to the specifications and implementations written by other team members
- Helping to create a schedule for the implementation and debugging tasks, updating that schedule weekly, and reporting it to the project lead
- BSc, MS or Ph.D. in Computer Science/Electrical Engineering/Computer Engineering with 4-7 years of related work experience
- Knowledge of C, C++, Java, or Kotlin, Golang
- Knowledge of UNIX or Linux
- Understanding of IP networking and/or distributed systems
- Hands on experience in the design and development of ethernet bridging or routing related software or distributed systems software
- Hands on experience in the design and development of network management tools, network orchestration software, network controllers, external (off box) APIs, or internal (on box) APIs
- Hands on experience with enterprise-class network management or orchestration software
- Applied understanding of software engineering principles
- Strong problem solving and software troubleshooting skills
- Ability to design a solution to a small-sized problem, and implement that solution without outside help. Able to work on a small team solving a medium-sized problem with limited oversight.