Job Summary
Responsible for independently designing, developing, and implementing embedded software components for medical device systems. This role takes ownership of defined technical deliverables, applies growing expertise in real-time operating systems and embedded architectures, and partners with verification and validation teams to ensure the quality and reliability of software products.
Key Responsibilities
- Design, develop, and implement embedded software for our products and systems.
- Collaborate with cross-functional teams to define, design, and implement new software features.
- Debug and resolve software defects and issues.
- Conduct performance analysis and optimization of the embedded systems.
- Review code and design and provide constructive feedback to team members.
- Lead and mentor junior engineers to promote knowledge growth and ensure project deliverables. Interface among multiple departments and teams including Quality and Service etc.
- Identify and recommend opportunities for efficiency improvements in department processes.
- Conduct static analysis, code coverage analysis, and other verification techniques to ensure high-quality software.
- Responsible for communicating business related issues or opportunities to next management level.
Education and Experience requirements
- Bachelor's degree in computer engineering/science or other relevant technical experience is required.
- 3 years of experience in embedded and system-level software development
- Working experience in C/C++ is required
- Proficiency in Python or other scripting languages
- Extensive knowledge of real-time operating systems and microcontrollers.
- Experience in Yocto Linux is preferred.
- Experience with software development tools, such as IDEs, debuggers, and version control systems
Roles and Competencies requirements
- Strong understanding of embedded systems, software architectures, and design principles.
- Strong hands-on experience in embedded design development in C/C++ programming language.
- Strong hands-on experience in Linux user-space and kernel-space development.
- Hands on experience with communication protocols - CAN, I2C, SPI, UART.
- Skilled in code debugging, troubleshooting, and analysis of complex embedded software systems
- Familiarity with software configuration management tools, defect tracking tools, and peer review techniques.
- Experience with oscilloscopes, analyzers and electronics is preferred.
- Knowledge of defect management tools such as JIRA or Bugzilla is required.
- Prior work in a regulated environment like the medical device industry is preferred.
- Familiarity with Agile methodology is preferred.
- Has good verbal and written communication skills.