Software Engineer - SONiC
SmartRecruiters, Inc.
Requirements
- BSc, MS or Ph.D. in Computer Science/Electrical Engineering/Computer Engineering with 3+ years of related post graduate work experience
- Knowledge of C, C++, and/or python
- Knowledge of UNIX or Linux
- Understanding of L2/L3 networking including at least one of the following areas is desirable:
- IP routing protocols, such as RIP, OSPF, BGP, IS-IS, or PIM
- Layer 2 features such as 802.1d bridging, the 802.1d Spanning Tree Protocol, the 802.1ax Link Aggregation Control Protocol, the 802.1AB Link Layer Discovery Protocol, or RFC 1812 IP routing
- Ability to utilize, test, and debug packet forwarding engine and a hardware component’s vendor provided software libraries in your solutions
- Infrastructure functions related to distributed systems such as messaging, signaling, databases, and command line interface techniques
- Hands‑on experience in the design and development of ethernet bridging or routing related software or distributed systems software is desirable
- Hands‑on experience with enterprise or service provider class Ethernet switch/router system software development, or significant PhD level research in the area of network routing and packet forwarding is desirable
- 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
What the job involves
- Arista Networks is looking for world‑class software engineers to join our Software for Open Networking in the Cloud (SONiC) software development team
- As a core member of the SONiC team, you will be part of a fast‑paced, high caliber team building and qualifying features to run the world’s largest data center networks
- The SONiC team is responsible for all aspects of the development and delivery of SONiC software meant to run on various Arista switches
- You will work with your fellow engineers and members of the marketing team to gather and understand the functional and technical requirements for upcoming projects
- You will help write functional specifications, design specifications, test plans, and the code to bring all of these to life and work with the SONiC community to upstream the code/test changes
- 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 strong and broad software engineering fundamentals, and ideally a good understanding of networking including capabilities like L2, L3, and fundamentals of commercial switching HW
- Write functional specifications and design specifications for system software to manage hardware components
- Independently implement solutions to small‑sized problems in the system software using the C, C++, and python programming languages
- Write test plan specifications for small‑sized 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 routing protocol problems
- Worth 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 as well as broader SONiC development
- Review and contribute to the specifications and implementations written by other team members and the SONiC community
- Help to create a schedule for the implementation and debugging tasks, update that schedule weekly, and report it to the project lead
Reference: WJ-4483_1315632