> Markdown version of [/jobs/ext/4486175-firmware-embedded-engineer](https://www.wearedevelopers.com/jobs/ext/4486175-firmware-embedded-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Firmware Embedded Engineer - **Company:** KnackHook LLC - **Location:** Waukesha, WI, United States - **Experience:** Expert - **Contract:** Permanent contract - **Skills:** Board Bringup, Adobe InDesign, Agile Methodology, Automation of Tests, C++ (Programming Language), Software Quality, Code Review, Communications Protocols, Computer Engineering, Continuous Integration, Software Debugging, Linux, Programming Tools, Device Drivers, Memory Management, Embedded Software, Emulators, Firmware, Field-Programmable Gate Array (FPGA), Hardware Interface Design, Integrated Development Environments, Object-Oriented Software Development, Real-Time Operating Systems, Software Engineering, Software Technical Review, Diagnostic Tools, Multithreading, Real Time Systems, Concurrency, Git, Integration Tests, Information Technology, Production Code, C++14, Software Version Control - **Published:** October 6, 2026 - **Apply:** https://www.dice.com/job-detail/105c096d-2e9d-498b-b25e-153518c88b6b ## About the Role * Bachelor's degree, or equivalent practical experience, in Computer Engineering, Electrical Engineering, Computer Science, or a related field. * 5+ years of professional experience developing embedded or firmware software. * Strong C++ programming skills, including object-oriented design, memory management, concurrency fundamentals, debugging, and writing maintainable production code. * Hands-on experience developing software that interacts with hardware, real-time systems, device interfaces, or resource-constrained embedded platforms. * Proven ability to learn unfamiliar technologies and codebases independently, break down ambiguous problems, and deliver results with minimal guidance. * Experience with embedded development and diagnostic tools such as debuggers, emulators, protocol or logic analyzers, and system logs. * Experience with Linux-based development environments, source control such as Git, and build or container-based workflows. * Experience with continuous integration, automated testing, and disciplined software review practices. * Clear written and verbal communication skills, including the ability to explain technical decisions, raise risks, and collaborate across functions. Preferred * Experience with a real-time operating system and multi-threaded or concurrent software. * Experience with hardware bring-up, board-level debugging, device drivers, communication protocols, or FPGA and firmware integration. * Experience working in a regulated, safety-critical, or quality-controlled product-development environment. * Experience working in Agile teams and planning work through user stories and iterative delivery. ## Description Own assigned firmware features or components from requirements analysis through design, implementation, integration, verification, and defect resolution. * Independently learn existing code, hardware interfaces, development tools, and system behavior; identify the right technical resources and ask focused questions when needed. * Develop maintainable embedded software in modern C++ using sound object-oriented design, clear interfaces, and appropriate error handling. * Collaborate with systems, hardware, FPGA, software, and architecture teams to clarify requirements, evaluate tradeoffs, and resolve cross-functional issues. * Use debuggers, emulators, analyzers, logs, and other diagnostic methods to isolate complex software and hardware interaction problems. * Create unit and integration tests, contribute to automated testing, and support continuous integration to improve software quality and regression coverage. * Participate in design and code reviews; provide constructive feedback and incorporate review input promptly. * Estimate, plan, and track work through user stories; communicate status, risks, dependencies, and technical blockers early and clearly. * Follow applicable quality processes and produce clear technical documentation that supports design traceability, testing, and long-term maintenance. * Work effectively with globally distributed teams and contribute to consistent design and architectural improvements.