Software Engineer II
When you're part of the team at Thermo Fisher Scientific, you'll do important work, like helping customers in finding cures for cancer, protecting the environment or making sure our food is safe. Your work will have real-world impact, and you'll be supported in achieving your career goals.
SUMMARY:This position will support the design, development and maintenance of software for new products developed in an R&D environment. Must be familiar with development of embedded Linux software for analytical instrumentation and participate in the design, implementation, and testing of complex software that provides user interface, instrument control, and data collection and analysis. Tasks include performing basic feasibility studies, concept designs, and system designs typically encountered in an idea-to-product development cycle. Must be a creative thinker with hands on experience with electronics and instrument system integration.
Job Duties and Responsibilities:
- Support all phases of software development including design, implementation, testing, integration, and maintenance of software for an embedded Linux target (applications, drivers, TI framework)
- Work with new product development teams including electrical, software, and systems engineers, chemists, and project leaders to help define software requirements
- Interact with Linux kernel, TI framework, and integrate new device drivers
- Help document projects, protocols, architecture, and technical specifications
- Participate in the development of procedures for calibration and tuning of various control elements in the instrument, including mathematical and statistical modeling.
- Integrate algorithms & mathematical functions for identification and quantification of data collected by instruments
- Develop data structures, user interfaces and simulation tools as required.
- Adhere to company code style, revision control, configuration management, and documentation standards.
- Contribute to the content of user's guides and manuals.
- Ability to write effective and reusable code according to best practices
Other Job Requirements:
- Must have strong written and verbal communications skills
- High level of self-discipline, drive, and creativity.
- Experience writing test plans, test scenarios, performing regression testing using automated and manual test processes for embedded software products.
- Ability to work in a cross-functional, global environment and integrate global standards and regulations into design.
- Experience using Linux serial communication drivers such as Serial (RS232/RS485), I2C and SPI, and USB.
- Experience with Ethernet communications protocols such as TCP/IP and Modbus to communicate between PC's/mobile devices and embedded systems.
- Familiarity with a source control system such as SVN or GitHub and a bug tracking database such as Bitbucket or Jira, and peer review.
- Knowledge of WIFI an asset
- Other duties may be assigned as necessary
- Willingness and ability to travel domestically and internationally up to 10% of the time.
- 1-5 years' experience of embedded Linux programming systems and ARM processor architecture
- Experience with C, C++ programing with RTOS
- Experience with QT for embedded Linux a strong plus.
- Knowledge of Linux kernel and device-driver development
- Experience in the development of electro-mechanical devices that include fluid pumping and/or chemistry a plus.
- Bachelor's degree in Electrical Engineering or Computer Science
Relocation assistance not approved for this role.
At Thermo Fisher Scientific, each one of our 55,000 extraordinary minds has a unique story to tell. Join us and contribute to our singular mission—enabling our customers to make the world healthier, cleaner and safer.
Thermo Fisher Scientific is an EEO/Affirmative Action Employer and does not discriminate on the basis of race, color, religion, sex, sexual orientation, gender identity, national origin, protected veteran status, disability or any other legally protected status.