Job Openings Senior Software Engineer (Embedded Linux)

About the job Senior Software Engineer (Embedded Linux)

Our client, a global leader for power reliability products is looking for a Senior Software Engineer. Candidates must have a strong background in design and development of embedded software on custom electronics including experience in the following areas: C/C++, Linux Kernel, toolchain, licensing, and hands-on hardware experience with ARM MCUs. This is a remote position, located in the United States with occasional travel (10%) to one of our facilities may be required for development, system testing, and debug. This position will report to the Manager of Embedded Software.

Responsibilities:

• Develop, debug, and support embedded Linux firmware using C/C++ for the ARM family of processors.

• Create Buildroot / Yocto Linux distributions

• Create and maintain a secure U-Boot for current and next generation platforms

• Update Linux device drivers including interrupt handling, I/O, and networking

• Maintain procfs and sysfs pseudo filesystems and flattened device tree files

• Utilize Bitbucket code repositories to manage and merge features and issues

• Create SBOMs, identify and mitigate Common Vulnerabilities and Exposures (CVE)

• Document designs in Microsoft Word, Jira, and Confluence

• Work collaboratively with…

• Architects to ensure solid Linux platform requirements

• Software application and testing engineers to deliver reliable, real-time, mission critical embedded software

• DevOps engineers to perform secure CI/CD builds

Qualifications:

• Being a team player is essential

• BS degree in Computer Science, Computer Engineering, Electrical Engineering, or equivalent

• Previous experience (and job title) as a Sr. Software Engineer or Sr. Software Developer role

• 7+ years embedded real-time software development experience including:

o Embedded Linux experience is essential, including: Buildroot, working in kernel space, and secure builds. Past contributions to Kernel.org are a plus.

o Demonstrated knowledge of the design, coding, testing, verification, validation, and support of embedded software using C/C++ - Python experience is a plus

o Understanding of control systems theory and experience implementing on Microcontrollers

o Ethernet and WiFi networking experience

o Familiarity with the following hardware concepts: GPIO, I2C, SPI, ADC, DAC, UART, DMA, flash memory, low power microprocessor modes

o Ability to read electronic schematics

• Experience with configuration management / process tools: Jira, Confluence, and Bitbucket/Git

• Excellent written and verbal communications skills

• Working knowledge of Agile methodology fundamentals and continuous process improvement

• Continuous learner and self-starter

• Continuous Integration / Continuous Deploy (CI/CD) build familiarity including Jenkins is a plus

• Experience with electrical power distribution (grid) principles is a plus

• Ability to travel less than 10% of the time with some periods lasting more than a week