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