Senior Software Engineer
We are looking for a self-motivated Senior Software Engineer to join the Research and Development team responsible for significant contributions to Software project initiatives associated with product development and improvements. This person is expected to be responsible for well-designed and well-tested code, with the ability to apply creative solutions to problems, and thrive in a multidiscipline team environment.
- Designs, develops, tests and documents embedded system software for new and existing Insulet products.
- Ensures that their design is in compliance with Company policies, and that software activities are appropriate for the design and maintenance of medical products.
- Writes and maintains design documentation and testing requirements.
- Works with Quality, Regulatory, Marketing and Manufacturing to ensure that designs meet technical, regulatory and manufacturing requirements.
- Works closely with other software, software QA, and hardware engineers to integrate, debug, and test systems.
- Participate in product design reviews.
- Perform other duties as required
Education and Experience:
- Bachelor's degree in software engineering and 7+ years of relevant work experience or combination of Master's degree in in appropriate field of study and 5+ years of relevant work experience.
- Able to serve as a Technical Lead contributing to and directing the efforts of development teams, including internal and external team members.
- Strong programming skills in C and/or C++ is required.
- Hands-on experience with Embedded Systems is required.
- Experience on processors like ARM, TI and MSP (or similar Embedded Systems/Microcontrollers) is required.
Preferred Skills and Competencies:
- Demonstrated working knowledge of software design.
- Experience developing software for embedded microcontrollers.
- Knowledge of I2C, SPI, Flash, EEPROM and/or USB preferred.
- Familiarity with communication systems and/or wireless protocols will be a plus.
- Medical device experience is preferred.
- Able to work independently with minimum supervision.
- Able to be responsible for designing, implementing, and maintaining a section of a design.
- Detail oriented, with effective verbal and written communication skills.
- Able to communicate with candor and trust at multiple levels of the organization.
- Demonstrated abilities to leverage creativity in order to overcome obstacles and work with a sense of urgency.
- Strong software engineering development skills.
- Knowledge of OS concepts like dead locks, threading, mutual exclusion, interrupt services is expected.
- Good understanding of RTOS and real time systems is a plus.
- In-depth Object oriented programming is useful.
- Familiar with reading electrical schematics is a plus.
- Able to organize and judge multiple priorities.
- Agile or other software development life cycle concepts is a plus.
- Knowledge of Wireless protocols like Bluetooth Low Energy (BLE) is a plus.
- General office environment, may sit for long periods of time.