Description:
Summary:
The main function of a firmware software engineer is to apply the principles of computer science and mathematical analysis to the design, development, testing, and evaluation of the embedded software and systems that our devices work.
Job Responsibilities:
Analyze, design, develop, and debug firmware
Develop, prepare, and support embedded SW for demos
Understand and implement power-management, boot loaders, scheduling, and RTOS
Collaborate in a team environment across multiple , product focused, research, and engineering disciplines
Skills:
Experience with software design and programming in C/C++ for development, debugging, testing and performance analysis
Experience producing production quality, fail-safe firmware for low-power real-time system control
Experience working with real-time operations systems such as Zephyr or FreeRTOS.
Experience with embedded processors like ARM Cortex M0/M3/M4 architecture and boot mechanism, interrupt priorities and experience with configuring peripherals
Experience with peripherals such as USB, SPI, MIPI CSI/DSI, I2C, UART, GPIO etc.
Experience analyzing hardware and power consumption
Experience with hardware, clock-level issues, bridges, delays, interrupts, clock gating, polling etc.
Experience with instrumentation like oscilloscopes, logic/protocol analyzers for debugging embedded systems at HW level
Experience with device documentation and translating that information into software solutions
Experience with methods of designing experiments to diagnose embedded hardware and firmware problems
Experience with cross multi-disciplinary boundaries to drive system solutions
Education/Experience:
B.S. degree in Computer Science or Electrical Engineering or equivalent experience
Compelling Story & Candidate Value Proposition:
work on new tech
Typical Day in the Role:
large amount of cross communication.
Any Graduate