Embedded Engineer
Similar jobs
Responsibilities:
- Design and implement embedded software applications for IoT devices using C programming language.
- Develop and maintain firmware for Raspberry Pi-based systems, ensuring optimal performance and compatibility with various IoT sensors and peripherals.
- Collaborate with hardware engineers to define and document system requirements and specifications.
- Conduct thorough testing and debugging of embedded software to identify and resolve any issues or bugs.
- Optimize code and improve system performance to enhance the overall user experience.
- Stay updated with the latest industry trends and technologies in embedded systems and IoT development.
- Work closely with the product management team to translate customer requirements into technical specifications.
- Provide technical support and guidance to the team during the development and deployment phases.
- Participate in code reviews and contribute to the continuous improvement of software development processes.
Qualifications:
- Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related field.
- Strong proficiency in C programming language with a solid understanding of embedded systems.
- Experience developing software for Raspberry Pi or similar single-board computers.
- Knowledge of IoT protocols and technologies such as MQTT, CoAP, TCP/IP, and wireless communication (Wi-Fi, Bluetooth, etc.).
- Familiarity with various sensors, actuators, and electronic components commonly used in IoT devices.
- Solid understanding of software development methodologies and version control systems (e.g., Git).
- Strong problem-solving skills and the ability to debug complex issues in embedded systems.
- Excellent communication and teamwork skills to collaborate effectively with cross-functional teams.
- Prior experience in developing IoT applications or working on IoT projects is a plus.
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/
FURIOUS FOX is looking for Embedded Developers with strong coding skills in C & C++ as well as experience with Embedded Linux.
Experience : (Minimum 7-10 yrs)
• Experienced in edge processing for connected building / industrial / consumer
appliances / automotive ECU
• Have a good understanding of IoT platforms and architecture
• Deep experience in operating systems eg: Linux, freeRTOS / kernel development/device drivers.
/ sensor drivers
• Have experience with various low-level communication protocols, memory devices, messaging
framework etc.
• Have a deep understanding of design principles, design patterns, container preparations
• Have developed hardware, OS abstraction layers, and sensor handlers services to manage various BSP, os standards
• Have experience with Python edge packages.
• Have a good understanding about IoT databases for edge computing
• Good understanding of connectivity application protocols and connectivity SDK for Wi-Fi and BT / BLE
• Experienced in arm architecture, peripheral devices and hardware board configurations
• Able to set up debuggers, configure build environments, and compilers and optimize code and performance.
Skills / Tools:
• Expert at object-oriented programming
• Modular programming
• C / C++ / JavaScript / Python
• Eclipse framework
• Target deployment techniques
• IoT framework
• Test framework
Highlights :
• Having AI / ML knowledge in applications
• Have worked on wireless protocols
• Ethernet / Wi-Fi / Bluetooth / BLE
• Highly exploratory attitude
• willing to venture in and learn new
technologies.
• Have done passionate projects based on self-interest.
-
Design and implement software of embedded devices and systems from requirements to production and commercial deployment.
-
Design, develop, code, test and debug system software Review code.
-
Support software QA and optimize I/O performance.
-
Interface with hardware design and development Assess third party and open source software.
-
hands-on development and troubleshooting on embedded targets Solid programming experience in C or C++.
-
Experience in programming Embedded C/C++ applications with strong background in C/C++ inheritance, templates and pointers.
-
Strong in OS concepts like efficient multi-threading and resource-sharing.
-
Experience in working with firmware, application and board support packages.
-
Expert knowledge on protocols like (RS485 SPI, I2C, ADCs, PWM, CAN).
-
Embedded development tools and methodologies. • Version Control Systems - Clear Case / RTC /GIT.
-
Strong development experience in embedded C and RTOS. • Should have detailed knowledge and experience on microcontrollers / microprocessors ( 16 bit/32-bit).
-
Experience in configuration management & defect tracking tools.
-
Strong debugging skills.
-
Must be a self-starter.
Embedded c
C
Iso26262
Primary Skill: System Software Development
Skill sets req:
- Linux porting/development; Linux kernel concepts
- Expertise in Linux BSP device driver development
- Customizing kernel + Porting + Developing Applications Linux Device Driver Development (Character devices) Good Concepts of Network Drivers File Systems Concepts
- Expertise in porting, network stack; optimization, network programming
- Bootloader/Uboot porting
- Camera driver development (Good to have)
Software Engineer(Layer 2/Layer 3)
Location : Gurgaon (WFH currently)
Experience/ Skills Required : 5 to 10 years
To be successful in this role you should be well versed with the concepts of networking and comfortable in C programming in a linux environment for embedded software. As we use Linux, experience with this operating system is a mandatory requirement, knowledge and experience on OpenWrt is a bonus. Working experience with router software development for layer 3 and layer 4 features.
Domain knowledge required: IPv4, TCP/UDP, IPv6, NAT, Firewall (iptables), DHCPv4, DHCPv6, IPv6 prefix delegation, Port forwarding, Source based routing, Policy based routing, L3 QoS, IGMP proxy, IPv6 MLD snooping, DNS, DNS proxy. Knowledge on VoIP is a bonus.
Management methods: TR069, SNMPv2, CLI.
Operating system: Linux, OpenWrt
Programming languages: C(must have), Python
Working for us means having a healthy interest in Software but most of all, you like to work in a team. You like to take initiative and have the “just do it” approach. Having the right mentality and attitude are more important for us than a degree. Dedication, investigation and responsibility are keywords for us. Preferred years of experience in industry/technology: 5-10 years.
Role:
As a Software Engineer you develop new software features and solutions for our fibre connectivity product portfolio. The position offers a wide range of possibilities to work with everything from low-level Linux drivers to high-level applications. You develop for various protocols and HW interfaces, often in complex network scenarios in combination with customer specific requirements. The team is responsible for all SW development for existing and new Home Gateways. This means development of Linux drivers, network functionality, remote Management (TR-069) and VoIP application (sipapp). The development is mainly done in C and in Linux environment, knowledge in Python is an add-on. Products and development are realized in Agile.