Data-Driven Networking
Principal Software Engineer
Location
Canada
Posted
70 days ago
Salary
$140K - $210K / year
Seniority
Lead
Job Description
Principal Software Engineer
Arista Networks
• Write functional specifications and design specifications for drivers and API to manage hardware devices in linux and implement. • Independently implement solutions to small-sized problems in our EOS and related software, using the C, C++, and python programming languages. • Write test plan specifications 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 for networking infrastructure include AI networking. • Worth with Customer Support Engineers to analyze problems in customer installations 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. • Review and contribute to the specifications and implementations written by other team members. • Help to create a schedule for the implementation and debugging tasks, update that schedule weekly, and report it to the project lead.
Job Requirements
- BS Computer Science/Electrical Engineering/Computer Engineering + 12 years experience, or MS Computer Science/Electrical Engineering/Computer Engineering + 10 years experience, or Ph.D. in Computer Science/Electrical Engineering/Computer Engineering + 7 years experience or equivalent work experience
- Knowledge of C, C++, and python.
- Hands-on experience working with open source software.
- Experience writing Linux drivers and APIs for managing hardware or other software resources.
- Experience programming ASICs and other custom hardware.
- Ability to utilize, test, and debug open source software libraries and other software used in your development activities.
- Infrastructure functions related to distributed systems such as messaging, signalling, databases, and command line interface techniques.
- 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.
Benefits
- medical
- dental
- vision
- wellbeing
- income protection
- Group Retirement Savings Plan
Related Guides
Related Job Pages
More Full-stack Engineer Jobs
Senior Software Engineer, Delphi
BCC SoftwareBCC Software is the leading postal and presort software solutions provider with in-depth data marketing services.
• Design, develop, test, and maintain software solutions in an Agile SCRUM environment. • Participate in all aspects of the software development lifecycle, including: Estimating and sizing user stories, Writing, reviewing, and testing code, Creating and executing unit tests, Documenting development work, Collaborating with team members on assigned Sprint activities, Meeting individual and team commitments, Delivering consistent results on project goals. • Collaborate with Product Owners to review requirements, define acceptance criteria, and assist with sizing/planning user stories, epics, and projects. • Act as a key contributor within the team while supporting cross-team projects across the broader Engineering organization. • Take ownership of technical problems and ensure solutions are effectively implemented.
Software Engineer
SpaceBound, Parent Company of SpaceBound SolutionsSpaceBound Solutions' Managed IT services allow you to outsource all of your IT Services and Solutions needs.
• Conceptualize, design, build and support software systems with: Web applications, including RESTful APIs or SOAP services. • Batch applications, including file processing • Relational data models • Performance and security considerations • Production problem solving • Support software development life cycle by: Leading the solution design for projects • Reviewing projects and initial for effort, impact, and complexity • Peer code review • Unit testing of features and functionality • Learn new technologies and approaches: Participate in proving out new technologies • Learning new approaches, technologies, paradigms • Translate proof of concept into production ready applications
• Leads the technical requirements definition during discovery meetings with the client team • Oversee and provide technical guidance to a team of developers, reviewing and writing code • Manages technical risk related to complexity, data integration, scalability, and performance. • Provides guidance and oversight to development teams to ensure that the development process, policies and standards are being followed • Research and qualify software solutions to be implemented on a project and provide software recommendations and estimates that meet project budgetary and functional requirements • Prototypes solutions when necessary to validate that an approach will meet the customer's business requirements • Defines the implementation and technical approach for customizations, interfaces, system architecture, data flow and data architecture/data model. • Collaborate with client and internal offshore teams to support overall delivery. Plan development sprints with the PM and participate in scrum calls. • Communicates and enforces coding standards, performs code reviews, and has a very good understanding of scrum principles • Contribute to Ziffity podcasts as a technical subject matter expert
• Responsible for implementing efficient code and designing solutions to enhance overall systems infrastructure • Assist development lead and product owners with task planning, estimation, scheduling, and staffing • Refine product technical requirements • Collaborate with other team members to produce team deliverables and meet deadlines • Mentor junior members of the team • Lead team meetings around design, best practices and technology • Perform peer code reviews for other team members • Remain current on new technologies and available vendor packages, including evaluating and making recommendations as necessary • Improve operations by conducting systems analysis and recommending changes in policies and procedures • Lead the design of software applications and deployment pipelines within the team




