Linux Software Engineer

Job Description

GENERAL PURPOSE:This position is responsible for low-level embedded software development on Linux, including kernel, driver, and boot loader work, as well as board bring-up and hardware validation. This position will interface closely with hardware and FPGA engineers to ensure that hardware designs satisfy software needs, and that software designs satisfy hardware needs.


  • Design and develop software for our core Linux environments, including the kernel, drivers, bootloader, and build tools.
  • Identify and define both external and inter-processor communications specifications that interact with kernel space.
  • Review hardware schematics to identify software concerns.
  • Collaborate with hardware and FPGA engineers to perform board bring-up and low-level hardware validation for new designs.
  • Demonstrate our five core values of Integrity, Customer Responsiveness, Innovation, Passionate Contribution & Empowerment and Continuous Improvement.
  • Understand workplace hazards and take steps to proactively prevent and report hazards or injuries in the workplace.
  • Cooperate in safety programs, initiatives, and investigations.
  • Perform other duties deemed necessary to support the Company’s business operations.


Essential Knowledge, Skills and Abilities Required:

  • Strong knowledge of C.
  • Familiarity with C++.
  • Ability to read and understand electrical schematics.

Minimum Education and Experience Required:

  • Bachelor’s degree in Computer Science, Electrical Engineering or related field, and a combination of education and experience in embedded software design and development commensurate with the position sought.
  • Experience in embedded Linux kernel/driver development.
  • Experience with OO design and development.
  • Experience with I2C and SPI bus interfaces strongly desired.
  • Experience with TI Sitara, TI 8148, and/or Xilinx Zynq platforms strongly desired.
  • Experience with Yocto / OpenEmbedded strongly desired.

Preferred Qualifications:

  • Experience with VoIP, or A/V streaming over USB/IP a major plus.
  • Experience with full-system performance profiling and test definition a plus.
  • Familiarity with C++, Python, SVN, and git a plus.


  • While performing the duties of this job, the employee is regularly required (for the majority of the working day) to sit and make coordinated movements of the fingers for data entry on a keyboard.
  • Ability to lift up to 25 pounds.
  • General office environment.
  • May require regular ground travel to other company facilities.
  • Long-distance or air travel as needed.

Milestone is proud to be an Equal Opportunity Employer. You will be considered for this position based upon your experience and education, without regard to race, color, religion, age, sex, national origin, sexual orientation, ancestry; marital, disabled or veteran status. We are committed to creating and maintaining a workforce environment that is free from any form of discrimination or harassment.


Skills we're looking for


Minnetonka, MN

How to Apply

Apply online at the Career section at the bottom of our home page or use the URL below:

Job Type