Insulet is looking for a self-motivated Senior Software Automation Engineer, to be a part of the software team to assist with product development and product modifications for the Research and Development group. This position will be primarily responsible for building the software test automation framework. This position will also be developing automated tests, in conjunction with the software development efforts. This position will also be involved in designing, developing, testing and documenting embedded system software for new and existing Insulet products.
* Build test automation frameworks and methodologies that will define the testing process used as part of the agile software development process.
* Develop and execute automation test suite for embedded software.
* Write and maintain documents to support the automation effort.
* Design, develop, test and document 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.
* Work closely with the software test team for identifying issues and resolving them.
* Collaborate with cross-functional teams such as QA, Systems and IT.
* Participate in product design reviews.
* Self-motivated, requiring minimal supervision.
* Perform other duties as required.
Education and Experience
* BS in Software Engineering, Computer Science or similar field
* Minimum of 5 years of relevant work experience.
* Experience developing software for embedded microcontrollers.
* Experience building automation framework, testing embedded software and corresponding Tool suites.
* Knowledge of I2C, SPI, Flash, EEPROM and/or USB preferred.
* Familiarity with communication systems and/or wireless protocols like Bluetooth Low Energy (BLE) will be a plus.
* Medical device experience preferred.
Preferred Skills and Competencies:
* Strong programming skills in C and/or C++ is an absolute requirement.
* Strong knowledge developing automated test scripts in Python.
* Experience with Python packages (such as pywinauto, pyvisa, pefile, pyserial, pyaml) to leverage existing open-source solutions that speed up automation delivery cycle.
* Knowledge of embedded software testing (black-box and white-box)
* Hands-on experience with Embedded Systems is required.
* Experience on processors like ARM, TI and MSP (or similar Embedded Systems/Microcontrollers) is required.
* Good understanding of RTOS and real time systems is a plus.
* Knowledge of OS concepts like dead locks, threading, mutual exclusion, interrupt services is expected.
* In-depth Object oriented programming is useful.
* Strong troubleshooting skills.
* Proficiency with source control, continuous integration and testing methods (i.e. svn)
* Familiarity with Continuous Build Systems, (i.e. Bamboo, Jenkins).
* Effective verbal and written communication skills.
* Able to communicate at multiple levels of an organization.
* Familiarity with reading electrical schematics is a plus.
* Able to organize and judge multiple priorities.
* Agile software development experience is a plus.