Senior Software Engineer - Yocto - Centum Search
Wilmington, MA
About the Job
The Senior Software Engineer (Yocto/Linux) is a crucial member of our development team, actively contributing to project development through various stages, from requirements review to release management. Responsibilities include creating and maintaining software documentation, writing code adhering to design specifications, conducting testing, and implementing fixes and changes. Essential qualifications include Yocto experience, strong Linux internals understanding, proficiency in package management, troubleshooting hardware/software issues, reading schematics, familiarity with processor fundamentals, and C++ embedded development. A technical degree with relevant experience is required. Preferred qualifications include familiarity with regulated industry development processes and exposure to IEC62304 standards.
Essential Functions:
- Participates as an active member on a development team. This includes participating in requirements review, design reviews, code reviews, test case reviews, and team meetings.
- Participates as an active member on a project development team. This includes requirements change control, defect management, risk analysis, and release management.
- Creates/Maintains software requirement/functional specifications.
- Creates/Maintains software architecture documentation.
- Creates/Maintains software (component) design documentation.
- Creates/Maintains software source code that adheres to design documentation.
- Performs unit testing and/or code reviews as per project policy.
- Performs integration testing to ensure software functions with application and with electrical/mechanical devices.
- Evaluates, investigates, and implements fixes to assigned software defects.
- Evaluates, investigates, and implements assigned software change proposals.
- Provides level of effort for assigned software activities.
- Tracks personal estimates over time in order to improve accuracy.
- Follows project and corporate plans, standards, and procedures to perform development.
- Performs other related duties as assigned.
Required Qualifications:
- Yocto Experience:
- Demonstrated proficiency in writing recipes
- Ability to create images
- Collaborative experience with DevOps for setting up Development Environments
- Strong understanding of Linux internals:
- Knowledge of hardware/software interaction, including bootloaders (especially u-boot and grub) and system boot sequences
- Understanding of kernel structure
- Knowledge of packages and package management:
- Proficiency in patching and apt system
- Capability to troubleshoot hardware/software issues:
- Skilled in debugging driver-level issues in the operating system
- Proficiency in reading schematics:
- Comprehensive understanding of hardware components from an electrical standpoint, encompassing NOR, NAND, SPI flash, and bus comprehension
- Familiarity with processor fundamentals such as x86 and ARM
- Experience with C++ embedded development
- Bachelors Degree plus a minimum 4 years of related experience or Masters Degree plus a minimum 2 years of related experience or waiver based on experience. Degree should be in a technical discipline such as Chemistry, Math, Physics, Engineering, or Computer Science.
- Proficiency with a personal computer and software packages.
Preferred Qualifications:
- Thorough understanding of development processes within a regulated industry
- Prior exposure to IEC62304 standards
- Ability to build and customize Petalinux