Embedded Firmware EngineerThe R&D Software Engineering team is seeking a highly motivated Embedded Firmware Engineer to help develop innovative firmware and IoT solutions. You will be responsible for designing and implementing embedded firmware for microcontroller-based systems that power smart dispensing and IoT-enabled equipment. This role involves close collaboration with software engineers, hardware teams, and cross-functional stakeholders in an Agile environment.Key ResponsibilitiesDevelop embedded C code, architect firmware, and create proof-of-concepts for dispensing and IoT systems.Integrate software and hardware components from other internal divisions.Build full-stack IoT end-node solutions in collaboration with software teams.Participate in Agile/SCRUM ceremonies and contribute to sprint deliverables.Work with Product Owners to define and document User Stories and Acceptance Criteria.Apply DevOps best practices within a multidisciplinary R&D environment.Must-Have QualificationsBachelor's degree in Computer Engineering, Electrical Engineering, Software Engineering, or a related field.4–5+ years of embedded firmware development in C (C++ is a plus).Hands-on experience with RTOS and bare-metal development.Proficient in serial communication protocols such as UART, SPI, I2C.Experience in developing for microcontrollers such as STMicroelectronics, NXP, or Silicon Labs.Preferred QualificationsExperience with Modbus RTU/TCP or CANBus protocols.Experience supporting Embedded Firmware Platforms and Board Support Package (BSP) development.Familiarity with ARM-based microcontrollers.Exposure to embedded Linux, bootloaders, file systems, and system controls.Understanding of Agile development methodologies.Knowledge of board design and layout principles.Top 3 Required SkillsExperience with embedded RTOS on microcontrollers (e.g., STMicro, NXP).Proficiency in serial communication protocols: UART, SPI, I2C.Strong, hands-on coding experience in the C programming language.