Title: Senior Embedded Firmware Engineer
Location: Redwood City, CA
Salary Range: $48.00 - $68.00/hr.
Job Description:
This position will work with a cross functional team for developing embedded software for our client's future medical device products. This position will have the opportunity to excel within a high-energy, small, focused team environment, maintain a strong sense of shared responsibility and shared reward, and to make work fun and interesting.
Responsibilities: (Other duties may be required as assigned)
- Set a committing and delivering example, mentoring team members, and growing technical capability
- Work on multiple projects to develop new product embedded software
- Design, code, test, and document embedded software for feasibility prototypes and released product
- Work closely with cross-functional groups, including FPGA Firmware Engineering and Software and Electrical Engineering peers to define product requirements
- Ensure all product embedded software is developed in accordance with the software development process, including requirements definition, architecture, design, implementation, debugging, and software testing
- Write protocols and reports for embedded software verification and validation testing
- Support software on customer complaint analysis team
- Be capable of owning and completing tasks with the time pressures typical of new product development
Qualifications: (Education, Experience, Certifications)
To perform this job successfully, an individual must be able to perform each essential duty satisfactorily. The requirements listed below are representative of the knowledge, skill, and/or ability required.
Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.
- The Sr Embedded Software Engineer position requires a minimum of a Bachelor’s degree (B.S.) in CS/EE/BME or equivalent with 5+ years of direct experience developing embedded software for medical devices, or a Master’s degree with 3+ year of experience.
- MCU programing experience using C/C++ experience required
- Experience with real-time embedded software programming required
- Demonstrated excellent verbal and written communication skills
- Ability to effectively coordinate multiple projects, highly self-directed
- Demonstrated strong ability to systematically troubleshoot and debug complex software/hardware problem
- Experience with software architecture, development and testing best practices, coding standard required
- Experience with automated software testing systems for embedded systems testing required
- Experience interacting with software debugging in an embedded IDE required
- Experience controlling hardware using various I/O protocols such as I2C, SPI, UARTs, RS485, etc. required
- Experience with motor control algorithms on various types of motors (BLDC, DC brushed, etc.)
- Experience as a key player developing software on a development team
- FPGA design and development capability a strong plus
- Familiar with Scrum development process a strong plus
- Comfortable using oscilloscopes, logic analyzer, multimeters, power supplies, etc.
- Comfortable reading schematics and hardware data sheets
- Experience with object-oriented analysis and design techniques a plus.
- Experience with RTOS a plus
- Experience with JTAG debugging, Embedded SW profiling using software and hardware tools required
- Experience with GNU compilers, software versioning and GIT version control a plus.
- Strong technical documentation skills within a formal quality system (ISO 13485, IEC 62304, 21, FDA QSR’s etc.)
- Direct experience with entire software development life cycle, from concept through maintenance
- Experience working in medical device software development
- Demonstrated excellent verbal and written communication skills
- An interest in the medical applications and experience with surgical device and medical image processing software development
- The ability to excel within a high-energy, small, focused team environment, maintain a strong sense of shared responsibility and shared reward, and to make work fun and interesting
- Ability to effectively present information and respond to questions from other internal groups, clients, customers, and the general public
- Ability to work with mathematical concepts such as probability and statistical inference
- Ability to solve practical problems and deal with a variety of concrete variables in situations where only limited standardization exists