Firmware Engineer
Candidate Profile (Must Have)
Experience: 5+ years of commercial experience in embedded projects (bare metal or RTOS).
Language & Tools:
Strong C skills; CMake/Make; GCC/Clang or MCU vendor toolchains; Git; debugger tools (J-Link / ST-Link); trace and profiling tools.Microcontrollers:
ARM Cortex-M (e.g. STM32 / NXP / Infineon) or equivalent; ability to read and apply datasheets and reference manuals.HAL / Drivers:
Design and modification of low-level drivers (GPIO, ADC, PWM, I2C, SPI, UART, watchdog, timers) as well as drivers for external peripherals (e.g. EEPROM).Communication:
CAN bus (filters, masks, bitrates, transceivers, termination); basic knowledge of SocketCAN (Linux); design of application-level communication protocols.Bootloader / Firmware Update:
Experience in bootloader implementation, firmware updates (e.g. via CAN), integrity verification (CRC), rollback mechanisms and secure update strategies.Measurements & Protections:
Design and validation of current, voltage and temperature measurements (ADC, oversampling, calibration) and protection mechanisms (thresholds, hysteresis, time-based debouncing).Software Architecture:
Design of modular software architecture: clear layer separation (HAL/Drivers, Services, Protocol, Application), state machines, event loops, interface abstractions.Quality & Testing:
Integration testing, functional verification, error logging and tracing; ability to develop Linux-based test tools (SocketCAN).Documentation:
Technical specifications (drafting, review), block diagrams, in-code documentation, changelogs, and environment setup instructions.
Nice to Have
RTOS experience (FreeRTOS / Zephyr)
MISRA C
Unit testing (Ceedling / Unity)
Continuous Integration (GitHub Actions / GitLab CI)
Static analysis (clang-tidy, cppcheck)
Experience with safety-critical systems (e.g. automotive, industrial)
EMC / ESD awareness
Knowledge of UDS / ISO-TP, CANopen / J1939
Environment & Tools (Required)
Repository & Branching:
Git with pull requests, code reviews, and commit conventions (e.g. Conventional Commits).Build System:
CMake/Make or IDE-based toolchains; per-target configurations (Debug / Release).Debugging:
J-Link / ST-Link, SWD, OpenOCD; flashing scripts (e.g. make flash).Linux Test Rig:
SocketCAN (can0, cangen, candump); custom CLI test application for Control Board simulation.Documentation:
Markdown / AsciiDoc; diagrams in draw.io / PlantUML; test checklists.Issue Tracking:
JIRA or GitHub Issues with linkage to commits and pull requests.
There are more than 50,000 engineering jobs:
Subscribe to membership and unlock all jobs
Engineering Jobs
60,000+ jobs from 4,500+ well-funded companies
Updated Daily
New jobs are added every day as companies post them
Refined Search
Use filters like skill, location, etc to narrow results
Become a member
🥳🥳🥳 452 happy customers and counting...
Overall, over 80% of customers chose to renew their subscriptions after the initial sign-up.
To try it out
For active job seekers
For those who are passive looking
Cancel anytime
Frequently Asked Questions
- We prioritize job seekers as our customers, unlike bigger job sites, by charging a small fee to provide them with curated access to the best companies and up-to-date jobs. This focus allows us to deliver a more personalized and effective job search experience.
- We've got over 200,000 jobs from 15,000+ vetted companies. No fake or sleazy jobs here!
- We aggregate jobs from 15,000+ companies' career pages, so you can be sure that you're getting the most up-to-date and relevant jobs.
- We're the only job board *for* software engineers, *by* software engineers… in case you needed a reminder! We add thousands of new jobs daily and offer powerful search filters just for you. 🛠️
- Every single hour! We add 2,000-3,000 new jobs daily, so you'll always have fresh opportunities. 🚀
- Typically, job searches take 3-6 months. EchoJobs helps you spend more time applying and less time hunting. 🎯
- Check daily! We're always updating with new jobs. Set up job alerts for even quicker access. 📅
What Fellow Engineers Say
