Firmware Engineer

Posted 3 days 13 hours ago by Motorola Solutions

Permanent
Full Time
Other
Hertfordshire, Ware, United Kingdom, SG111
Job Description
Motorola Solutions values your privacy . 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. 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 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). 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. 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.