Embedded Software Engineer 3
Location: Mossville, IL
Duration: 12 Months
Job Description:
The Embedded Software Engineer is responsible for applying
the principles of computer science and mathematical analysis to the design,
development, testing, and evaluation of embedded software and systems. This
includes developing operating systems-level software, compilers, and network
distribution software for various applications such as medical, industrial,
military, aerospace, and general computing.
Key Responsibilities:
- Design & Development: Implement software for
embedded devices and systems from requirements to production and
deployment, including product lines.
- Database Management: Write and code logical
and physical database descriptions, specifying identifiers for database
management systems or leading others in coding descriptions.
- System Optimization: Analyze and enhance
the efficiency, stability, and scalability of system resources.
- Project Estimation: Review project
requests to estimate time and cost required to accomplish database-related
tasks.
Required Skills:
- Technical Skills:
- Solid programming
experience in C or C++.
- Knowledge of embedded
systems and development software such as SQL, VisualBasic,
etc.
- Understanding of
computer hardware and software, including reading schematics and data
sheets.
- Proficiency in Git
version management (Clearcase preferred).
- Experience with device
driver development, hardware diagnostics, and OS integration.
- Familiarity with
real-time embedded systems and development tools such as Bash, Python,
and ANSI C.
- Soft Skills:
- Strong verbal and
written communication.
- Problem-solving skills,
with an ability to troubleshoot and resolve issues.
- Interpersonal skills
and customer service orientation.
- Ability to analyze
technical issues and make necessary system changes.
Education & Experience:
- Required:
- Bachelor’s degree in Computer
Science, Software Engineering, Computer Engineering, or
a related field.
- 5-8 years of industry experience
in embedded software development.
- Relevant
internship/project experience may count toward the experience
requirement, including Master's or higher degrees.
- Desired:
- Familiarity with Agile
software development processes.
- Experience with
embedded electronics controls, display, telematics software, and device
driver development.
Story Behind the Need – Business Group & Key
Projects:
This role involves working with the team to research,
design, develop, and test low-layer software (e.g., OS integration, I/O
drivers, boot). The software interfaces with Caterpillar's electronic control
hardware (ECUs/ECMs). The candidate will contribute to the design and
enhancement of embedded systems that support various industries including
automotive and industrial equipment.
- Position's Contributions:
- Participate in concept,
design, testing, documentation, and promotion of new software features.
- Evaluate new tools,
technologies, and development processes.
- Support software
lifecycle management through version control and configuration
management.
- Communicate technical
information to stakeholders including customers, team members, and
suppliers.
- Team Culture:
- Collaborative
environment with a focus on innovation and continuous improvement.
- Team-oriented with
opportunities for mentorship and peer feedback.
Reason for the Request:
This position is a backfill for a previous role and
will support critical ongoing software development efforts related to embedded
systems for electronic controls hardware.
Typical Day in the Role:
- Work is primarily
off-site, but on-site hardware engagement is required as part of
the workload.
- Tasks may include:
- Reading and analyzing
client requirements.
- Researching hardware
interfacing needs.
- Designing embedded
software solutions and collaborating with team members.
- Coding solutions in C
and testing with hardware (unit testing, regression testing).
- Managing versioning and
troubleshooting/debugging issues.
Work Environment:
- Hybrid position: A minimum of three
days per week onsite.
- The role involves a mix
of independent work, team collaboration, and direct engagement with
hardware.
Candidate Requirements:
- Education:
- Minimum: Bachelor’s in Computer
Engineering, Electrical Engineering, Software Engineering,
or relevant fields.
- Preferred: Master's degree or
relevant internship/project experience.
- Experience:
- Required: 5-8 years of relevant
industry experience, especially in embedded software development.
- Disqualifiers: Experience primarily
in test engineering or controls engineering (should not be the main focus
of the candidate’s career).
- Technical Skills:
- Required: Experience in
real-time embedded systems, device driver development, operating system
integration, hardware diagnostics, and peripheral interfacing.
- Proficiency with
version control systems (Git, Clearcase).
- Soft Skills:
- Verbal and written
communication skills, problem-solving ability, and teamwork are critical.
- Disqualifiers:
- Candidates with test
engineering or controls engineering as their primary
experience should not apply.