Job Description
Sr. Embedded Linux Software Engineer
\n
locations : CA, IL
\n
Key Responsibilities
\n
• Design, develop, and maintain embedded software applications using modern C/C++.
\n
• Develop software for embedded Linux platforms and control systems.
\n
• Collaborate with product owners to define requirements, create specifications, and document development activities.
\n
• Work closely with system architects, hardware engineers, and software developers to ensure successful system integration.
\n
• Develop communication, networking, and data management applications for embedded devices.
\n
• Design and implement communication interfaces using protocols such as Modbus, CAN, MQTT, TCP/IP, and REST APIs.
\n
• Develop and maintain software for microcontroller platforms including STM32, ESP32, or similar architectures.
\n
• Create robust software solutions emphasizing reliability, stability, fault tolerance, and maintainability.
\n
• Specify, develop, and execute unit tests, integration tests, and automated test procedures.
\n
• Participate in code reviews, software design reviews, and technical discussions.
\n
• Troubleshoot software, communication, and integration issues across embedded environments.
\n
• Develop software architecture and system designs using object-oriented principles and UML modeling.
\n
• Support Agile development activities including sprint planning, backlog refinement, and task estimation.
\n
• Mentor junior engineers and provide technical leadership on software projects.
\n
• Maintain software repositories and development workflows using Git.
\n
• Prepare technical documentation, test reports, and release notes.
\n
• Collaborate with global engineering teams, manufacturing facilities, and product management organizations.
\n
• Stay current with advancements in embedded software technologies, Linux development, networking, and cybersecurity.
\n
• Identify opportunities to improve software performance, reliability, and development processes.
\n
• Support collaboration between global and local engineering teams, including manufacturing and development organizations.
\n
\n
Required Skills and Qualifications
\n
Qualifying candidate will need to be open to a training period in Germany, likely will be 3-6 trips there for 2/3 weeks a time within their first 6 months.
\n
• Bachelor's degree in Computer Engineering, Computer Science, Software Engineering, Electrical Engineering, or related field.
\n
• 5+ years of software development experience focused on embedded systems or industrial applications.
\n
• Strong proficiency in modern C/C++ and object-oriented programming.
\n
• Experience developing software applications under Linux.
\n
• Understanding of object-oriented design (OOD), software architecture, and design patterns.
\n
• Experience with multithreaded and concurrent application development.
\n
• Familiarity with networking fundamentals and embedded communication systems.
\n
• Experience developing and executing unit and integration tests.
\n
• Proficiency with Git version control.
\n
• Experience working in Agile development environments.
\n
• Familiarity with Jira and Confluence.
\n
• Strong analytical, troubleshooting, and problem-solving abilities.
\n
• Excellent verbal and written communication skills.
\n
• Ability to work independently and within a global cross-functional team.
\n
• Technical leadership or mentoring experience.
\n
\n
Preferred Skills and Qualifications
\n
• 8+ years of embedded software development experience.
\n
• Experience with distributed systems and embedded servers.
\n
• Experience developing applications using Qt and QML.
\n
• Experience with industrial communication protocols including Modbus and CAN.
\n
• Experience developing software for STM32, ESP32, or similar microcontroller platforms.
\n
• Understanding of real-time systems and fail-safe software design principles.
\n
• Experience with automated testing frameworks and CI/CD pipelines.
\n
• Experience with UML modeling and software architecture documentation.
\n
• Experience with MQTT, REST APIs, and cloud-connected applications.
\n
• Experience with Microsoft Azure, IoT platforms, databases, AI, or edge computing solutions.
\n
• Experience with cybersecurity principles and secure software development practices.
\n
• Experience with data analytics and data-driven product development.
\n
• Relevant certifications in Linux, Embedded Systems, Software Testing, Functional Safety, Cybersecurity, Agile Development, Azure/AWS, Qt, or Industrial Networking (CAN, Modbus, MQTT) are considered an asset.
