North Atlantic Industries is looking for a Senior Software Engineer I to develop software programs that align with business goals, improve existing software functionality, and support their Single Board Computer (SBC) product line through Board Support Package (BSP) development, Embedded and Software Support Kit (SSK) development, and testing.
Requirements
- Linux kernel and driver development for BSPs, including creation of drivers from datasheets, porting from one Linux distro to another as well as porting from one Linux kernel version to another, and using tools such as Yocto or Buildroot.
- Ability to work with hardware to develop and debug software which includes embedded code as well as test software.
- Familiar with various operating systems (VxWorks, Linux, PetaLinux, Deos, Windows, etc)
- Robust knowledge of C
- For individuals who are responsible for GUI-based test applications, must be proficient in C++, C-Sharp, GUI programming, Object-Oriented design and programming.
- Experience using version control systems (Git) for collaborative development, code management, and patch integration.
- For those individuals involved in the development of Board Support Packages (BSP), responsibilities include performing initial board configuration on new hardware, porting software from reference designs, and developing custom device drivers and applications.
Responsibilities
- Board Support Package (BSP) development of software needed to support the Single Board Computer (SBC) product line.
- Development of software including Embedded and Software Support Kit (SSK).
- Testing including Design Verification Testing (DVT) and Automated Testing (ATP) needed to support the motherboard or module products.
- Collaborating with the design and test engineers to develop test plans and test procedures.
- Linux kernel and driver development for BSPs, including creation of drivers from datasheets, porting from one Linux distro to another as well as porting from one Linux kernel version to another, and using tools such as Yocto or Buildroot.
- Performing initial board configuration on new hardware, porting software from reference designs, and developing custom device drivers and applications.
- Developing kernel-level drivers based on hardware specifications, porting drivers across various Linux distributions, and configuring custom Linux-based environments using tools such as Yocto or Buildroot.
Other
- Taking ownership of software-related issues and working toward finding solutions in a timely and efficient manner
- Assisting and designing, coding, and debugging software as needed
- Assisting with generation and review of product and design documentation as needed
- Interfacing with design and test engineers throughout the product development cycle.
- Interfacing with embedded hardware and system engineers to define and design system solutions.