> Markdown version of [/jobs/ext/2665271-senior-firmware-engineer](https://www.wearedevelopers.com/jobs/ext/2665271-senior-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). --- # Senior 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, Embedded Software, Ethernet, EtherCAT, Firmware, Python (Programming Language), MISRA C (C Programming Language), Object-Oriented Software Development, Real-Time Operating Systems, Software Engineering, Universal Asynchronous Receiver/Transmitter, Control Structures, Information Technology, Bare Metal, Software Coding, Software Version Control, Jenkins - **Published:** September 2, 2026 - **Apply:** https://novanta.wd5.myworkdayjobs.com/Novanta-Careers/job/Barcelona-Spain/Senior-Firmware-Engineer_R009607 ## About the Role * MS or PhD in Computer Science, Electrical Engineering, or a related technical discipline. * Around 8 years of experience. * Proficiency in C, including C in resource-constrained embedded environments. * Fluency in software fundamentals, including software design and maintainability. * Proficiency in microprocessor bare-metal development with real-time constraints. * Hands-on experience in new hardware board bring-up, system debugging, and code optimization. * Experience with MCU peripherals: I2C, SPI, CAN, USB, UART, GPIO. * Understanding of schematics, datasheets, and application notes. * Experience with version control software. * Experience in software testing procedures. * Fluent written and spoken English. Nice-to-have Requirements: * Knowledge of C++ and/or Python. * Experience with object-oriented programming (OOP). * 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. * Familiarity with industrial Ethernet communication protocols (EtherCAT, EtherNet/IP, Profinet). * Previous experience in motion control, robotics, or medical automation markets will be highly appreciated. * Expertise with continuous integration and delivery software (e.g., Jenkins). * Fluent written and spoken Spanish. ## Description We are looking for a talented, and highly motivated senior engineer who will take the lead in designing, developing, testing embedded software. You must adhere to design and coding standards in order to produce the highest quality work. Designing and developing firmware systems in compliance with industry standards. 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 design and development of new products. * Implement proofs of concept for novel products or features. * Develop and maintain continuous integration/development libraries. * Collaborate closely with the hardware team to assist with component selection and review hardware schematics. * Work closely with the software team to create engaging libraries and applications for our customers. * Collaborate closely with the testing team to define test plans for Novanta products. * Review and improve external documentation (product manuals, datasheets, etc.). * Improve internal documentation (covering architecture, continuous integration/development, detailed design, etc.). ## Related Videos - [The Road to MLOps: How Verivox Transitioned to AWS](https://www.wearedevelopers.com/videos/1050-the-road-to-mlops-how-verivox-transitioned-to-aws) - [Playing Pong on a shoulder press machine](https://www.wearedevelopers.com/videos/100140-playing-pong-on-a-shoulder-press-machine) - [More efficient software for more efficient microchips](https://www.wearedevelopers.com/videos/1164-more-efficient-software-for-more-efficient-microchips) - [Our GitOps approach for deploying an Identity Provider and an API Gateway in a SaaS company](https://www.wearedevelopers.com/videos/776-our-gitops-approach-for-deploying-an-identity-provider-and-an-api-gateway-in-a-saas-company) - [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) ## 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) - [Fully Remote Software Engineer Jobs](https://www.wearedevelopers.com/magazine/447-fully-remote-software-engineer-jobs) - [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) - [Where To Find Software Engineering Jobs](https://www.wearedevelopers.com/magazine/396-where-to-find-software-engineering-jobs) - [The 12 Best Jobs for Software Engineers](https://www.wearedevelopers.com/magazine/401-the-12-best-jobs-for-software-engineers)