As a member of the engineering services team, the Software Engineer II will solve complex problems and participate in the specification, design, prototyping and testing of a diverse range of tooling, fixtures, design for manufacturability projects, and other customer product design needs. Under the direction of the Electrical Engineering Manager, the engineer in this role will be performing design tasks of a complex technical nature requiring investigation of new technologies, and applying engineering design principles and practices.


  • With guidance, and at all times following the Cogmedix Design Controls compliant process and 21 CFR 820.30, define software engineering design requirements and develop specifications in accordance with customer expectations and requirements.
  • Critically review and understand software engineering design requirements and specifications as they pertain to a specific project.
  • Design, low to medium complexity software systems for use within, and associated with, medical device systems.
  • Develop software tools to be used with manufacturing and testing of medical devices.
  • Identify and analyze design problems to achieve optimal solutions that satisfy cost and technical requirements using both internal and external technical resources.
  • Work with the electrical engineering team to develop innovate microcontroller/microprocessor solutions for embedded medical devices.
  • Understand and implement simple and complex interfaces with embedded circuitry.
  • Create and refine common software libraries that will be used as a basis for future software designs.
  • Research and specify commercial components to meet design requirements.
  • Interface and coordinate with senior software engineers as well as mechanical and electrical engineering teams.
  • Work with the customer and industrial engineers to develop intuitive and streamlined user interfaces to be used with medical devices.
  • Assume ownership, continuously improve, the software design control document templates.
  • Author and maintain software design control documents pertaining to software design efforts.
  • Prepare and complete engineering change order packages.
  • Develop, debug, verify and validate engineering prototypes against specifications.
  • Contribute to risk assessment of software and system design, including generation of FMEAs.
  • Prepare and release required design documentation to support release to customer for review.
  • Provide support for existing products in production as required.
  • Formulate new, innovative approaches to solve technical challenges.
  • Create and communicate project tasks and deliverables, and manage time to meet project deadlines and costs. This includes reporting pertinent information at key milestones through clear, concise oral and written communications with customers and internally.
  • Performs other duties as required.

Essential Requirements

  • Positive attitude, self-motivator, and tenacious follow up required.
  • Superior customer service attitude.
  • Excellent teamwork, communication, and interpersonal skills.
  • Direct experience working in an ISO regulated environment. ISO 13485 certified preferred.
  • Ability to create, design and solve engineering problems with assistance from more senior staff.
  • Demonstrated ability to decompose engineering challenges into actionable task lists.
  • Ability to draw conclusions and make recommendations based on technical inputs from multiple and varied sources.
  • 2-5 years of design/development experience. Experience with medical devices preferred.
  • Bachelor’s degree in Computer Science required.
  • Ability to thrive in a fast paced team setting with engineers, technicians, and manufacturing personnel.
  • Excellent skills in MS Office applications.
  • Working experience with bare metal implementations required. Working experience with RTOS strongly desired.
  • Expertise in embedded C, C and C++ required. Working knowledge in at least 2 other programming languages, such as Python or JAVA, desirable.
  • Experience working with vendor specific IDEs required. Direct experience with MCUXpresso, or a similar Eclipse based IDE, desirable.
  • Able to setup programming environments specified by the project electrical hardware required. This includes setting up the IDE tool, the SDKs, BSPs, and backup repository.
  • Direct experience setting up and maintaining autonomous regression test environments required.
  • Detailed working knowledge of software design methodologies.
  • Able to read and understand electrical schematics.
  • Ability to work with the electrical engineering team to perform initial power-up, debugging and hardware verification required. Experience developing autonomous test fixtures strongly desired.
  • Some experience with ERP/MRP and Data Management systems for documentation revision control preferred. Omnify PLM experience beneficial.