Gideon Brothers develops autonomous, collaborative and modular robot platforms and autonomy technologies for unstructured, indoor, human environments. Our robots are designed to assist operations in various industries. In our offices in Zagreb and Osijek, we have gathered a team of 70+ super-talented people, including 9 PhDs and 35+ Masters of robotics hardware and software engineering and related disciplines.
We are looking for a Junior, Mid, and Senior Firmware Engineer.
As our new Embedded Firmware Engineer, you will participate in all phases of embedded firmware development – from firmware architecture design, prototyping, and low-level coding in C/C++ to testing and integration in the final phase. This role includes working on robotic control and safety systems to deliver features to enhance and maintain the most critical components of Gideon’s robot solution. You will closely collaborate with hardware and software engineers to deliver a reliable end solution.
- Design and implement firmware for embedded systems on arm-based microcontrollers (we use ARM Cortex-M/A/R) with C/C++.
- Development of the embedded firmware in C/C++ on a real-time operating system (RTOS) for multiple PCB components such as cameras, security, sensors, navigation, and more.
- Implement communication interfaces (SPI, I2C, CAN, RS232/485, Ethernet) and protocols (e.g., CANOpen, EthernetIP, Modbus, EtherCAT, etc.).
- Defining embedded firmware code testing procedures and the firmware optimization, as well as debugging low-level hardware interfaces (USB, UART, PWM, GPIO, etc.).
- Create and review documentation, as well as firmware revision control.
- Closely collaborate with hardware engineers in the development, integration, and debugging of prototype hardware.
- MS in the field of Electrical Engineering or related fields.
- At least 3+ years of experience in writing firmware for low-level microcontrollers meeting strict coding standards and requirements (we use CortexM/A/R).
- Excellent knowledge of C/C++, as well as coding fluency in some scripting languages such as Python or system shell languages (Bash).
- Knowledge of various communication protocols.
- Good understanding of Real-Time Operating System (RTOS) and related concepts.
- Experience with Device Drivers (Linux, Windows, Mac OS).
- Experience with in-circuit debugging tools and techniques.
Nice to have:
- Knowledge of embedded computer architecture(s) such as ARM or PIC.
- Familiarity with PCB design software (we use Altium Designer) and the ability to read and understand electrical schematics.
- Experience with the development of real-time control software on embedded components.