Sr. Software Engineer – Linux Kernel and Drivers
Sr. Software Engineer – Linux Kernel and Drivers
Company Overview
Founded in 1969, KitchenBrains®, continually leads the industry in the design, development, manufacturing and deployment of controls, monitors, sensors and IoT connectivity for foodservice outlets and original equipment manufacturers (OEMs) that reduce costs, drive productivity, and increase guest satisfaction. Kitchen Brains brands, including (FAST.)®, Modularm® and KitchenEssentials, feature a growing number of products that incorporate KitchenKorrect™ IoT/cloud connectivity, and can be found in leading QSRs, casual and fine dining restaurants, convenience and grocery stores, schools, hospitals, stadiums and more globally.
Position Summary
As a Sr. Software Engineer – Linux Kernel and Drivers, at our organization, you will play a pivotal role in the development and deployment of cutting-edge embedded systems. Leveraging your extensive experience in software development, particularly in Embedded Linux environments, you will collaborate cross-functionally to bring innovative products to market. Your expertise will be crucial in ensuring the functionality, quality, and reliability of our embedded systems.
As a Sr. Software Engineer – Linux Kernel and Drivers, you will report to the Vice President of Embedded Engineering.
Essential Duties and Responsibilities
- Embedded Linux Expertise: Utilize your in-depth knowledge of Embedded Linux to develop, maintain, and optimize software systems running on embedded platforms.
- Software Development: Apply your substantial software development experience in C/C++ to design, code, and test software modules, ensuring they meet performance and reliability requirements.
- Software Version Management: Implement effective software version management practices to maintain codebase integrity and facilitate collaboration among development teams.
- Debugging and Testing: Employ software debuggers, emulators, compilers, linkers, and build environments to diagnose and resolve software issues. Conduct thorough testing to validate software functionality.
- Product Launch: Participate in the successful launch of products into production by collaborating with cross-functional teams and addressing software-related challenges.
- Hardware Integration: Read and interpret electrical schematics to seamlessly integrate and debug hardware, software, and sensors. Resolve issues related to hardware-software interactions.
- Lab Equipment: Leverage your knowledge of and experience with lab equipment, including oscilloscopes, meters, and logic analyzers, to support development and debugging efforts.
- Project Management: Plan, estimate, sequence, and measure completed work, ensuring adherence to project timelines and goals.
- Cross-Functional Collaboration: Collaborate extensively across departments to investigate, identify root causes, and resolve technical issues that may arise during development and deployment.
- Software Design and Code Reviews: Lead and participate in software design and code reviews to maintain code quality, adherence to coding standards, and best practices.
- Perform function verification and cooking performance of controllers on appliances such as fryers, ovens etc.
- Maintain electronic lab equipment calibrations and engineering support as required.
Required Education and Experience
- Experience with Embedded Linux.
- Bachelor’s degree in Computer Science or Electrical Engineering.
- Minimum 7 years software development experience using C/C++.
- Software Version Management.
- Use of software debuggers and emulators, compilers, linkers, and build environments.
- Experience launching products into production.
- Must be able to read electrical schematics and integrate and debug hardware, software, sensors.
- Have knowledge of and experience using Lab equipment (oscilloscopes, meters, logic analyzers etc.)
- Conduct Software Design and Code reviews.
Beneficial Knowledge & Skills
- Formal Software Behavior specification approaches such as UML, OO, State Machines, Data Flow Diagrams, and Flow-Charts.
- Experience with Software Quality Control, issues tracking, gate reviews, review checklists.
- Hardware design and troubleshooting knowledge.
- Formal Software Test Methods, tools, and procedures.
- Software Quality Assurance measurement and improvement.
- Development of software under IEC, ISO, UL, DO-178C, or other formal software Quality Management Systems. The ISO/IEC 12207 Systems and software engineering – Software life cycle processes.
Kitchen Brains is an Equal Opportunity Employer