Firmware Engineer
Salary Range
$135,000 – 215,000
Total Compensation:
N/A
Commission:
Bonus:
Yes
No
Job Description:
A Firmware Engineer’s daily activities will include the full life cycle of design, development, modification, testing, debugging, and support for new and existing embedded software for our embedded Linux and Android-based products.
Job Duties:
- Design, develop, implement, debug and maintain embedded real time applications for Android/Linux based products C, & C++ development environments.
- Embedded Linux Kernel / OS development on ARM based platforms including configuration management, build, deployment, hardware interfaces, device driver, device tree
- Work closely with other software and hardware engineers to solve design issues.
- Responsible for design and implementation of new device features on multiple platforms
- Responsible for the maintenance of current software including: feature enhancements, performance increases, troubleshooting, testing, and bug fixing.
- Interfacing software applications with other devices and control systems
- Providing technical documentation (test procedures, design specifications, etc.)
- Special projects as assigned
Job Requirements:
- A minimum of 6 years of proven experience developing and debugging embedded software, preferably for Android/Linux.
- Must have strong C, & C++ skills.
- Must have experience with:
- Linux OS internals, Linux kernel software
- Embedded Linux U-Boot/kernel development and customization
- Linux Device Tree development
- Embedded Linux device driver development, optimizations, bug fixing, add new functionality
- Ability to independently read and understand electrical schematics
- Hardware and software abstraction
- File system operations
- Multi-threaded and multi-process architectures
- TCP/UDP client and server implementations
- Resource constrained processors (e.g. single core ARM)
- Experience debugging embedded systems where step debugging may not be available.
- Experience with communication networks and protocols (e.g. USB, Ethernet, TCP/IP, etc.) are also beneficial.
- Experience with HW accelerated graphics processing (OpenGL ES) is beneficial
- Android NDK and SDK is beneficial