General

EOS Core Library Developer

Company Description

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 10M to 400G bits per second, redefine scalability, agility and resilience. Arista has shipped more than 10 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.

At the core of Arista's platform is the Extensible Operating System (EOS™), a ground-breaking network operating system with single-image consistency across hardware platforms, and modern core architecture enabling in-service upgrades and application extensibility.

 

Job Description

The model language compiler targets the APIs of the EOS Core libraries.  These libraries provide custom data structures that allow internet scale operations, event loop management, memory management with auditing, and core functionality for model state synchronization.  As an EOS Core developer, you get to answer questions about CPU and memory tradeoffs, distributed system design, and critically how to improve the effectiveness of EOS application developers.  As the size of the internet grows, the core libraries require constant overhaul to deal with ever growing scale.  Additionally, you will need to consider what auditing tools need to be added to track where memory and CPU cycles are going to catch any regressions early.

You will get to work on problems like:

  • What custom memory allocation should I use inside a shared memory block?
  • What is the effective compact binary representation of state updates between separate machines?
  • How do I take EOS internal model state and integrate it with YANG models via gNMI transport?
  • What improvements and trade-offs can be made to increase the end-to-end throughput in a publish-subscribe system?
  • How do I code this so it efficiently scales from small access points to switches with hundreds of physical interfaces?

Responsibilities:

  • Writing software that is fast and memory efficient and can work effectively on low-end and high-end internet scale devices
  • Working on the core EOS infrastructure that deals with microservice management and provides common functionality like event loop management, memory audits
  • Using hardcore algorithms, data structures, OS and system design principles to extend and optimize every component for performance and scale
  • Keeping up to date with latest C++ and gcc/clang developments
  • Designing and building creative ways to programmatically test it all
  • Continuously striving to improve the code
  • Learning how things really work, just for fun or out of curiosity
  • Working with other like-minded engineers that share the same passion.

Qualifications

  • BS Computer Science/Electrical Engineering/Computer Engineering + 5 years experience, or MS Computer Science/Electrical Engineering/Computer Engineering + 3 years experience, or Ph.D. in Computer Science/Electrical Engineering/Computer Engineering
  • Expert knowledge of C or C++ and Python.
  • Hands-on experience working on Linux Kernel software is a plus.
  • Understanding of distributed systems is a plus.
  • Applied understanding of software engineering principles.
  • Strong problem solving and software troubleshooting skills.
  • Ability to design a solution and implement features independently.
  • Ability to work in small teams.