Firmware Software Engineer
Duration: 12 Months
Pay Rate: 85-90/HR. on W2
RESPONSIBILITIES
- Design and implement components at all layers of the system, e.g. kernel, display and graphics
- Design and implement drivers and services that operate efficiently in a constrained environment yet when pressed can efficiently deliver large volumes of data with low-latency and high-bandwidth.
- Own the definition of one or more work streams focused on hardware bringup, peripheral drivers and communication, silicon integration and power and performance management and optimization.
- Debug complex, system-level, multi-component issues that typically span across multiple layers from kernel to application.
- Profile performance problems and drive optimizations that span the entire software stack.
- Bring up new devices and lead debugging and performance tuning exercises that span multiple hardware/firmware/software teams.
- Understand software components from multiple partner teams, lead the integration of those components into the unified product code base, and drive their continued development.
Minimum qualifications:
- Bachelor’s degree in computer science, Computer Engineering, relevant technical field, or equivalent practical experience.
- 4+ years' Software Engineering experience in the following: device driver development, embedded systems, or operating systems.
- 4+ years’ experience working on systems software in a large-scale C/C++ code base.
- 2+ years’ experience defining and driving technical work streams and providing technical leadership for software engineering teams.
- Experience with Software Development processes including source control, bug tracking, and design documentation.
- Experience in hardware bring-up using interfaces like ADC, GPIO, SPI, I2C, etc.
- Experience in one or more of the following areas: BSP/Board Support Package, Operating Systems, Android OS, RTOS, Bootloader, Power Management, Linux, Graphics and Display Drivers, MCU (Microcontroller).
- Experience developing, debugging, and shipping software products on large code bases that span platforms and tools.
Preferred qualifications:
- Deep specialized experience in two or more of the following areas: BSP/Board Support Package, Operating Systems, CoreOS, Kernel, Android Kernel, Bootloader, Power Management, RTOS, Linux, Graphics and Display Drivers, MCU (Microcontroller).
Demonstrated experience working collaboratively in cross-functional teams.