Software Engineer - Embedded Firmware
Austin, TXEmbedded EngineeringOnsite12+ YOE
Summary
Develops firmware and drivers for LiDAR, motor control, and robotics systems using FPGAs, MCUs, SystemVerilog, Python, and C++. Optimizes DSP algorithms and integrates with CAN-bus/Ethernet peripherals. Requires 12+ years experience (or 5+ with Master's) in embedded systems.
About the role
Responsibilities
- Design and develop firmware for LiDAR systems using SystemVerilog, optimize DSP algorithms for high performance and reliability.
- Design and develop firmware for motor control on FPGAs and MCUs, provide calibration for optimal power consumption and stability.
- Develop drivers and software for CAN-bus gateway on MCU for seamless device communication.
- Develop drivers and software for UART, LIN, Ethernet peripheral devices and sensors for robotics systems.
- Design, implement, and maintain software for testing stands using Python and C++ to automate testing.
- Collaborate with cross-functional teams to integrate firmware and software into embedded systems.
- Perform testing, debugging, and optimization using measuring equipment.
- Provide technical support to internal teams and external partners.
Requirements
- Bachelor's degree in Applied Mathematics, Electrical Engineering, Radio-technology or related field (Master's reduces experience requirement).
- 12+ years software engineering experience (or 5+ years with Master's).
- Strong programming skills in Python, C++, SystemVerilog; experience with MCUs (STM, NXP) and FPGAs (Xilinx, Intel, Lattice).
- Proven firmware development for data processing and hardware control.
- Knowledge of DSP concepts (FIR/IIR filters, FFT, convolution, signal reconstruction).
- Familiarity with CAN-bus, Ethernet, SPI, I2C; driver development experience.
- Understanding of embedded systems design, real-time OS, hardware-software co-design.
Skills
SystemVerilogPythonC++FPGAMCUSTMNXPXilinxIntel FPGALattice FPGACAN-busDSPFIR/IIR filtersFFTSPI I2C UART LIN Ethernet