Description

JOB DESCRIPTION:

 We are looking for a Software Engineer - Embedded Linux and Yocto Development to join our growing team in Indianola, PA United States!

 Job Responsibilities:

  • Use the Yocto Project to configure, customize, and build Linux distributions for embedded systems.
  • Develop, modify, and maintain Linux kernel drivers using C.
  • Create, optimize, and maintain robust and efficient applications for embedded Linux using C++.
  • Integrate third-party libraries, tools, and drivers into custom Linux distributions.
  • Ensure the safety, performance, and reliability of embedded systems.
  • Debug, test, and validate software on target hardware platforms.
  • Collaborate with cross-functional teams to design and implement software solutions.

 Required Qualifications:
Educational Background:

  • Bachelor's or higher degree in Computer Science, Computer Engineering, Electrical Engineering, or related field.

 Technical Expertise:

  • Strong experience with the Yocto Project, including writing recipes, layers, and customizing images.
  • Proficiency in C for developing Linux kernel drivers.
  • Advanced programming skills in C++ (C++11 or later preferred) for application development.

Embedded Systems Knowledge:

  • Familiarity with ARM or other embedded architectures.
  • Experience with debugging tools and methods for embedded systems (e.g., GDB, JTAG, oscilloscope).

Linux Development:

  • Hands-on experience with building, configuring, and customizing the Linux kernel.
  • Familiarity with tools like menuconfig, make, and kernel patches.
  • Knowledge of device trees and hardware abstraction layers.

 Performance and Safety:

  • Strong understanding of real-time constraints and safety-critical development practices.
  • Ability to write thread-safe and high-performance code for embedded systems.

 Version Control:

  • Proficiency with Git for version control and collaborative development.

 Communication and Collaboration:

  • Ability to write clear technical documentation.
  • Excellent verbal and written communication skills.
  • Strong problem-solving skills and the ability to work collaboratively in a team environment.

 Preferred Qualifications:

  • Familiarity with open-source development and contributions.
  • Knowledge of networking protocols and related debugging (TCP/IP, CAN, UART, SPI, etc.).
  • Experience with automated build systems and CI/CD pipelines (e.g., GitHub Actions).
  • Familiarity with cross-compilation and debugging on resource-constrained hardware.

 Must Have:

  • Strong experience with the Yocto Project, including writing recipes, layers, and customizing images.
  • Proficiency in C for developing Linux kernel drivers.
  • Advanced programming skills in C++ (C++11 or later preferred) for application development.

 Nice to Have:

  • Hands-on experience with building, configuring, and customizing the Linux kernel.

Key Skills
Education

Bachelor's or higher degree in Computer Science, Computer Engineering