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