Senior Software Engineer

  • Post date February 8, 2019
Job Description

Position Summary:

Under minimal supervision, performs software development activities including software requirements, architecture, design, implementation, and integration.

Key Accountabilities:

  • Software architecture and design
  • Requirements gathering, and creation and maintaining of software specifications
  • Design and development of operating software for medical devices with special focus on process control and fluidic operations, algorithms and sequences, pattern detection and recognition, and image processing.
  • Software maintenance support for existing products
  • Development and maintenance of specialized real-time software written in proprietary scripting programming language
  • Collaborate with Analytical, Systems and EE teams to create complete and cohesive solutions
  • Agile software development

Budget managed (if applicable) N/A


Internal Networking/Key relationships

  • To be determined based on department needs

Skills & Capabilities:

  • Knowledge and experience in spectroscopy, camera systems, chemistry, electrochemistry, fluidic process, and scientific algorithms and applications is highly desirable.
  • Experience in software architecture, design and development for embedded systems is highly desirable
  • Expertise in software engineering methodologies such as object-oriented design, software patterns, and functional programming.
  • Strong in C++ programming language and STL, and Object Oriented Design
  • Deep knowledge of Python and its ecosystem, including writing and/or leveraging C extensions and Cython/Boost to solve performance bottlenecks
  • Strong math skills, including experience with off-the-shelf packages such as NumPy and SciPy.
  • Software architecture, design, and development experience with real-time multi-process/threaded applications
  • Working experience with design control processes, design control tools, and software build systems and configuration management tools
  • Working experience with writing software specifications from requirements to functional and design specifications, including UML diagrams
  • Proficient in software development under/for Linux Operating Systems
  • Good understanding of the computer hardware
  • Very good verbal and written technical communication and presentation skills




Minimum knowledge & Experience required for the position:

  • Bachelor’s Degree plus a minimum 8 years of related experience or Master’s Degree plus a minimum 4 years of related experience or waiver based on experience. Degree should be in a technical discipline such as Chemistry, Math, Physics, Engineering, or Computer Science
  • Degree should be in a technical discipline such as Chemistry, Math, Physics, Engineering, or Computer Science Proficiency with a personal computer and software packages.
  • Proficient in computer codes (Assembly, C, C++, Java, C#, etc.) found in the development.

International Mobility: Required: no


Travel requirements:

  • <5% of time