Job Title: Embedded Software Engineer
Location: Sioux Falls, SD or Oak Brook, IL
Experience: 7+ Years
Position Summary:
We are seeking an experienced
Embedded Software Engineer
with strong expertise in
C++ development on Linux-based embedded systems
. The ideal candidate will design, develop, test, and maintain embedded software applications, including touch screen and HMI solutions, while working closely with cross-functional engineering teams throughout the product development lifecycle.
Key Responsibilities
-
Design, develop, and maintain embedded software applications using
C++14/C++17
.
-
Develop software for
Linux-based embedded systems
and touch screen interfaces.
-
Implement and optimize
multithreaded
applications for performance and reliability.
-
Apply
object-oriented programming (OOP)
principles and design patterns in software development.
-
Debug, troubleshoot, and resolve software defects across development and production environments.
-
Collaborate with hardware, systems, QA, and product teams to define and implement software requirements.
-
Maintain source code using
Git
and track development activities in
Jira
.
-
Participate in code reviews, software integration, testing, and release activities.
-
Support software maintenance, feature enhancements, and continuous improvement initiatives.
-
Mentor junior engineers and contribute to technical design discussions.
Required Qualifications
-
Bachelor’s degree in Computer Science, Software Engineering, Electrical Engineering, or a related field.
-
7+ years of experience in embedded software development.
-
Strong programming skills in
C++14/C++17
.
-
Hands-on experience with
Linux operating systems
and embedded Linux environments.
-
Solid understanding of
multithreading
, synchronization, and concurrent programming.
-
Strong knowledge of
object-oriented programming
concepts and software design principles.
-
Experience with
Git
for version control and
Jira
for issue tracking.
-
Excellent debugging, analytical, and problem-solving skills.
-
Strong written and verbal communication skills.
Preferred Qualifications
-
Experience developing embedded HMI or touch screen applications.
-
Familiarity with embedded systems architecture and hardware/software integration.
-
Experience working in Agile development environments.
-
Leadership or mentoring experience in software engineering teams.
Technical Skills
-
Languages:
C++, C++14, C++17
-
Operating Systems:
Linux, Embedded Linux
-
Concepts:
Object-Oriented Programming (OOP), Multithreading, Concurrent Programming
-
Tools:
Git, Jira
-
Development:
Embedded Software, Debugging, Testing, Software Integration, Agile Methodologies