Sr Embedded Software Engineer

  • Full-time

Company Description

Our client is an industry leading medical device manufacturer delivering cutting edge medical equipment, surgical products and information technology solutions. 

Job Description

We are looking for a Sr Embedded Software Engineer to work as part of a New Product Development team tasked with designing and implementing new technology and features into the next generation of software driven products.  In this role, you will work with a multidisciplinary team (Electrical, Mechanical and Software) to design, implement and document software to run on a hybrid embedded platform consisting of both Cortex-M and Cortex-A processors.

Specific Duties and Responsibilities:

  • Develop software in multiple levels / areas, including embedded processing/driver development, alarm handling, connectivity, etc.
  • Create requirements and specification documents.
  • Create and execute unit tests as part of software validation efforts.
  • Integrate applications using components developed in-house and 3rd party libraries.
  • Document the design using UML diagrams (collaboration diagram, sequence diagram, state diagram).
  • Implement software for embedded systems following defined requirements and coding conventions.
  • Create and execute unit tests as part of software validation efforts.
  • Participate in peer design and code reviews.

Qualifications

  • Goal-oriented, self-motivated and able to be productive with very little supervision.
  • Able to be successful in a schedule-driven, fast paced, dynamic environment.
  • Must have good communication skills both written and verbal.
  • Ability to lead and facilitate communication between geographically diverse team of developers.
  • C and/or C++ Language Skills.
  • Perl/Python/Ruby or similar Scripting Language Skills.
  • Understanding of concurrency concepts and techniques (multithreading, locking, semaphores).
  • Knowledge of State Machine based MCU software development (Quantum Leaps preferred).
  • Experience with and knowledge pertaining to Real-Time Operating Systems (Micrium uC/OS-II preferred).
  • Solid understanding of fundamental algorithms (sorting, searching) and data structures (heaps, queues)
  • Knowledge of embedded software such as: Interrupts, ADCs, Motor Control, USB, UART, SPI, I2C, RS-485.
  • Knowledge of CAN bus and CANopen protocols.
  • Multi-processor system-level testing and integration.
  • Experience with STMicroelectronics Cortex-M based microcontroller development or similar microcontroller architectures (ARM, PPC, MIPS, IA-32).
  • Keil, IAR, Seeger, etc. development environment.
  • Hardware tool usage: logic analyzer, oscilloscope, DMM, JTAG debuggers or similar debugging tools.
  • Schematic and datasheet usage in debugging prototypes.
  • Knowledge of Atlassian JIRA based issue tracking.
  • Git version control or similar.
  • Continuous integration tools with Jenkins.
  • Strong documentation skills to generate compliant documents for FDA audits.

Education:

  • BS in Computer Science engineering, Electrical Engineering or equivalent technical degree.
  • 8+ years of engineering experience (or advanced degree plus 6 years)

Specialized Knowledge:

Medical device experience a strong plus, including familiarity with FDA Software Development Guidelines, or other safety critical device development experience