Software Developer/ Engineer/ Architect

Modeling Language Compiler 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

Arista leverages modeling languages to describe complex network and device state. Restartable microservices operate on the state transitions to control the behavior of the network device, for everything from switching on the front panel LEDs to programming routes into the ASIC.  The microservices are completely unaware of each other and operate purely by reading and writing model state into NetDB.  You will have the opportunity to work on the compiler to add various language features and enhancements to improve the development processes of hundreds of EOS developers that rely on the modeling language to develop their microservices and business logic.

You will get to work on problems like:

  • How do I integrate Arista’s EOS models with other modeling languages like YANG?
  • Can I run a static type analyzer to identify types that contribute to memory bloat or types that are no longer in use?
  • What is an effective model versioning approach that provides sufficient safety checks without being too restrictive?
  • What web code exploration tools or editor plugins would make EOS developers’ life easier?
  • What patterns should we recommend to EOS developers for handling common use cases, and what new patterns do we need to incorporate into our tools?

Responsibilities

  • Modeling and meta languages that describe complex network state
  • Developing Meta language compilers to generate object state serialization and deserialization for micro-services that operate on REST principles
  • Writing software that is fast and memory efficient and can work effectively on low-end and high-end internet scale devices
  • 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

Experience with compilers, parsers, and modeling languages such as YANG

Expert knowledge of C or C++ and Python

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