> Markdown version of [/jobs/ext/2667129-firmware-engineer](https://www.wearedevelopers.com/jobs/ext/2667129-firmware-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Firmware Engineer - **Company:** Novanta Inc. - **Location:** Barcelona, Spain - **Contract:** Permanent contract - **Skills:** Testing (Software), Board Bringup, Application Notes, C++ (Programming Language), CANopen, Program Optimization, Software Quality, Communications Protocols, Continuous Integration, Datasheets, Software Debugging, Microprocessors, Embedded Software, EtherCAT, Firmware, Python (Programming Language), MISRA C (C Programming Language), Object-Oriented Software Development, Real-Time Operating Systems, Software Engineering, Universal Asynchronous Receiver/Transmitter, PIC Microcontroller, Control Structures, Information Technology, Bare Metal, Software Coding, Software Version Control, Programming Languages - **Published:** September 2, 2026 - **Apply:** https://novanta.wd5.myworkdayjobs.com/Novanta-Careers/job/Barcelona-Spain/Firmware-Engineer_R009606 ## About the Role * Degree, MS or PhD in Computer Science, Electrical Engineering, or a related technical discipline. * Minimum of 4 years of experience. * Proficiency in C, including C in resource-constrained embedded environments. * Knowledge of software fundamentals, including software design and maintainability. * Experience in microprocessor bare-metal development with real-time constraints. * Experience with MCU peripherals: I2C, SPI, CAN, USB, UART, GPIO. * Understanding of schematics, datasheets, and application notes. * Experience in the use of laboratory instruments. * Experience with version control software. * Fluent written and spoken English and Spanish Nice-to-have Requirements * Knowledge of C++ and/or Python. * Experience with object-oriented programming (OOP). * Hands-on experience in new hardware board bring-up, system debugging, and code optimization. * Experience in software testing procedures. * Experience using RTOS. * Experience in FSoE (Functional Safety over EtherCAT). * Knowledge of software quality principles and coding standards (e.g., MISRA). * Knowledge of motion control (motor types, feedbacks, control loops, etc.). * Knowledge of the CANopen communication protocol. ## Description develop and implement firmware for embedded systems. Test and debug to meet product specifications. Collaborate with hardware engineers to develop top-notch firmware. Use programming languages and microcontrollers for this purpose. Designing, developing, and testing embedded software, applying industry standards and best practices. Primary Responsabilities: * Develop and maintain firmware running on Novanta products. * Implement new features for existing products, including additional feedback interfaces, communication protocols, and state-of-the-art motion control algorithms. * Participate in the development of new products. * Develop and maintain continuous integration/development libraries. * Review and improve external documentation (product manuals, datasheets, etc.). * Improve internal documentation (covering architecture, continuous integration/development, detailed design, etc.). ## Related Videos - [More efficient software for more efficient microchips](https://www.wearedevelopers.com/videos/1164-more-efficient-software-for-more-efficient-microchips) - [Playing Pong on a shoulder press machine](https://www.wearedevelopers.com/videos/100140-playing-pong-on-a-shoulder-press-machine) - [Building a hypercar from scratch](https://www.wearedevelopers.com/videos/607-building-a-hypercar-from-scratch) - [Agent Smith Gets Hardware: Autonomous IoT Hacking From Debug Port to Cloud API](https://www.wearedevelopers.com/videos/100258-agent-smith-gets-hardware-autonomous-iot-hacking-from-debug-port-to-cloud-api) - [Agile work at CARIAD – Creating a customer web application for controlling the vehicle ](https://www.wearedevelopers.com/videos/200-agile-work-at-cariad-creating-a-customer-web-application-for-controlling-the-vehicle) - [When Agents Meet Legacy: Never Change a Running System](https://www.wearedevelopers.com/videos/100320-when-agents-meet-legacy-never-change-a-running-system) ## Related Articles - [How We Built a Worry-Free System That Runs for 10+ Years – And What We’d Do Again](https://www.wearedevelopers.com/magazine/751-how-we-built-a-worry-free-system-that-runs-for-10-years-and-what-we-d-do-again) - [Where to Find Entry-Level Software Engineering Jobs](https://www.wearedevelopers.com/magazine/397-where-to-find-entry-level-software-engineering-jobs) - [The Netherlands – Europe’s powerhouse for software development?](https://www.wearedevelopers.com/magazine/31-the-netherlands-europe-s-powerhouse-for-software-development) - [Fully Remote Software Engineer Jobs](https://www.wearedevelopers.com/magazine/447-fully-remote-software-engineer-jobs) - [How software is steering vehicle technology](https://www.wearedevelopers.com/magazine/515-how-software-is-steering-vehicle-technology) - [What’s the Difference between a Junior, Mid, and Senior Developer?](https://www.wearedevelopers.com/magazine/238-what-s-the-difference-between-a-junior-mid-and-senior-developer)