Firmware Engineer C/RTOS
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.
- Locations
- Wrocław
- Remote status
- Hybrid
About Infotree Global Solutions
At Infotree, meeting your career needs is a top priority. Client satisfaction is largely dependent on the resources we can provide, and we take pride in our delivery. We have a supportive team in place to give quality people a chance to grow and challenge themselves in their roles which has resulted in that we have placed many employees in positions that have grown into lifelong careers.
We have a team of dedicated recruiters and consultant care representatives that are committed to your success and well-being. Check out our open roles to get started.
Infotree Poland Sp. z o.o. is part of Infotree Global Solutions. Agency number: 15970.
Already working at Infotree Global Solutions?
Let’s recruit together and find your next colleague.