Firmware Engineer

Novanta Inc.
Barcelona, Spain
4 days ago
Apply on novanta.wd5.myworkdayjobs.com
Prepare application

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Experience required
4 years minimum
Working hours
Regular working hours
Languages
English, Spanish

Tech stack

Testing (Software) Board Bringup Application Notes C++ (Programming Language) CANopen Program Optimization Software Quality Communications Protocols Continuous Integration Datasheets Software Debugging Microprocessors
+16 more
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

Job 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.).

Requirements

  • 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.

About the company

Build a career powered by innovations that matter! At Novanta, our innovations power technology products that are transforming healthcare and advanced manufacturing-improving productivity, enhancing people’s lives and redefining what’s possible. We create for our global customers engineered components and sub-systems that deliver extreme precision and performance for a range of mission-critical applications-from minimally invasive surgery to robotics to 3D metal printing.

Novanta is one global team with over 26 offices located in The Americas, Europe and Asia-Pacific. Looking for a great place to work? You have found it with a culture that embraces teamwork, collaboration and empowerment. Come explore Novanta.

We are looking for a talented, and highly motivated engineer who will

Apply for this position

This job is hosted externally. Click below to view the full posting and apply.

Apply on novanta.wd5.myworkdayjobs.com
Prepare application

Good distractions

Talks and stories from around this role — technically off-topic, practically not.

2:19 min

Orchestrating over-the-air firmware updates for vehicle modules

Denis Grahovac · World Congress 2021

2:34 min

Selecting specific microcontrollers and fundamental programming languages for powertrains

David Romić · World Congress 2023

2:20 min

Utilizing custom firmware for variable torque manipulation

Daniel Meilak Daniel Meilak +1 · World Congress 2026 Europe

2:14 min

Custom domain controllers and vehicle communication networks

Denis Grahovac · World Congress 2021

1:19 min

Advancing autonomous driving capabilities with specialized software talent

Katrin Lehmann Katrin Lehmann +1 · Coffee With Developers

2:13 min

Evaluating Rust for modernizing embedded C firmware

Michael Friedrich Michael Friedrich · World Congress 2026 Europe

Videos

See all

Related articles

See all