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:
- Embedded Linux experience is essential, including: Buildroot, working in kernel space, and secure builds. Past contributions to Kernel.org are a plus.
- Demonstrated knowledge of the design, coding, testing, verification, validation, and support of embedded software using C/C++ - Python experience is a plus
- Understanding of control systems theory and experience implementing on Microcontrollers
- Ethernet and WiFi networking experience
- Familiarity with the following hardware concepts: GPIO, I2C, SPI, ADC, DAC, UART, DMA, flash memory, low power microprocessor modes
- 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