Senior Embedded Software Engineer
Commensurate with experience and is a combination of salary and bonus potential.
The Senior Embedded Software Engineer is responsible for the design, documentation, development, and testing of software solutions for new and existing medical devices. The position is also responsible for analyzing product/system-level requirements and translating them into software specifications as well as the development and delivery of specific software features and functionality. This position works independently and within a cross functional team without continuous supervision. Our client is a growing company with household name recognition who's employees are proud to make the world a healthier and safer place with their automated equipment used in hospitals and the medical industry world-wide.
- Contributes to the design of the system architecture.
- Develops a software architecture based on the system architecture and product requirements.
- Designs, implements, and maintains efficient, reusable, and reliable software code according to corporate standards and procedures for new and sustaining engineering projects, maintaining code quality, organization, and automation.
- Ensures the best possible performance, quality, and robustness of software applications.
- Identifies bottlenecks and bugs, and devises solutions to these problems.
- Provides technical guidance to less experienced software engineers on high-level or complex issues.
- Reviews and approves plans and detailed designs.
- Develops time and effort estimates for assigned features and functions and makes delivery commitments.
- Works independently on routine activities, issues,plans and larger-scale designs.
- Adheres to corporate standards and department operating procedures.
- Creates software development process documentation, including requirements, design and interface specifications and verification documentation.
- Will participate in the creation of software validation plans.
- Performs unit, integration, and system testing and capacity / performance testing of applications as required.
- Work as a collaborative team member in engineering projects. Performs software leadership activities.
- Collaborates with cross functional team members for project planning, development and analysis of product requirements, and to outline proposed solutions.
- Participates in design reviews to identify issues and provides recommendations for enhancements.
- Leads software development projects/initiatives. Will act as a leader to junior engineers although not directly responsible for their management
- Reviews and resolves software change requests and defects
- Will manage the release of software for product.
- May serve as a contact point for outside vendors
- Bachelor’s Degree in Computer Engineering, Computer Science, Software Engineering, or Electrical Engineering required with 5 or more years of related engineering experience OR Master’s Degree in above noted field with 2 or more years of related engineering experience. (A degree in another Engineering discipline may be acceptable with proven software education and/or training and 7 or more years of demonstrated software experience).
- Strong written and verbal communication skills and strong problem-solving skills are required.
- Capable of solving engineering problems through accurate interpretation of requirements and test results.
- Exceptional team player with some leadership experience.
- Proven experience at software development analysis, task time and effort estimation, and execution to plan.
- Experience performing software requirement analysis and definition.
- Practical experience in C/C++, object-oriented analysis and programming, and multi-threaded/multi-tasking programming is required.
- Experience with one or more RTOS systems and the associated system services is required
- Experience with serial communication (UART, USART, SPI, I2C) is required.
- Experience developing or maintaining device driver software on an embedded system is required.
- Experience in User Interface (UI)/Human Machine Interface (HMI) development is required, which may include HMI touch screens or Graphical UIs. Understanding of usability / human factors is desired.
- Software quality assurance to include unit and integration test development and execution, and code inspection and reviews.
- Experience working in a regulated industry which requires formalized software development processes and software risk management is required. Medical device industry experience is desired.
- Experience working in a stage-gate development environment is required.
- Travel up to 10%.
- Advanced degree is desirable.
- Understanding of software cybersecurity threats in embedded systems and best practices to detect and repel attacks
- Experience working with stakeholders to refine product requirements to be realized in software is desired.
- Experience in the implementation of infrastructure and applications for Manufacturing, Installation, and Serviceability is desirable.
- Understanding of development for a resource-constrained target environment with specific performance requirements is desired.
- Experience with Ethernet and network protocols is desired.
- Experience with the Linux operating system and Linux externals is desired.
- Experience using software integrated development environments (IDEs) and tools to include configuration management (version control), defect management, continuous integration and code analysis tools is desired.
How to Express Interest - Click the Apply button and follow the online instructions.