Firmware Engineer
Hopkins, Hennepin County, Minnesota, 55305, USA
Listed on 2026-10-03
-
Software Development
Embedded Systems/ Firmware/ IoT, Embedded Software Engineer, Unix/Linux
Firmware Engineer
Job Description
Join a team of Principal Software Engineers specializing in embedded firmware and software for a variety of microprocessors, microcontrollers, and applications. Our expertise spans wireless communication, low-power design, high-reliability systems, IoT platforms, embedded Linux, and Android.
Responsibilities- Lead and mentor software engineering teams in the design and implementation of embedded firmware and software systems.
- Organize, contribute to, and implement software/firmware systems following specifications provided by internal and external customers.
- Ensure the successful completion of design-services engagements in embedded software (Linux, Android, C/C++, Python) with timely delivery of reliable products.
- Serve as the primary technical contact for strategic customer engagements, including direct communication and on‑site collaboration.
- Provide and implement technical solutions, applying ingenuity and innovation to solve complex problems.
- Coordinate and collaborate with other software development teams and customer teams to integrate systems and validate requirements.
- Maintain tracking and documentation of project progress and source code; participate in configuration management and version control processes.
- Participate in training and development programs to maintain and enhance job‑related skills.
- Evaluate and improve software design processes, tools, and workflows to drive quality and efficiency.
- Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, or a related field.
- 8+ years of hands‑on software engineering experience, preferably in a services environment.
- Proven expertise in programming in C for real‑time embedded systems or Linux/FreeRTOS platforms.
- Deep knowledge of microcontroller peripherals and interfaces (UART, I2C, SPI, ADC, PWM, Timers, etc.).
- Skilled in embedded software coding, debugging, and troubleshooting—close to the chip level.
- Proficient with test and debug equipment: oscilloscopes, logic analyzers, multimeters, spectrum analyzers.
- Excellent problem‑solving skills and ability to thrive in a deadline‑driven, fast‑paced environment.
- Strong communication and interpersonal skills, with experience interacting directly with customers and senior personnel.
Skills & Qualifications
- Experience with Yocto build system.
- Embedded Linux/Android driver development.
- Knowledge of RF communication protocols (802.15.4, Zig Bee, Cellular, Wi-Fi).
- Experience customizing routers and gateways.
- Experience with multithreading.
This is a hybrid role requiring 3-4 days per week in the office. You will be immersed in IoT projects and work primarily with Yocto and Linux. The position offers a mostly remote working arrangement with opportunities for collaboration and innovation.
Job Type & LocationThis is a Contract position based out of Hopkins, MN.
Pay and BenefitsThe pay range for this position is $45.00 - $70.00/hr.
Individual compensation offered for this position within this range will depend on many factors, including qualifications, skills, relevant experience, job knowledge, geographic location, internal equity, and other pertinent job‑related factors.
Eligibility requirements apply to some benefits and may depend on your job classification and length of employment. Benefits are subject to change and may be subject to specific elections, plan, or program terms.
If eligible, the benefits available for this temporary role may include the following:
- Medical, dental & vision
- Critical Illness, Accident, and Hospital
- 401(k) Retirement Plan - Pre‑tax and Roth post‑tax contributions available
- Life Insurance (Voluntary Life & AD&D for the employee and dependents)
- Short and long‑term disability
- Heal…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).