Senior Embedded Linux Software Engineer
- Discuss this with your agent
- Open in Claude
- Open in ChatGPT
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Role details
Tech stack
+19 more
Job description
Position Title: Senior Embedded Linux Software Engineer, Job Summary: MNI is seeking a Senior Embedded Linux Software Engineer to lead the development of Yocto-based embedded Linux applications for controlling and managing microwave radio systems. This role focuses on TI ARM-based platforms, developing robust, scalable software that interfaces directly with hardware in mission-critical network environments.
The ideal candidate combines embedded Linux expertise on TI ARM processors with experience in device drivers, hardware interfacing, and networked communications, and is capable of mentoring a team of engineers to deliver high-quality software.
Essential Job Functions and Responsibilities:
Embedded Software Development
-
Design, implement, and maintain Yocto-based embedded Linux applications running on TI ARM processors.
-
Develop device drivers, middleware, and application software to interface with RF hardware, sensors, and peripherals.
-
Implement efficient, reliable, and secure software for real-time control, monitoring, and data acquisition.
System Integration
-
Collaborate with hardware engineers to define hardware-software interfaces.
-
Integrate embedded applications with network protocols (SNMP, NETCONF/YANG, REST APIs) for control and monitoring.
-
Support end-to-end system integration, verification, and debugging with TI ARM-based radio hardware.
Testing & Reliability
-
Develop unit tests, integration tests, and system-level tests for embedded applications.
-
Debug and troubleshoot complex software-hardware interactions on TI ARM platforms.
-
Ensure compliance with quality, safety, and performance standards.
Documentation
-
Create detailed technical documentation including design specifications, API definitions, and test procedures.
-
Maintain software version control, configuration management, and release documentation.
Requirements
Education: Bachelor’s or Master’s degree in Computer Engineering, Electrical Engineering, Computer Science, or related field.
Experience:
o 5+ years of experience in embedded Linux software development.
o Proven experience with Yocto-based Linux systems, including BSP customization, recipe management, and kernel module integration.
o Hands-on experience developing for TI ARM platforms (AM62X, or similar).
o Experience with real-time systems, device drivers, and low-level hardware control.
o Familiarity with telecommunications or RF hardware systems preferred.
Technical Skills:
o Strong proficiency in C/C++ for embedded systems.
o Deep knowledge of Yocto Project, BitBake, and embedded Linux workflows.
o Experience with networking protocols (SNMP, NETCONF/YANG, TCP/IP, UDP).
o Familiarity with serial interfaces, GPIO, I2C, SPI, UART, and Ethernet.
o Strong skills in debugging, profiling, and performance optimization for embedded Linux on ARM.
Other Skills:
o Excellent problem-solving, analytical, and troubleshooting abilities.
o Strong communication and documentation skills.
o Ability to lead projects and mentor team members effectively.
Preferred Qualifications:
-
Experience in microwave radio or wireless transport system software.
-
Experience with automated testing frameworks for embedded Linux.
-
Experience with test equipment such as oscilloscopes and spectrum analyzers
Benefits & conditions
- 401(k)
- Dental insurance
- Health insurance
- Life insurance
- Vision insurance
Apply for this position
This job is hosted externally. Click below to view the full posting and apply.
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Good distractions
Talks and stories from around this role — technically off-topic, practically not.
Moments
Explore playlistsVideos
See allRelated articles
See all
Is Software Engineering Over-Saturated?
Where To Find Software Engineering Jobs
The 8 Best Code Testing Tools
7 Important Tips That Every Software Developer Should Know