Embedded Software Engineer
About the role
Position Overview
We are seeking a motivated Embedded Software Engineer to design, develop, test, and maintain software for embedded systems and electronic devices. This position is suitable for entry-level candidates as well as mid-level professionals with experience in embedded software development, firmware, microcontrollers, and hardware/software integration.
Key Responsibilities
Design, develop, and maintain embedded software and firmware using C/C++.
Develop software for microcontrollers, processors, and embedded platforms.
Work with hardware engineers to integrate software with sensors, peripherals, and electronic components.
Develop and maintain device drivers and low-level software.
Work with communication protocols including UART, SPI, I2C, CAN, USB, and Ethernet.
Develop applications using RTOS, Embedded Linux, or other embedded operating systems.
Debug software and hardware integration issues using JTAG, debuggers, oscilloscopes, and logic analyzers.
Perform unit testing, integration testing, and system-level testing.
Analyze software performance, memory utilization, timing, and reliability.
Participate in code reviews and follow software development and coding standards.
Use Git and other version-control/build tools for software development.
Required Qualifications
Bachelor's or Master's degree in Computer Science, Computer Engineering, Electrical Engineering, Electronics Engineering, or a related field.
0–5 years of experience in embedded software, firmware, or related engineering.
Strong programming knowledge in C/C++.
Understanding of data structures, algorithms, pointers, memory management, and object-oriented programming.
Basic understanding of microcontrollers, processors, and embedded systems.
Familiarity with hardware interfaces and communication protocols.
Preferred Qualifications
Experience with ARM Cortex-M/Cortex-A or other microcontroller architectures.
Experience with FreeRTOS, Zephyr, Embedded Linux, or similar RTOS platforms.
Knowledge of device-driver development.
Familiarity with CAN/CAN-FD, BLE, USB, Ethernet, or wireless technologies.
Experience with Python or scripting for automation and testing.
Familiarity with JTAG/SWD, GDB, oscilloscopes, logic analyzers, and other debugging tools.
Understanding of Git-based development workflows and CI/CD.
Experience with automotive, IoT, robotics, medical devices, industrial automation, or consumer electronics is a plus.
Entry-Level Candidates
Recent graduates with strong academic projects, internships, or hands-on experience in C/C++, microcontrollers, Arduino/STM32/ARM, RTOS, Embedded Linux, or electronics projects are encouraged to apply.
Mid-Level Candidates
Candidates with 2–5 years of embedded software/firmware development experience and experience working on production-level embedded products are preferred for mid-level responsibilities.
Key Technologies
C | C++ | Embedded C | ARM | Microcontrollers | RTOS | Embedded Linux | Device Drivers | UART | SPI | I2C | CAN | USB | Ethernet | Git | JTAG | GDB | Python
Ready to Take the Next Step?
Email your updated resume to: mafiya@maximatek.com
Responsibilities
- Design, develop, and maintain embedded software and firmware using C/C++
- Develop software for microcontrollers, processors, and embedded platforms
- Work with hardware engineers to integrate software with sensors, peripherals, and electronic components
- Develop and maintain device drivers and low-level software
- Work with communication protocols including UART, SPI, I2C, CAN, USB, and Ethernet
- Develop applications using RTOS, Embedded Linux, or other embedded operating systems
- Debug software and hardware integration issues using JTAG, debuggers, oscilloscopes, and logic analyzers
- Perform unit testing, integration testing, and system-level testing
Qualifications
- Bachelor's or Master's degree in Computer Science, Computer Engineering, Electrical Engineering, Electronics Engineering, or a related field
- 0–5 years of experience in embedded software, firmware, or related engineering
- Strong programming knowledge in C/C++
- Understanding of data structures, algorithms, pointers, memory management, and object-oriented programming
- Basic understanding of microcontrollers, processors, and embedded systems
- Familiarity with hardware interfaces and communication protocols
Skills mentioned
About MaximaTek
Maxima Technologies is a privately owned, leading professional IT services firm Based in Cheyenne, WY. We provide technology, talent, and learning solutions to businesses in multiple nations, and we're great at it. Our expertise is positioned at the crossroads of people and technology.