Search Jobs
Firmware Engineer
Redwood City, CA US
Job Description
Job Summary:
· Develop, test, and document embedded ARM based ultrasound firmware application
· Interface and extend ThreadX RTOS logic to control embedded ARM micro-controller(s) using embedded C/C++ and Python
· Interface and control I2C, SPI, UART devices
· Interface and control wired and wireless power subsystem
· Interface and control real-time streaming across FPGA and USB
· Debug, test, verify, and validate per Medical Device Directives (IEC62304, IEC60601)
· Support, contribute, and comply with system-level Risk Management File
Job Responsibilities (but not limited to):
· Design, debug, verify and support complex ultrasound medical imaging centric system built around Micro-Controllers, Micro-Processors, and FPGAs
· Work with ARM or equivalent embedded multi-core microprocessor architectures
· Design, debug and productize firmware applications on real time operating systems using embedded C and Python
· Design low-level device drivers for I2C, SPI, UART devices, including temperature sensors, battery fuel-gauge/charger chip, LED driver, authentication chip, IMU, I/O expander, etc.
· Design wireless and wired battery and power management drivers
· Manage low-level USB 2.0./3.x transport drivers
· Design various Python scripts to test, configure, and control embedded devices
· Design software interface layer running on embedded device interfacing to both iOS and Android mobile devices over USB transport layer
· Work effectively as part of a cross functional organization, including manufacturing, quality, hardware, and software teams
Education/Experience Requirements:
· BS/MS in CS, CE, or EE
· 15+ years of relevant technical experience in embedded firmware/software applications
· Experience in FW/SW development, verification and QA for medical applications is a plus, not a requirement
· Must be proficient in embedded C, C++, and Python and have product-level software/firmware experience
· Familiarity and/or experience writing applications on Unix, Linux, Mac OS, Windows, iOS, and/or Android
· Must have experience with ARM or equivalent embedded multi-core microprocessor architectures, and analog and digital sensors
· Must have experience with complex, multi-core, multi-threaded low-level hardware control applications
· Previous experience in low-power, mobile devices firmware development
· Experience in design and development of products with ICs, FPGAs, GPU’s, programmable logic devices, microcontrollers and various interfaces such as USB, I2C, SPI, UART, etc.
· Experience in wireless communication, power management, and/or high-speed serial interface such as USB 3.0/PCIe is a plus
· Experience with high-level integration with iOS/Android app is a plus
· Ultrasound or Radar/LIDAR related imaging experience is a plus
· DevOps experience including Cloud-based CI/CD development/release/test cycle is a plus
· Must have excellent verbal/written communication skills
· Full-time on-site presence required for collaboration with cross-functional teams