Job Responsibilities:
- Architect, design, implement, and test firmware/software enabling customers to meet their goals.
- Gather requirements from customers and break into tasks for execution.
- Create unit-tests to ensure software is always meeting quality needs.
- Collaborate with Electrical, Firmware, Software, and Hardware engineers to deliver solutions.
Minimum Qualifications:
- Experience with software design and programming in C/C++ for development, debugging, testing, and performance analysis.
- Experience with scripting languages like Python, Bash, etc.
- Experience with embedded RTOSes such as FreeRTOS, Zephyr, uCOS, etc.
- Experience with CPU architectures like ARM. RISC-V, etc.
- Experience with peripherals such as USB, SPI, MIPI CSI/DSI, I2C, UART, GPIO etc.
- Experience producing production quality, fail-safe firmware for low-power real-time systems.
- Verbal and written communication skills, problem solving skills, customer service and interpersonal skills.
Desired Qualifications:
- Experience with wireless and wired communication protocols, including USB, TCP/IP, Ethernet, Bluetooth and 802.11.
- Experience with embedded DSP and graphics development.
- Experience with instrumentation like oscilloscopes, logic/protocol analyzers for debugging embedded systems at HW level.
- Experience with FPGA and vendor specific hardware evaluation boards.
Education/Experience:
- Bachelor's degree in computer science, electrical engineering or relevant field required.