Back to job search

Embedded Software Engineer

  • Location:


  • Sector:

    Engineering, Embedded Software and Electronics

  • Job type:


  • Salary:


  • Contact:

    Daniel Warby

  • Contact email:

  • Contact phone:

    +44 (0)121 796 1888

  • Job ref:


  • Published:

    27 days ago

  • Expiry date:


  • Startdate:


Job Title: Embedded Software Engineer 

Job Type: Permanent - EU candidates only

Salary: €DOE

Location: Galway, Ireland (relocation package available)

Premier Engineering has engaged with a new client and a very exciting, fast paced and rapidly growing manufacturer and integrator of electrification systems. Due to growth and expansion of the business a key opportunity has been established for Sheet Metal Fabrication Manager to join on a permanent basis.


We are looking for a highly experienced Embedded Software Engineer to design and architect battery control algorithms and control systems for our next-generation battery systems.

In this role, you’ll get to:

  • Use best-practices, experience, and talents to create battery models for production ECU.
  • Assess input & output constraints to develop firmware model and compile into executable code.
  • Utilize a variety of debugging tools to aid and speed your development; writing scripts, & executables.
  • Use your battery knowledge to contribute to the ESS cell research team.
  • Apply ISO-26262 safety standards in the creation, unit testing, & review of your code/models.
  • Design other important software components of the BMS, involving diagnostics, fault detection, and more.
  • Coordinate & work with engineers across multiple disciplines to ensure timely completion of assigned tasks.
  • Collaborate with software engineers to integrate application-layer software into RTOS.
  • Collaborate with validation engineers to test your models & firmware functionality.
  • Share progress & participate in code reviews with algorithm & control systems designers.
  • Work with other firmware engineers on the evolution of the company platform, contributing to projects such as: on-line battery mathematical parameter estimation & off-line battery physics-modelling.
  • Devise new concepts for BMS over-the-air (OTA) data transfer methods, etc.
  • Grow and mature as the development and production process evolves.
  • Transition between C-programming and Model-Based Design (Matlab/Simulink).
  • Understand corner-cases, unit-testing, and battery performance limitations.
  • Apply lessons learned to future designs and firmware implementations.
  • Contribute to ESS vehicle and laboratory data-mining efforts.


  • Show a willingness to take on dynamic projects; from low-level firmware manipulation, all the way up to high-level Li-Ion Cell & CAN data processing, filtering, and analysis.
  • 5+ years of work experience in the battery and automotive industries.
  • Experience with programming and embedded systems.
  • Well-versed with software development & C programming.
  • Previous programming experience on Battery Management Systems, or automotive ECUs.
  • Previous experience in automotive product development or extreme safety environments.
  • Experience with model-based design; creating control systems & models with Matlab/Simulink.
  • AUTOSAR knowledge and experience.
  • Excellent problem-solving skills; reliant on core engineering principals & common sense.
  • Strong communication, multitasking, & interpersonal skills, both in presentation & technical writing.
  • Versed in production development & testing timelines.
  • Versed with automated requirements management tools (e.g. JAMA, Doors, etc.) and issue tracking tools (Jira, Bugzilla, etc.).
  • Previous experience with product launches and working to a schedule.
  • Ability and desire to share/communicate subject matter expertise and knowledge effectively with other employees, contractors and external customers.
  • Ability to write technical documents, draft patents and articles.

Sound interesting? Please contact Daniel Warby at Premier Engineering for further information and apply!
!function(f,o,r,c,e,_2,_4){f.Force24Object=e,f[e]=f[e]||function(){ (f[e].q=f[e].q||[]).push(arguments)},f[e].l=1*new Date, _2=o.createElement(r),_4=o.getElementsByTagName(r)[0],_2.async=1, _2.src=c,_4.parentNode.insertBefore(_2,_4)}(window,document, "script","//","f24"); /* Set clientId */ f24("create", "c82a4518-4975-4e7d-985e-17859ef18496"); /* Place custom commands here */ f24("cookieAnonymous", true); f24("send", "pageview");