Previous Job
Embedded Software Engineer
Ref No.: 18-17074
Location: Acton, Massachusetts
Specific Duties and Responsibilities:
As part of Allen Medical New Product Development team, you will be designing and implementing new technology and features into the next generation of software driven Allen Spine products. Working in a multidisciplinary team (Electrical, Mechanical and Software) you will design, implement and documents software to run on a hybrid embedded platform consisting of both Cortex-M and Cortex-A processors.
  • Develop software in multiple levels / areas, including embedded processing/device control, 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.
  • Participate in peer design and code reviews.

Requirements and 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.
  • Strong documentation skills to generate compliant documents for FDA audits.
  • Object-oriented design and development using C and C++ Languages.
  • Experience with and knowledge pertaining to embedded Real-Time Operating Systems (Micrium uC/OS-II preferred).
  • Understanding of concurrency concepts and techniques (multithreading, locking, semaphores).
  • Knowledge of State Machine based MCU software development (Quantum Leaps QPTM preferred).
  • Solid understanding of fundamental algorithms (message parsing, trigonometry, list management) and complex data structures (resource pools, queues).
  • Experience with embedded software interfaces for Interrupts, ADCs, Motor Control, USB, UART, SPI, I2C, CAN, RS-485.
  • Knowledge of basic CAN bus protocols.
  • Multi-processor system-level testing and integration.
  • Experience with ARM Cortex-M4 based microcontroller development (STMicroelectronics STM32 preferred).
  • Experience with Keil, IAR, Segger, TrueStudio, LPCExpresso or similar integrated development environment.
  • Hardware tool usage: logic analyzer, oscilloscope, DMM, JTAG debuggers or similar debugging tools.
  • Schematic and datasheet usage in debugging prototypes.
  • Python or similar Scripting Language skills.
  • Experience with Atlassian JIRA issue tracking.
  • Experience using Git or similar distributed version control.
  • Continuous integration build configuration using Jenkins or similar.

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

Specialized Knowledge:
  • Working knowledge of all phases of the IEC 62304 Software Development Life Cycle process.
  • Working knowledge of IEC 60601 family of standards.
  • Medical device experiences a strong plus, including familiarity with FDA Software Development Guidelines, or other safety-critical device development experience