We are looking for bright, talented Embedded software engineer who enjoy the challenges associated with solving the most complex problems by utilizing the most sophisticated technologies and strong people skills.
- Ability to take lead and work in a trustworthy working environment.
- Partner with the required teams and get seamless outputs.
- Should be curious to learn more and collaborate whenever needed.
- Ability to independently manage projects and report/present efforts to clients.
- Strong communication skills.
- Meeting with clients and the software design team to determine software specifications.
- Design and implement firmware modules using C, C++, object-oriented modeling, and standard design patterns and techniques.
- Develop prototypes to prove out key design concepts and quantify technical constraints.
- Analyze and root cause customer reported issues.
- Work with Applications Engineering to troubleshoot customer field issues, triage defects, and perform preventative maintenance to reduce the ongoing impact of defects for existing products.
- Define test cases and write test automation which effectively validates module designs.
- Implementing the embedded system and interpreting error reports.
- Fixing bugs and optimizing the system and maintaining the software program.
- Support SW developers during all phases of SW development cycle including project setup, project execution, go-to-market.
- Ensure release branch is balanced on daily basis for each device and if needed, revert code immediately to unblock the release timely.
- Serve as critical member in productive deployment of new features and fixes as the function ensures that these changes get deployed to the field as per release deployment cycle.
- Documenting software application values.
- Assess and implement new tools that are vital to improve the software release engineering process.
- Degree in computer science, electrical engineering, or another relevant technical discipline.
- Strong software triage and debugging skills in an embedded environment.
- C/C++ programming experience with an emphasis on embedded systems.
- Software development experience in C++ and Python or TypeScript required.
- Understanding of real time schedulers, multi-threaded programming concurrency, spinlocks, semaphores and inter-process communications in a Linux OS environment.
- Working experience with source control tools such as Git and Yocto build system is strongly recommended.
- Knowledge and experience of modern OS coding techniques, IP protocols, and hardware interfaces.
- Experience with agile methodologies is valuable.