Logo of Huzzle

Graduate/Intern Software Engineer

  • Internship
    Full-time
    Summer Internship
  • Software Engineering
    Engineering
  • Dublin
  • Quick Apply

AI generated summary

  • You should be proficient in C, C++, Java, Python, Go, React.js, Redux.js, Node.js, and have a background in networking, Linux Embedded Systems, algorithms, programming, and software development.
  • You will develop Linux drivers, implement protocols, configure ASICs, manage routing data, and create fault-tolerant agents while using Python, Go, and C/C++ in a high-performance environment.

Requirements

  • Any of the following:
  • C
  • C++
  • Java
  • Python
  • Go
  • react.js
  • redux.js
  • node.js
  • Networking
  • Linux Embedded Systems
  • Algorithms
  • Programming
  • Software Development

Responsibilities

  • Writing Linux user space and kernel code to allow 32-bit drivers to DMA 64-bit virtual memory spaces using both Intel and AMD IOMMU controller.
  • Working on the hardware/software boundary for chips and the kernel. Where an x86 chip might have tens of registers, you will routinely work on ASICs with thousands of registers, tables, and special TCAM memories. You will program networking chips to provide latency analysis and keep accurate counts of events happening billions of times per second. You will write Python to bootstrap new hardware. You will build software agents that mediate and translate between the requirements of switching ASICs, high capacity custom FPGAs, media adapters, and PCIe bridges. You might tune lasers and measure and correct error rates measured in parts per billion.
  • Implementing communications protocols between routers and switches at layer 2 (such as LLDP, 802.1x, BFD, etc), and layer 3 (such as BGP, OSPF, ISIS).
  • Updating the forwarding state of the hardware, using platform-independent abstractions.
  • Reconciling the linux kernel routing model with the switch's forwarding state.
  • Implementing a policy language used for filtering and manipulating routing data received and advertised to peers.
  • Accessing ASIC registers over SPI bus, SMbus, PCIe and I2C, to implement high resolution timers (sub-100ns accuracy) and read ASIC hardware specifications to gather near-real-time information on large numbers of packet flows and to generate network congestion statistics.
  • Developing configuration management services using Go and Python to support YANG, OpenConfig, NETCONF and RESTCONF over gRPC, ssh and ssl for standardised switch configuration, combined with tools such as git, gerrit, Jenkins, Slack and Trello.
  • Developing routing protocol agents (for BGP, OSPF, ISIS) in C/C++ within a Fedora Linux embedded environment. Coding of fault-tolerant, concurrent agents capable of handling the demands of future data centres where high performance and high availability are basic requirements. Fully automated, developer owned, Python based, continuous test harness with 100s of devices under test at any one moment.

FAQs

What is the primary focus of the Graduate/Intern Software Engineer position at Arista Networks?

The primary focus is on product development in C/C++, Go, Java, and other languages, working with the Routing team on the core logic of the network.

What types of programming languages should candidates be familiar with for this role?

Candidates should be familiar with C, C++, Java, Python, Go, as well as technologies like React.js, Redux.js, and Node.js.

What are some of the key responsibilities of this role?

Key responsibilities include writing Linux user space and kernel code, implementing communication protocols, developing configuration management services, and working with ASIC hardware.

Is prior experience in networking necessary for this position?

While prior networking experience is not explicitly required, familiarity with networking concepts and protocols would be beneficial.

What development tools or technologies will I be using in this internship?

You will use tools like Git, Gerrit, Jenkins, Slack, and Trello, along with developing services that support YANG, OpenConfig, NETCONF, and RESTCONF.

What type of environment will I be working in?

You will be working within a Fedora Linux embedded environment focusing on high-performance, high-availability requirements for future data centers.

How does Arista Networks support diversity and inclusion in the workplace?

Arista values the diversity of thought and perspectives, fostering an inclusive environment to drive creativity and innovation.

Will there be opportunities for learning and growth during the internship?

Yes, there will be opportunities to learn from leading experts in product development and to gain hands-on experience with software-defined networking technologies.

What kind of projects will I be involved with during this internship?

You will be involved in projects that include programming networking chips, developing routing protocol agents, and working on hardware/software boundary issues.

How does Arista Networks ensure confidentiality regarding applicant information?

All applicant information is kept confidential according to EEO guidelines.

Data-Driven Networking

Technology
Industry
1001-5000
Employees
2004
Founded Year

Mission & Purpose

Arista Networks is an industry leader in data-driven, client to cloud networking for large data center, campus and routing environments. Arista’s award-winning platforms deliver availability, agility, automation, analytics and security through an advanced network operating stack.