Firmware Engineer

18 Minutes ago • All levels
Software Development & Engineering

Job Description

Motorola Solutions is seeking a Firmware Engineer to join their Specialty Camera Engineering team in Ware, UK. This role involves designing, developing, and implementing embedded software for long-range surveillance cameras, focusing on performance, reliability, and resource efficiency. The engineer will work with C/C++, bare-metal systems, RTOS, and various embedded interfaces, collaborating with hardware engineers throughout the product development lifecycle. Responsibilities include developing device drivers, troubleshooting hardware/software integration, and optimizing system performance for public and commercial safety applications.
Good To Have:
  • Python scripting for test automation, data analysis, or rapid prototyping.
  • ARM processor experience.
  • Experience or strong interest in robotic control programming.
  • Familiarity with automated testing, continuous integration pipelines (DevOps & CI/CD).
  • Proficiency in reading schematics.
Must Have:
  • Design, develop, and implement embedded software for bare-metal systems.
  • Develop, test, and debug low-level device drivers, peripheral interfaces, and communication protocols.
  • Collaborate with hardware engineers to define software/hardware integration requirements and support board bring-up, hardware validation, and troubleshooting.
  • Write efficient and maintainable code in C/C++ for microcontrollers, memory-constrained, and real-time systems.
  • Utilize oscilloscopes, logic analyzers, JTAG, and other debugging tools to analyze and resolve hardware/software integration issues.
  • Develop and execute unit, integration, and system-level tests to verify correct operation and performance of embedded firmware.
  • Participate in code reviews to ensure adherence to coding standards, best practices, and design guidelines.
  • Maintain comprehensive documentation of software architecture, interfaces, and procedures.
  • Analyze and optimize system performance, power consumption, and memory utilization.
  • Collaborate with cross-functional teams to define product requirements, identify technical risks, and ensure timely delivery.
  • Bachelor’s or Master’s degree in Computer Engineering, Software Engineering, Electronics, or Electrical Engineering.
  • Hands-on experience in embedded systems development.
  • Solid understanding of embedded systems design, including C/C++ memory management, microprocessor architectures, instruction efficiency, and I/O timing.
  • Proficient with debugging tools and techniques for embedded systems.
  • Demonstrated ability to identify and improve low-level system performance issues using strong problem-solving skills.
  • Experience with scripting languages and building systems.
  • Adherence to established development processes for all design and implementation activities.
  • Experience collaborating with Quality Assurance teams to identify test cases for new features and areas for regression testing.
  • Hands-on experience working with hardware engineers on board bring-up, and debugging using oscilloscopes, logic analyzers, or JTAG.
  • Experience reviewing peers’ code for adherence to coding standards and design guidelines.
  • Fluent in English, both spoken and written.
  • Ability to work in a hybrid arrangement (office located in Ware).
Perks:
  • Competitive salary and bonus schemes.
  • Two weeks additional pay per year (holiday bonus).
  • 25 days holiday entitlement + bank holidays.
  • Attractive defined contribution pension scheme.
  • Employee stock purchase plan.
  • Flexible working options.
  • Private medical care.
  • Life assurance.
  • Enhanced maternity and paternity pay.
  • Career development support and wide ranging learning opportunities.
  • Employee health and wellbeing support EAP, wellbeing guidance etc.
  • Carbon neutral initiatives/goals.
  • Corporate social responsibility initiatives including support for volunteering days.
  • Well known companies discount scheme.

Add these skills to join the top 1% applicants for this job

cross-functional
problem-solving
team-player
data-analytics
github
cpp
game-texts
cross-functional-collaboration
quality-control
test-coverage
automated-testing
regression-testing
prototyping
networking
ci-cd
git
python
algorithms
system-design

Job Description

Ability to work in a hybrid arrangement (office located in Ware).

Core Technical Proficiencies:

  • Programming Languages: C/C++.
  • Processors: Microchip (PIC32), ARM
  • Operating Systems: Bare metal, RTOS
  • Networking: Knowledge of networking protocols such as TCP and UDP.
  • Protocol: Experience with SPI, I2C, CANbus and other embedded interfaces.
  • Other: Experience with stepper and BLDC motors, DC Power Supplies, sensors
  • Version Control: Proficiency with Git and collaborative development workflows.
  • Documentation: Ability to create design documents on software architecture and algorithms.

Responsibilities:

  • Design, develop, and implement embedded software for bare-metal systems, focusing on performance, reliability, and resource efficiency.
  • Develop, test, and debug low-level device drivers, peripheral interfaces, and communication protocols directly on microcontrollers or microprocessors.
  • Collaborate with hardware engineers to define software/hardware integration requirements and support board bring-up, hardware validation, and troubleshooting.
  • Write efficient and maintainable code in C/C++ (and assembly as needed) for microcontrollers, memory-constrained, and real-time systems.
  • Utilize oscilloscopes, logic analyzers, JTAG, and other debugging tools to analyze and resolve hardware/software integration issues.
  • Develop and execute unit, integration, and system-level tests to verify correct operation and performance of embedded firmware.
  • Participate in code reviews to ensure adherence to coding standards, best practices, and design guidelines for bare-metal environments.
  • Maintain comprehensive documentation of software architecture, interfaces, and procedures for future maintenance and scalability.
  • Analyze and optimize system performance, power consumption, and memory utilization.
  • Collaborate with cross-functional teams to define product requirements, identify technical risks, and ensure timely delivery of high-quality embedded solutions

Basic Requirements

  • Bachelor’s or Master’s degree in Computer Engineering, Software Engineering, Electronics, or Electrical Engineering.
  • Hands on experience in embedded systems development.
  • Solid understanding of embedded systems design, including C/C++ memory management, microprocessor architectures, instruction efficiency, and I/O timing.
  • Proficient with debugging tools and techniques for embedded systems.
  • Demonstrated ability to identify and improve low-level system performance issues using strong problem-solving skills.
  • Experience with scripting languages and building systems.
  • Adherence to established development processes for all design and implementation activities.
  • Experience collaborating with Quality Assurance teams to identify test cases for new features and areas for regression testing.
  • Hands-on experience working with hardware engineers on board bring-up, and debugging using oscilloscopes, logic analyzers, or JTAG.
  • Experience reviewing peers’ code for adherence to coding standards and design guidelines.
  • Fluent in English, both spoken and written.
  • Ability to work in a hybrid arrangement (office located in Ware).

Advantageous Skills and Knowledge:

  • Programming Languages: Python scripting for test automation, data analysis, or rapid prototyping.
  • Processors: ARM
  • Robotics Control: Experience or strong interest in robotic control programming is a significant plus.
  • DevOps & CI/CD: Familiarity with automated testing, continuous integration pipelines.
  • Proficiency in reading schematics.

Personal Attributes:

  • Problem-Solving: Demonstrated ability to tackle complex technical challenges.
  • Collaboration: Effective team player comfortable with cross-functional collaboration with HW and Software teams.
  • Adaptability: Readiness to learn new technologies and adapt to evolving project requirements.
  • Initiative: Proactive approach to identifying and resolving issues.

Set alerts for more jobs like Firmware Engineer
Set alerts for new jobs by Motorola solutions
Set alerts for new Software Development & Engineering jobs in United Kingdom
Set alerts for new jobs in United Kingdom
Set alerts for Software Development & Engineering (Remote) jobs
Contact Us
hello@outscal.com
Made in INDIA 💛💙