Experience in Object-Oriented design and Multithreaded programming
Strong analytical and problem solving skills
Strong understanding of computer systems e.g. operating systems, networks, performance optimization, etc
Degree in Computer Science or Computer Engineering or related field
Independent team player with an eye for details and report on status and planning of own work.
Similar jobs
Technical Lead (Embedded Software - Linux)
Job Responsibilities:
Lead a team of software/Linux development engineers working on microcontroller firmware development, Linux platform drivers and IOT solutions. Should be able to guide team members, resolve technical roadblocks and deliver project commitments. Will be the go-to person and first-level escalation point for all technical issues faced by the team. Looking for someone with 6+ years in the embedded industry and a passion to build a core team in a growing company. Team size will vary from 6 to 12 people, mainly firmware and Linux engineers.
The selected candidate for this role will be reporting to the software director/manager in the organization.
- Work with firmware and application architects to create a project execution plan
- Review project proposals for execution scope & timelines
- Lead embedded software development activities by the team
- Work with QA teams to resolve bugs and ensure release readiness
- Work with h/w design and PM teams to ensure smooth execution and timely delivery of projects
The main responsibilities of this role are:
Technical:
- Strong programming skills (C, C++, assembly)
- Linux development experience (porting & platform drivers)
- Expert-level knowledge of embedded microcontroller & microprocessor-based systems
- Prior experience in delivering critical modules for microcontroller projects
- Good understanding of commonly used embedded communication protocols
- Good understanding of common embedded peripherals, interfaces & sensors
- Experience working on Real-Time systems (RTOS)
- Should be able to quickly learn new technologies and enable the team on the same
- Should be able to work with minimal technical guidance
Leadership:
- This role requires excellent communication skills
- Strong analytical & problem-solving skills
- Should be able to lead junior engineers by providing technical mentoring
- Owns task division, task allocation and tracking within the team
- Require multi-tasking and time management skills
- Prior experience working with overseas clients
- Periodically report progress to management
Other desirable skills:
Knowledge of Python
Experience: 6 to 10 years
C, C++ , Linux , Device Driver , Linux Internals ,
Processor knowledge like Arm , Intel , Protocol SPI , I2C . Networking experience,
L2 protocols knowledge, knowledge on Python/Perl ,
Broadcom DNX/XGS device experience is desirable,
Interested to learn New things,
C,C++, LINUX INTERNAL OR IPC, LINUX OS CONCEPTS, DEVICE DRIVERS,
PROCESSOR KNOWLEDGE
SCRIPTING KNOWLEDGE EIHER PYTHON OR PERL
What You'll Do
● Develop embedded system architecture that is efficient and scalable
● Develop multi-device system design, envision customer interaction, and corner cases to build issue-free design
● Develop firmware code for Interrupt driven system which interacts with Android and cloud
● Implement function safety, protection and security in the embedded system
● Implement predictive hardware failure features
Who You Are?
● Passionate individual who loves to work on embedded systems. a person who likes to drive things actively rather than waiting for tasks to get assigned.
● Strong programming capabilities
● Understanding of electronics and hardware
● Clear thought process, believe in simplifying rather than complicating
● Argue and fight over the opinions. Believe in delivering the best for the users
You Should Have
● 3+ year experience in embedded system design
● Mastery in C/C++ for embedded systems. Strong fundamentals of Microcontrollers and their common peripherals.
● Strong basics of C/C++, memory map, compiler functionality
● Done multiple projects during graduation/post-graduation. Participated and performed in tech competitions.
● Experience working with actuators like motors (DC/brushless), LED/LCD and HMI interfaces, speakers, sensors etc
● Experience working with motor control algorithms and PID controllers
- Proficiency with Linux OS and basic bash scripting
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/
Senior BLE Firmware Software Engineer
About Company
https://espressif.com/">Espressif Systems (688018) is a public multinational, fabless semiconductor company established in 2008, with headquarters in Shanghai and offices in Greater China, India and Europe. We have a passionate team of engineers and scientists from all over the world, focused on developing cutting-edge WiFi-and-Bluetooth, low-power IoT solutions. We have created the popular ESP8266 and ESP32 series of chips, modules and development boards. By leveraging wireless computing, we provide green, versatile and cost-effective chipsets. We have always been committed to offering IoT solutions that are secure, robust and power-efficient. By open-sourcing our technology, we aim to enable developers to use Espressif’s technology globally and build smart connected devices. In July 2019, Espressif made its Initial Public Offering on the Sci-Tech Innovation Board (STAR) of the Shanghai Stock Exchange (SSE).
Espressif has opened a Technology Center in Pune (Baner), India, which will focus on embedded software engineering and IoT solutions development for our growing customers.
About the Role
Espressif is looking for Embedded Software Engineers to join the software department located in India. You will work in a diverse team where your colleagues are from Czech, Russia, India, Australia and so forth. Here, you get a chance to be a member of the core team in Espressif and work with talented engineers from all over the world.
The BLE Firmware Development Team is now focused on the development of the Bluetooth 5.x standard and BLE Mesh standard.
BLE FW Team is looking for a self-starting, high-technical, energetic individual with keen attention to details. The Candidate will be actively involved in:
- Development of Bluetooth Low Energy (BLE) Firmware for Espressif Bluetooth chips.
- Development of new firmware for BLE latest specification (BLE 5.x, BLE Mesh, etc).
- Development of BLE chip validation and Bluetooth Qualification.
- Research of cutting-edge and challenging Bluetooth technologies (BLE Audio, BLE Direction Finding, Next-Generation BLE Chip, etc).
- Supporting the existing firmware through feature additions, enhancements and maintenance.
- Working with systems team and cross-functional teams to deliver quality software following well-established software development processes.
- Resolving issues as reported by internal test teams as well as customers.
Requirements
Required skills
- Bachlor's degree or above in Electronic Engineering, Communications Engineering, Automation or other related majors
- Familiarity with Bluetooth Low Energy (BLE) protocol or BLE Mesh protocol
- Proven experience in developing BLE stack / firmware (2+ years, both BLE host and controller) or BLE Mesh stack (2+ years)
- Experience with software engineering processes and the full software development lifecycle including requirements, design, implementation, testing, and documenting in Continuous Integration environment
- Strong experience and proficiency in C programming (3+ years) for embedded platforms required
- Excellent problem solving and debugging skills
Bonus point
- Experience in developing BLE profiles and BLE applications (e.g. HID, ANCS, Homekit, etc)
- Good understanding of other networking protocol stacks is highly desired (e.g. Zigbee, IEEE 802.11, UWB, Lora, NB-IoT, etc)
- Strong Real-time systems and software engineering skills required (e.g. FreeRTOS, etc)
- One or more scripting languages (e.g. Python, etc)
- Experience with variety of software productivity tools (e.g. Git, Jira, etc)
What to expect from our interview process
- The first step is to email your resume or apply to the relevant open position, along with a sample of something you have worked on such as a public GitHub repo or side project etc.
- Next, post shortlisting your profile recruiter will get in touch with you via a mechanism that works for you e.g. via email, phone. This will be a short chat to learn more about your background and interests, to share more about the job and Espressif, and to answer any initial questions you have.
- Successful candidates will then be invited for 2 to 3 rounds of technical interview as per previous round feedback.
- Finally, Successful candidates will have interview with HR.
What you offer us
- Ability to provide technical solutions, support that fosters collaboration and innovation.
- Ability to balance a variety of technical needs and priorities according to Espressif’s growing needs.
What we offer
- An open minded, collaboration culture of enthusiastic technologist.
- Competitive salary
- 100% company paid medical/dental/vision/life coverage
- Frequent trainings by experienced colleagues and chances to take international trips, attend exhibitions, technical meetups and seminars.
Software Developer (B.Tech, Linux+CPP+ROS)
Job Description:
- Design, implement and deliver custom solutions using the current robotics framework.
- Bug fixing and improving of current application framework.
- Design and implement tools to facilitate application development and testing.
- Work with team members in deployment and field testing.
Requirements:
- Bachelor Degree / Masters in Engineering (ECE and CSE preferred)
- Work experience of 3 to 10 years in software programming.
- Full understanding of software engineering.
- Proficiency in C/C++ and Python programming for Linux based systems.
- Basic Knowledge of Robot Operating System(ROS) is mandatory.
- Good understanding of the algorithms and control loops.
- Able to use tools to manage source code, preferably Git / GitHub.
- Knowledge of video streaming from edge devices is a plus.
Perks and Benefits for the employees
- Paid Leaves (12CL+12SL+12 public holidays )
- career development
- Health insurance
- Work life balance
- Employee recognition and reward programs
- Flexible work hours
- Five working days.
- Remote job for now
Build new features, enhance existing functionality and fix issues in the Windows Desktop application.
Help develop and maintain UI component library (Windows, dialogs , complex widgets)
Advise and assist the other developers in the Desktop.
Skills required
- Very strong programming skills in UI development using Qt/C++
- A strong ability to think about components and modules as they relate to other components as part of a larger system.
- QML knowledge is a plus
- Cross platform application development knowledge is a plus, not mandatory
- A very strong attention to detail and the willingness to deliver pixel perfect UI according to the designs.
- Must have: Very strong in ModelView architecture
- Must have : In-depth C++, STL, and data structures knowledge
Desirable : Familiar with unit test frameworks like QtTest or Gtest
Desirable : Experienced with Agile methodology
Desirable : Knowledge in GIT or any other config management tool
Good understanding of object oriented techniques methodologies.
Good hands-on experience of C++ system programming and design.
Key Skills
C/C++, Qt, STL, Design, QML
Experience In product development is good to have