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