Senior Embedded Software Engineer

Motorola solutions

Job Summary

Motorola Solutions is seeking a Senior Embedded Software Engineer for its Video Embedded Software Engineering Team in Penang, Malaysia. This role involves designing and implementing scalable multi-threaded Object-Oriented Software in C++ for high-speed data processing and networking, developing Linux device drivers, and optimizing system performance. The engineer will also create design documents, collaborate with hardware teams, maintain firmware build systems, and mentor junior developers, contributing to critical communications and video security technologies.

Must Have

  • Design and implement sophisticated scalable multi-threaded Object Oriented Software in C++
  • Design advanced software modules that follow modern C++ design patterns
  • Apply C programming skills for Linux device driver development and debugging
  • Apply problem solving skills and experience to identify and improve low-level system performance issues
  • Apply engineering principles to design algorithms for controlling image acquisition parameters
  • Create design documents on software architecture and algorithms
  • Collaborate with Hardware designers on board bring-up and debug
  • Maintain and improve Firmware build system using Make and Python
  • Review code of peers for adherence to coding standards and design guidelines
  • Estimate and track time and effort necessary for completing implementation tasks
  • 5+ years embedded development experience
  • Strong C and C++ design and programming skills for embedded applications
  • Firm grasp of operating system concepts including processes, threads, mutexes, interrupt handling, and exception handling
  • Experience with C/C++ compilation and debugging tools
  • Experience with scripting languages, build systems, and version control systems
  • Experience with development in a Linux environment for ARM target processors
  • Working knowledge in writing low level programming for HW peripherals and drivers
  • Understanding of embedded design considerations including C/C++ memory management, microprocessor architectures, instruction efficiency, and I/O timing

Good to Have

  • Knowledge of digital imaging/photography and audio/video coding

Job Description

Company Overview

At Motorola Solutions, we believe that everything starts with our people. We’re a global close-knit community, united by the relentless pursuit to help keep people safer everywhere. Our critical communications, video security and command center technologies support public safety agencies and enterprises alike, enabling the coordination that’s critical for safer communities, safer schools, safer hospitals and safer businesses. Connect with a career that matters, and help us build a safer future.

Department Overview

The Video Embedded Software Engineering Team at Motorola Solutions (MSI) delivers firmware for embedded devices such as in-car video systems, fixed video and body worn cameras. Working in close collaboration with other departments, engineers in this team excel at developing applications and drivers under Linux, and have a variety of backgrounds and specializations. The team uses modern C++ to develop highly reusable code, and utilize state-of-the-art systems and tools throughout the development life cycle.

Job Description

  • Design and implement sophisticated scalable multi-threaded Object Oriented Software in C++ for solving challenging problems involving high speed data processing and networking
  • Design advanced software modules that follow modern C++ design patterns
  • Apply C programming skills for Linux device driver development and debugging
  • Apply problem solving skills and experience to identify and improve low-level system performance issues
  • Apply engineering principles to design algorithms for controlling image acquisition parameters, as well as environmental conditions (Temperature, Power, Fog, Frost, etc.)
  • Create design documents on software architecture and algorithms
  • Collaborate with Hardware designers on board bring-up and debug
  • Maintain and improve Firmware build system using Make and Python
  • Review code of peers for adherence to coding standards and design guidelines
  • Estimate and track time and effort necessary for completing implementation tasks
  • Review Marketing and Product Requirements Document during feasibility and development
  • Collaborate with Quality Assurance team on identifying test cases for new features and areas for regression tests
  • Follow the established development process for all design and implementation tasks
  • Provides mentorship and coaching to junior developers

Basic Requirements

  • Bachelor / Master degree in Computer Engineering, Software Engineering and Electronics and Electrical
  • 5+ years embedded development experience
  • Strong C and C++ design and programming skills for embedded applications
  • Firm grasp of operating system concepts including processes, threads, mutexes, interrupt handling, and exception handling
  • Experience with C/C++ compilation and debugging tools
  • Experience with scripting languages, build systems, and version control systems
  • Excellent written and oral communication skills
  • Experience with development in a Linux environment for ARM target processors
  • Working knowledge in writing low level programming for HW peripherals and drivers.
  • Understanding of embedded design considerations including C/C++ memory management, microprocessor architectures, instruction efficiency, and I/O timing
  • Knowledge of digital imaging/photography and audio/video coding is a plus

Travel Requirements

None

Relocation Provided

None

Position Type

Experienced

Referral Payment Plan

Yes

12 Skills Required For This Role

Communication Problem Solving Excel Design Patterns Cpp Game Texts Quality Control Test Coverage Networking Linux Python Algorithms