
C++ Embedded Developer
at AI First, New-age Technology Company for the Digital


Location:Bangalore / Chennai
Type: Permanent
Company Type: AI / Digital Product Design Service based
Job Description
* Experience in C/C++ and have strong experience embedded application development and integration in Linux
* Good in creating unit tests, performing code reviews, optimizing performance and ensuring standards for maintainability
* Debugging, profiling, and performance optimization skills
* Have experience working in a fast paced Agile/Scrum environment
Similar jobs
Requirement analysis
· Acquisition support (Technical analysis)
· Automotive ECU software development
· Diagnostic (UDS) function development
· Software testing
· Technical collaboration with internal/external development parties
JD For Embedded C Engineer requirements :
Mandatory Skillsets are as below :
1. Embedded SW development background
2. Embedded C/C++/
3. Hands-on experience in RTOS Programming.
4. Working knowledge of SDLC and methodologies/tools for requirement management.
5. Experience working in an agile development environment.


About us:
Arista Networks was founded to pioneer and deliver software driven cloud networking solutions for large datacenter storage and computing environments. Arista's award-winning platforms, ranging in Ethernet speeds from 10 to 400 gigabits per second, redefine scalability, agility and resilience. Arista has shipped more than 20 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.
About the job
Arista Networks is looking for world-class software engineers to join our Extensible Operating System (EOS) software development team.As a core member of the EOS team, you will be part of a fast-paced,high caliber team-building features to run the world's largest data center networks.Your software will be a key component of Arista's EOS, Arista's unique, Linux-based network operating system that runs on all of Arista's data center networking products.
The EOS team is responsible for all aspects of the development and delivery of software meant to run on the 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.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.
This role demands strong and broad software engineering fundamentals, and a good understanding of networking including capabilities like L2, L3, and fundamentals of commercial switching HW.Your role will not be limited to a single aspect of EOS at Arista, but cover all aspects of EOS.
Responsibilities:
- Write functional specifications and design specifications for features related to forwarding traffic on the internet and cloud data centers.
- Independently implement solutions to small-sized problems in our EOS software, using the C, C++, and python programming languages.
- Write test plan specifications for small-sized features in EOS, 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.
- Work 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.
- 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.
Qualifications:
- BS Computer Science/Electrical Engineering/Computer Engineering 3-10 years experience, or MS Computer Science/Electrical Engineering/Computer Engineering + 5 years experience, Ph.D. in Computer Science/Electrical Engineering/Computer Engineering, or equivalent 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, signalling, 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.
- 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.
Resources:
- Arista's Approach to Software with Ken Duda (CTO): https://youtu.be/TU8yNh5JCyw
- Additional information and resources can be found at https://www.arista.com/en/

- Design and development of automotive feature/function software/
components (ACC, AEB, TSR, LKA etc.) for ADAS/AD systems - Coordination and regular interaction with different stakeholders and teams like testing, requirements, leads etc.
- Participate in SW requirement generation, SW architecture, detailed design etc



Skills You'll Need
- At least 3 years of C++ programming experience in a Linux environment.
- Strong understanding of computer systems e.g. operating systems, networks, performance optimization, etc
- Experience in Object-Oriented design and multi threaded programming
- Experience in creating/supporting cross-platform multi threaded applications
- Strong analytical and problem solving skills
- Ideally some experience in developing low latency systems
- Experience with trading or execution systems preferred
- Bachelor's degree in Computer Science or Computer Engineering or related field
- Reliable and predictable availability
Ideally in Mumbai Metro Area but open to anywhere for the right candidate.

- Works towards developing Stable & Efficient Firmwares for Embedded
- Responsible for developing Firmware which are Stable, Efficient and scalable.
- Responsible to create coherent and scalable architecture designs.
- Responsible for understanding and utilizing best BLE / IOT
- Responsible for understanding various RTOS design principles.
- Qualification: B.E. / B.Tech / M.C.A. in Computer Sciences.
- Must Proficient in Embedded C, C++, BLE, Zephyr RTOS, nRF.
- Ready to work from home.
- Should have above 4 years of experience.
Hands on experience in developing low level software for microcontroller based environments with ARM/Cortex processors or similar.
must do a Project:Linux Device Drivers
Experience in all aspects of designing and developing SW in C/C++ language for embedded platforms.
Advance level knowledge of modern microprocessor architecture – MMU, Caches, Exceptions, interrupts, instruction sets etc.
Experience in working with multiple common h/w interfaces like USB, Ethernet, PCIe, DDR controller, DMAC etc.
Device driver or stack development in at least one major Operating system for at least one complex interface.
Experience in SW protocol stacks like USB, TCP/IP, File system etc.
Experience in Board Bring up, Device drivers, Firmware, Boot Loaders, Tool chains & Build systems.
Understand project requirements, customer use cases & specifications for features and convert them to standout software. Initiate and drive Test strategies and Test plan design for software.
Key Skills
Linux Device Driver , DSP knowledge preferred
Required Experience and Qualifications
B.Tech/B.E
1. Good Knowledge in Hardware Development (Various Sensors, PCB Designing, Various Micro-controller boards)
2. Firmware designing (writing code on various micro-controller platforms using various hardware communication protocols (USART, SPI, I2C, CAN, etc). Great command in Embedded C Programming and Python.
3. Should have worked with various wired and wireless devices for communication ( Like GSM, GPS, GPRS, Wifi, BLE, Xbee, etc)
4. Should have practical experience in basic networking with devices.
5. Should have worked on various Hardware platforms like Arduino, Raspberry Pi, Web Frameworks, etc.
6. Should have worked with various methods of communicating sensors data on various clouds using API's using multiple protocols like HTTP, TCP-IP and MQTT, etc.
Experience Required : Minimum 4 Years
Expected Salary : 4 - 5.5 CTC

