Embedded Signal Software Engineer
San Francisco, CA /
Hardware – Hardware Engineering /
all.health is at the forefront of revolutionizing healthcare for millions of patients worldwide. Combining more than 20 years of proprietary wearable technology with clinically relevant signals, all.health connects patients and physicians like never before with continuous, data-driven dialogue. This unique position of daily directed guidance stands to redefine primary care, while helping people live happier, healthier and longer.
Summary/Objective: Create embedded code and software tools for a small multi-disciplinary team of engineers developing cutting-edge bio-signal processing algorithms for low-power embedded systems.
1. Develop and maintain embedded code managing the flow of biometric signals and features to/from embedded algorithms.
2. Develop and maintain various software tools and scripts to support the Algorithms Team.
3. Develop software tools automating regression testing and algorithm performance evaluation.
4. Be a key engineer ‘bridging’ the System Engineering and the Algorithms teams.
1. Extensive knowledge and experience developing embedded software (“firmware”).
2. Experience writing embedded software managing the flow of multi-channel data (e.g. real-time FIFOs).
3. Good software writing and architecture skills.
- Solid experience in embedded C programming for Arm Microcontrollers
- Experience writing software in Python.
- Comfortable within a low-footprint RTOS environment.
- Patient, creative, and analytical.
- Good written and verbal communication skills.
- Experience of Test Driven Development and Unit Testing.
- Degree in Electrical Engineering, Computer Engineering, Communications Engineering, Mathematics, or Physics.
- At least 5 years of experience designing and implementing embedded software.
Additional Desired Skills and Qualifiations
- Knowledge of Digital Signal Processing theory.
- Experience developing DSP algorithms.
- Data Science and Machine Learning.
- Matlab programming.
- Embedded assembly programming.
- Familiarity with various codecs for lossy and lossless data transmission.
- IC data sheets, inter-chip communication protocols (I2C, I2S), PCB design, mixed-signal circuit design.
- Software build automation: Bash and Make files.
- Source control: Git.