高级C++工程师 - SONiC
Senior C++ Engineer - SONiC
#### 公司简介
Arista Networks 是大型数据中心、校园和路由环境中的数据驱动型客户到云网络领域的行业领导者。我们与众不同之处在于对创新的不懈追求。我们利用云计算、人工智能和软件定义网络的最新进展,为客户提供在日益互联的世界中保持竞争优势的能力。我们的解决方案不仅满足当前数字环境的需求,还能预见并适应未来的挑战。
在 Arista,我们重视每位员工带来的多样化的思想和视角。我们认为,营造一个包容的环境,让来自不同背景和经验的个体感到受欢迎,是推动创造力和创新的关键。
我们对卓越的承诺使我们获得了多项备受推崇的奖项,如最佳工程团队、最佳多元化、薪酬和工作与生活平衡公司。在 Arista,我们以取得的成功记录为荣,并努力在我们所做的每一件事中保持最高质量与性能标准。
#### 职位描述
**你将与谁合作**
Arista Networks 正在寻找世界级的软件工程师加入我们的 **面向云的开放网络软件(SONiC)** 软件开发团队。作为 SONiC 团队的核心成员,你将加入一个快节奏、高水准的团队,负责构建和验证运行全球最大数据中心网络的功能。
SONiC 团队负责所有与 SONiC 软件开发和交付相关的方面,该软件将在各种 Arista 交换机上运行。你将与你的工程师同事以及市场团队成员合作,收集并理解新项目的功能和技术需求。你将协助编写功能规格、设计规格、测试计划和代码,将这些内容付诸实现,并与 SONiC 社区合作将代码/测试更改提交到上游。你还将与客户合作,排查并修复他们网络中的问题。在内部,你将为你的软件开发自动化测试,监控测试执行情况,并排查和修复由你的测试发现的问题。在 Arista,你将从项目定义到部署全程负责,并对所交付的一切的质量负责。
**你将负责**
此职位需要扎实广泛的软件工程基础,以及
查看英文原文
#### Company Description
Arista Networks is an industry leader in data-driven, client-to-cloud networking for large data center, campus and routing environments. What sets us apart is our relentless pursuit of innovation. We leverage the latest advancements in cloud computing, artificial intelligence, and software-defined networking to provide our clients with a competitive edge in an increasingly interconnected world. Our solutions are designed to not only meet the current demands of the digital landscape but to also anticipate and adapt to future challenges.
At Arista we value the diversity of thought and perspectives that each employee brings to the table. We believe that fostering an inclusive environment, where individuals from various backgrounds and experiences feel welcome, is essential for driving creativity and innovation.
Our commitment to excellence has earned us several prestigious awards, such as Best Engineering Team, Best Company for Diversity, Compensation, and Work-Life Balance. At Arista, we take pride in our track record of success and strive to maintain the highest standards of quality and performance in everything we do.
#### Job Description
**Who You’ll Work With**
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.
**What You’ll Do**
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.
**Responsibilities:**
- 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.
#LI-EO1
REF3234E
#### Qualifications
- BSc, MS or Ph.D. in Computer Science/Electrical Engineering/Computer Engineering with 2+ 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.
#C #C++ #python #UNIX #Linux #L2/L3 networking #IP routing protocols#OSPF #BGP #S-IS #Linux kernel #networking protocols #SAI (Switch Abstraction Interface#Containerization #Docker#Redis