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. Founded in 2002 Co-workers More than 5000
Firmware Engineer C/RTOS
Infotree Global Solutions
Senior AI Engineer (Gen AI and LLM Operations)
Bayer
Senior IT Specialist - Cloud Foundation (All Genders)
Schaeffler
Solution Architect
Element Logic
Senior MS Dynamics 365 Business Central Consultant / Architect
OPTIVEUM sp. z o.o.
Fullstack Go Developer
OPTIVEUM sp. z o.o.