We are currently hiring an Embedded Linux Software Engineer to develop embedded software for new products and maintain existing product lines through improvement updates. Preference is someone experienced working with open source tools as well as traditional embedded software technologies used in a regulated environment for medical devices.
- Development of C/C++/C++ v11 embedded software applications for both new and existing medical devices
- Adapt and extend existing embedded Linux applications to add new features to current products, analyze the existing architecture and if applicable, adjust and extend it to allow reuse across additional future products.
- Assist in planning, estimating, and scheduling software development efforts
- Review, and guide technical work and issue resolution providing multiple options and ensuring that all work meets requirements and specifications in compliance with the quality system and best practices
- Assure appropriate documentation for assigned project
- Understands and follows requirements of SOPs.
- Contribute to corrective action development and alternatives.
- Conduct design testing.
- Operate with a significant amount of latitude and freedom. Within these minimal constraints, may lead medium to large projects; plans and authorizes tests and approves test evaluations; directs and approves documentation and related drawings; designs components, parts or systems of significant difficulty; oversees/approves troubleshooting resolutions.
- Plans and conducts work requiring judgment in the independent evaluation, selection and the substantial adaption of standard engineering techniques, procedures and requirements. Plans and coordinates detailed phases of engineering actions for part of a project
- Independently plans, schedules, conducts or coordinates detailed phases of the assigned project.
- Continuously reviews project team progress and evaluates results accordingly.
- Works under only general supervision, with direction given only in terms of broadly stated objectives and desired outcomes.
- Minimum Bachelor’s degree in engineering or similar. Software or Electrical Engineering preferred
- 2-7 years of experience
- 2+ years of Embedded Linux experience (Buildroot or similar)
- Experience writing C and C++ applications running on Linux, RTOS, bare metal, uCOS, or similar
- Experience working with UI frameworks such as Qt, Altia or similar
- Able to write clean, safe, readable code
- Work under only general supervision from the Engineering Manager, with direction given only in terms of broadly stated objectives and desired outcomes
- Ability to clearly convey ideas and concepts verbally and in writing
- Experience in multiple areas of an embedded device (UI, communications, databases, drivers, OS) through all stages of the development process, including for example, requirements, architecture design, coding, test, documentation, and safety analysis highly preferred
- Experience developing and debugging complex software systems highly preferred
- Experience planning, scheduling, and conducting multiple phases of a software project highly preferred
- Experience working in an Agile development environment using tools such as Git, Jira, TFS, etc.
- Experience in python and bash scripting and creating automated test frameworks preferred
- Experience coaching and mentoring others in technical matters and related project initiatives preferred
- Strong influencing skills and ability to convey clear supporting evidence for proposals
- Ability and willingness to lead and create changes in policy, procedure, technology, and culture
Embedded Software Engineer