Software developer (Fresh Graduate)

Motorola solutions

Job Summary

As a Software Developer (Fresh Graduate) at Motorola Solutions, you will design, develop, code, test, and debug system software for embedded systems using C/C++. This role involves writing and maintaining low-level device drivers and firmware, collaborating with Hardware Engineers on system integration and board bring-up, and optimizing code for real-time constraints. You will work with RTOS or embedded Linux environments, implement various communication protocols, and ensure software quality through comprehensive testing and documentation.

Must Have

  • Design, develop, code, test, and debug system software for embedded systems using C/C++.
  • Write and maintain low-level device drivers and firmware.
  • Collaborate closely with Hardware Engineers to define specifications, troubleshoot hardware/software integration issues, and conduct board bring-up.
  • Optimize code and system performance for real-time constraints, minimal memory usage, and low power consumption.
  • Work with Real-Time Operating Systems (RTOS) or embedded Linux environments.
  • Implement and execute unit tests, integration tests, and system-level testing.
  • Create and maintain technical documentation, including design specifications, user guides, and code comments.
  • Implement and manage communication protocols such as I2C, SPI, UART, one-wire or Ethernet.
  • Strong proficiency in C programming (and ideally C++), demonstrated through academic coursework or personal projects.
  • Solid theoretical understanding of embedded systems, microcontrollers (MCUs), and/or microprocessors (MPUs).
  • Familiarity with concepts of Real-Time Operating Systems (RTOS) or embedded Linux.
  • Ability to read basic schematics and understand hardware component datasheets.
  • Familiarity with basic debugging tools (e.g., logic analyzers, oscilloscopes) and version control systems (Git).

Job Description

Department Overview

A&E Energy Software Solutions

Job Description

  • Design & Development: Design, develop, code, test, and debug system software for embedded systems and devices using languages like C/C++.
  • Hardware Interface: Write and maintain low-level device drivers and firmware to interface with various hardware components (e.g., sensors, displays, memory).
  • System Integration: Collaborate closely with Hardware Engineers to define specifications, troubleshoot hardware/software integration issues, and conduct board bring-up.
  • Optimization: Optimize code and system performance for real-time constraints, minimal memory usage, and low power consumption.
  • Operating Systems: Work with Real-Time Operating Systems (RTOS) or embedded Linux environments
  • Testing & QA: Implement and execute unit tests, integration tests, and system-level testing to ensure quality, stability, and reliability.
  • Documentation: Create and maintain technical documentation, including design specifications, user guides, and code comments.
  • Protocol Implementation: Implement and manage communication protocols such as I2C, SPI, UART, one-wire or Ethernet.

Basic Requirements

  • Bachelor’s or Master’s degree in Computer Engineering, Electrical Engineering, Computer Science, or a related field.
  • Strong proficiency in C programming (and ideally C++), demonstrated through academic coursework or personal projects.
  • Solid theoretical understanding of embedded systems, microcontrollers (MCUs), and/or microprocessors (MPUs).
  • Familiarity with concepts of Real-Time Operating Systems (RTOS) or embedded Linux.
  • Ability to read basic schematics and understand hardware component datasheets.
  • Familiarity with basic debugging tools (e.g., logic analyzers, oscilloscopes) and version control systems (Git).
  • Demonstrated passion and aptitude for technical problem-solving and troubleshooting.

7 Skills Required For This Role

Problem Solving Github Cpp Game Texts Quality Control Linux Git

Similar Jobs