{"id":184530,"url":"https://alion.io/job/novanta-firmware-engineer-2","title":"Firmware Engineer","company":{"id":58917,"name":"Novanta","domain":"novanta.com","url":"https://alion.io/company/novanta","size_band":"1001-5000","is_staffing_agency":false,"employer_type":"direct","is_intermediary":false,"listed_via":null,"ats_vendor":"Workday","truth_index":{"grade":"B","score":83,"open_postings":15,"ghost_share":0,"stale_share":0.667,"repost_share":0,"time_to_fill_p50_days":40,"computed_at":"2026-10-17T05:46:00Z"}},"role":"Hardware","role_family":"Hardware","seniority":"middle","employment_type":"full_time","work_mode":"on_site","remote_scope":null,"remote_scope_basis":null,"remote_working_hours":null,"hiring_geo_confidence":"structured","locations":["Barcelona, Spain"],"countries":["ES"],"hiring_countries":[],"hiring_countries_total":0,"salary":null,"salary_estimate":{"min_usd":40000,"max_usd":93000,"period":"year","method":"global_role_cell_scaled_by_country","sample_n":723},"experience_years_min":4,"visa_sponsorship":false,"relocation_package":false,"has_equity":false,"technologies":[{"name":"CI/CD","optional":false},{"name":"C++","optional":true},{"name":"CANopen","optional":true},{"name":"EtherCAT","optional":true},{"name":"Python","optional":true},{"name":"RTOS","optional":true}],"status":"live","first_seen_at":"2026-09-01T11:23:10Z","employer_posted_date":"2026-10-08","last_verified_at":"2026-10-16T21:34:03Z","board_verified":true,"closed_at":null,"days_open":46,"trust":{"level":"ok","repost_count":1,"flags":[],"days_open":45},"description":"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.\nNovanta 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.\nWe are looking for a talented, and highly motivated engineer who will\ndevelop 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.\nPrimary Responsabilities:\nDevelop and maintain firmware running on Novanta products.\nImplement new features for existing products, including additional feedback interfaces, communication protocols, and state-of-the-art motion control algorithms.\nParticipate in the development of new products.\nDevelop and maintain continuous integration/development libraries.\nReview and improve external documentation (product manuals, datasheets, etc.).\nImprove internal documentation (covering architecture, continuous integration/development, detailed design, etc.).\nExperience, Education and Competencies\nDegree, MS or PhD in Computer Science, Electrical Engineering, or a related technical discipline.\nMinimum of 4 years of experience.\nProficiency in C, including C in resource-constrained embedded environments.\nKnowledge of software fundamentals, including software design and maintainability.\nExperience in microprocessor bare-metal development with real-time constraints.\nExperience with MCU peripherals: I2C, SPI, CAN, USB, UART, GPIO.\nUnderstanding of schematics, datasheets, and application notes.\nExperience in the use of laboratory instruments.\nExperience with version control software.\nFluent written and spoken English and Spanish\nNice-to-have Requirements\nKnowledge of C++ and/or Python.\nExperience with object-oriented programming (OOP).\nHands-on experience in new hardware board bring-up, system debugging, and code optimization.\nExperience in software testing procedures.\nExperience using RTOS.\nExperience in FSoE (Functional Safety over EtherCAT).\nKnowledge of software quality principles and coding standards (e.g., MISRA).\nKnowledge of motion control (motor types, feedbacks, control loops, etc.).\nKnowledge of the CANopen communication protocol.\nTravel requirements\nOccasional travel is expected, both domestically and internationally, to provide customer support and/or assist with installations.\nNovanta is proud to be an equal employment opportunity and affirmative action workplace. We consider all qualified applicants without regard to race, color, religion, sex (including pregnancy), sexual orientation, gender identity or expression, national origin, military and veteran status, disability, genetics, or any other category protected by federal law or Novanta policy.\nPlease call +1 781-266-5700 if you need a disability accommodation for any part of the employment process.","description_format":"text","description_chars":3516,"description_truncated":false,"requirements":{"experience_years_min":4,"management_years_min":null,"team_size_min":null,"manages_managers":false,"education":{"level":"master","optional":false},"security_clearance":false,"languages":[{"language":"English","level":"All levels","optional":false}]},"benefits":[],"hiring_locations":[{"name":"United States","iso":"US","kind":"region"},{"name":"China","iso":"CN","kind":"region"},{"name":"India","iso":"IN","kind":"region"},{"name":"Germany","iso":"DE","kind":"region"},{"name":"Japan","iso":"JP","kind":"region"},{"name":"France","iso":"FR","kind":"region"},{"name":"United Kingdom","iso":"GB","kind":"region"},{"name":"Argentina","iso":"AR","kind":"region"},{"name":"Australia","iso":"AU","kind":"region"},{"name":"Austria","iso":"AT","kind":"region"},{"name":"Belgium","iso":"BE","kind":"region"},{"name":"Brazil","iso":"BR","kind":"region"},{"name":"Bulgaria","iso":"BG","kind":"region"},{"name":"Canada","iso":"CA","kind":"region"},{"name":"Colombia","iso":null,"kind":"region"},{"name":"Croatia","iso":"HR","kind":"region"},{"name":"Czech Republic","iso":"CZ","kind":"region"},{"name":"Denmark","iso":"DK","kind":"region"},{"name":"Finland","iso":"FI","kind":"region"},{"name":"Hungary","iso":"HU","kind":"region"},{"name":"Indonesia","iso":"ID","kind":"region"},{"name":"Ireland","iso":"IE","kind":"region"},{"name":"Italy","iso":"IT","kind":"region"},{"name":"Malaysia","iso":"MY","kind":"region"},{"name":"Mexico","iso":"MX","kind":"region"},{"name":"Netherlands","iso":"NL","kind":"region"},{"name":"New Zealand","iso":"NZ","kind":"region"},{"name":"Norway","iso":"NO","kind":"region"},{"name":"Pakistan","iso":"PK","kind":"region"},{"name":"Philippines","iso":"PH","kind":"region"},{"name":"Poland","iso":"PL","kind":"region"},{"name":"Romania","iso":"RO","kind":"region"},{"name":"South Korea","iso":"KR","kind":"region"},{"name":"Spain","iso":"ES","kind":"region"},{"name":"Sweden","iso":"SE","kind":"region"},{"name":"Switzerland","iso":"CH","kind":"region"},{"name":"Taiwan","iso":"TW","kind":"region"},{"name":"Thailand","iso":"TH","kind":"region"},{"name":"Vietnam","iso":"VN","kind":"region"},{"name":"American Samoa","iso":"AS","kind":"region"},{"name":"Anguilla","iso":null,"kind":"region"},{"name":"Antigua and Barbuda","iso":"AG","kind":"region"},{"name":"Aruba","iso":"AW","kind":"region"},{"name":"Bahamas","iso":"BS","kind":"region"},{"name":"Bangladesh","iso":"BD","kind":"region"},{"name":"Barbados","iso":"BB","kind":"region"},{"name":"Belize","iso":"BZ","kind":"region"},{"name":"Bermuda","iso":"BM","kind":"region"},{"name":"Bhutan","iso":"BT","kind":"region"},{"name":"Bolivia","iso":"BO","kind":"region"},{"name":"British Virgin Islands","iso":"VG","kind":"region"},{"name":"Brunei Darussalam","iso":"BN","kind":"region"},{"name":"Cambodia","iso":"KH","kind":"region"},{"name":"Bonaire, Sint Eustatius and Saba","iso":"BQ","kind":"region"},{"name":"Cayman Islands","iso":"KY","kind":"region"},{"name":"Chile","iso":"CL","kind":"region"},{"name":"Cook Islands","iso":"CK","kind":"region"},{"name":"Costa Rica","iso":"CR","kind":"region"},{"name":"Curaçao","iso":"CW","kind":"region"},{"name":"Dominica","iso":"DM","kind":"region"},{"name":"Dominican Republic","iso":"DO","kind":"region"},{"name":"East Timor","iso":"TL","kind":"region"},{"name":"Ecuador","iso":"EC","kind":"region"},{"name":"El Salvador","iso":"SV","kind":"region"},{"name":"Estonia","iso":"EE","kind":"region"},{"name":"Falkland Islands","iso":"FK","kind":"region"},{"name":"Fiji","iso":"FJ","kind":"region"},{"name":"French Guiana","iso":"GF","kind":"region"},{"name":"French Polynesia","iso":"PF","kind":"region"},{"name":"Greece","iso":"GR","kind":"region"},{"name":"Greenland","iso":"GL","kind":"region"},{"name":"Grenada","iso":"GD","kind":"region"},{"name":"Guadeloupe","iso":"GP","kind":"region"},{"name":"Guam","iso":"GU","kind":"region"},{"name":"Guatemala","iso":"GT","kind":"region"},{"name":"Guyana","iso":"GY","kind":"region"},{"name":"Haiti","iso":"HT","kind":"region"},{"name":"Honduras","iso":"HN","kind":"region"},{"name":"Iceland","iso":"IS","kind":"region"},{"name":"Jamaica","iso":"JM","kind":"region"},{"name":"Kiribati","iso":"KI","kind":"region"},{"name":"Laos","iso":"LA","kind":"region"},{"name":"Latvia","iso":"LV","kind":"region"},{"name":"Liechtenstein","iso":"LI","kind":"region"},{"name":"Lithuania","iso":"LT","kind":"region"},{"name":"Luxembourg","iso":"LU","kind":"region"},{"name":"Maldives","iso":"MV","kind":"region"},{"name":"Malta","iso":"MT","kind":"region"},{"name":"Marshall Islands","iso":"MH","kind":"region"},{"name":"Martinique","iso":"MQ","kind":"region"},{"name":"Micronesia","iso":null,"kind":"region"},{"name":"Mongolia","iso":"MN","kind":"region"},{"name":"Montserrat","iso":"MS","kind":"region"},{"name":"Nauru","iso":"NR","kind":"region"},{"name":"Nepal","iso":"NP","kind":"region"},{"name":"New Caledonia","iso":"NC","kind":"region"},{"name":"Nicaragua","iso":"NI","kind":"region"},{"name":"Niue","iso":"NU","kind":"region"},{"name":"Norfolk Island","iso":"NF","kind":"region"},{"name":"Northern Mariana Islands","iso":"MP","kind":"region"},{"name":"Palau","iso":"PW","kind":"region"},{"name":"Panama","iso":"PA","kind":"region"},{"name":"Papua New Guinea","iso":"PG","kind":"region"},{"name":"Paraguay","iso":"PY","kind":"region"},{"name":"Peru","iso":"PE","kind":"region"},{"name":"Pitcairn Islands","iso":"PN","kind":"region"},{"name":"Portugal","iso":"PT","kind":"region"},{"name":"Puerto Rico","iso":"PR","kind":"region"},{"name":"Saint Kitts and Nevis","iso":"KN","kind":"region"},{"name":"Saint Lucia","iso":"LC","kind":"region"},{"name":"Saint Vincent and the Grenadines","iso":null,"kind":"region"},{"name":"Saint-Pierre and Miquelon","iso":"PM","kind":"region"},{"name":"Samoa","iso":"WS","kind":"region"},{"name":"Sint Maarten","iso":"SX","kind":"region"},{"name":"Slovakia","iso":"SK","kind":"region"},{"name":"Slovenia","iso":"SI","kind":"region"},{"name":"Solomon Islands","iso":"SB","kind":"region"},{"name":"Sri Lanka","iso":"LK","kind":"region"},{"name":"Suriname","iso":"SR","kind":"region"},{"name":"Tokelau","iso":"TK","kind":"region"},{"name":"Tonga","iso":"TO","kind":"region"},{"name":"Trinidad and Tobago","iso":"TT","kind":"region"},{"name":"Turks and Caicos Islands","iso":"TC","kind":"region"},{"name":"Tuvalu","iso":null,"kind":"region"},{"name":"Uruguay","iso":"UY","kind":"region"},{"name":"United States Virgin Islands","iso":"VI","kind":"region"},{"name":"Vanuatu","iso":"VU","kind":"region"},{"name":"Wallis and Futuna","iso":"WF","kind":"region"},{"name":"Hong Kong","iso":"HK","kind":"region"},{"name":"Singapore","iso":"SG","kind":"region"},{"name":"Macau","iso":"MO","kind":"region"}],"hiring_excludes":[],"relocation_offered":false,"industries":["Biotechnology","Cybersecurity","Motors, Drives & Motion Control","Machine Vision & 3D Cameras"],"lifecycle":[{"event":"open","at":"2026-09-01T11:23:10Z"},{"event":"close","at":"2026-10-02T15:48:37Z"},{"event":"reopen","at":"2026-10-08T10:02:06Z"}],"visa":[],"liveness":{"score":27,"band":"fade","label":"Fading","p_open":1,"p_active":0.495,"p_room":0.55,"age_days":45,"expected_fill_days":40,"reasons":["conf:8","stale_co","velocity","win:tail","comp:brand"],"computed_at":"2026-10-17T05:46:00Z"},"pay":null,"html_url":"https://alion.io/job/novanta-firmware-engineer-2","json_url":"https://alion.io/job/novanta-firmware-engineer-2.json","meta":{"generated_at":"2026-10-18T02:45:32Z","cache_seconds":300,"methodology":"https://alion.io/methodology","terms":"https://alion.io/terms","contact":"https://alion.io/contact","api":"https://alion.io/developers","about":"Alion is a live layer of people, companies and AI agents: who they are, whether they are real and active right now, what they do and how to work with them, readable by people and by agents and paid per call.","catalog":"https://alion.io/catalog.json","usage":{"tier":"crawler_verified","counted_by":"address","units_charged":1,"used_today":4365,"day_limit":null,"remaining_today":null,"minute_limit":300,"resets_at":"2026-10-19T00:00:00Z"}},"offers":[{"id":"company.slices","title":"One company in depth, by slice","status":"live","price":{"credits":0.02,"usd":0.002,"plus_per_slice":{"credits":0.05,"usd":0.005}},"unit":"per company, plus each slice with data","note":"the employer in depth","call":{"mcp_tool":"get_company","arguments":{"id":58917},"rest":"https://alion.io/mcp/rest/get_company?id=58917"},"human":"https://alion.io/catalog?offer=company.slices&for=job%2Fnovanta-firmware-engineer-2"},{"id":"market.stats","title":"A market slice: pay, demand and time to fill","status":"live","price":{"credits":1,"usd":0.1},"unit":"per slice","note":"pay, demand and time to fill for this role and place","call":{"mcp_tool":"market_stats"},"human":"https://alion.io/catalog?offer=market.stats&for=job%2Fnovanta-firmware-engineer-2"},{"id":"job.search","title":"Open jobs by role, technology, place, pay and visa","status":"live","price":{"credits":0.02,"usd":0.002},"unit":"per posting in a list","note":"similar open postings","call":{"mcp_tool":"search_jobs"},"human":"https://alion.io/catalog?offer=job.search&for=job%2Fnovanta-firmware-engineer-2"},{"id":"company.verify","title":"Is this company real and active right now","status":"pilot","price":null,"unit":"per company","request":{"url":"https://alion.io/catalog/request","method":"POST","body":"{\"offer\": \"company.verify\", \"for\": \"job/novanta-firmware-engineer-2\", \"note\": \"what you need it for\"}"},"human":"https://alion.io/catalog?offer=company.verify&for=job%2Fnovanta-firmware-engineer-2"}]}