Embedded software engineer (# 6829)

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.
Apply

Apply for this role

Additional questions

The following error(s) occurred:

Hi I'm Dinesh

I manage this role