Write functional specifications and design specifications for small-sized packet forwarding engine features and system software to manage hardware components.
Independently implement solutions to small-sized problems in our packet forwarding engine software and system software using the C, C++, and python programming languages.
Understand, utilize, test, and debug packet forwarding engine and hardware components vendor-provided software libraries in your solutions.
Write test plan specifications for small-sized packet forwarding engine features and system software, 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 packet forwarding engine software problems and system software issues.
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 hardware team and hardware component vendors to bring up initial versions of new systems using packet forwarding engines and system software.
Work with the diagnostic software team to design and develop software for the validation of new packet forwarding engine ASICs and hardware components.
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.
Help to create a schedule for the implementation and debugging tasks, updating that schedule weekly, and reporting it to the project lead.
Qualifications
BS Computer Science/Electrical Engineering/Computer Engineering + 8 years experience, or MS Computer Science/Electrical Engineering/Computer Engineering + 6 years experience, or Ph.D. in Computer Science/Electrical Engineering/Computer Engineering + 3 years experience, or equivalent work experience
Experience or knowledge in the following:
C or C++
Knowledge of UNIX or Linux
Understanding of IP networking or distributed systems
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