Engineer Internship: Using AI to improve the readability, maintainability, and robustness of NFC firmware code F/M
NXP
Job Summary
This engineering internship focuses on leveraging AI to enhance NFC firmware code. Key objectives include identifying and removing dead code, analyzing and improving embedded real-time system issues like unprotected shared resource access, deriving a static programming model from critical hardware abstraction layer implementations, and evaluating AI's effectiveness in interpreting and resolving Coverity static analysis reports to streamline bug triage processes.
Must Have
- Final-year Master’s student in electronics, robotics, or software engineering
- Strong programming skills in C (low-level) and Python (high-level)
- Solid understanding of real-time systems and processor architecture
Job Description
Internship Goals
1. Identify and Remove Dead Code and Compilation Flags in NFC firmware repository
- Use static analysis and AI-assisted code navigation to detect unused code paths and obsolete compilation flags.
- Propose and validate clean-up patches to streamline the codebase and improve maintainability.
2. Analyze Typical Embedded Real-Time Issues
- Investigate common embedded system challenges such as:
- Unprotected access to shared resources (e.g., global variables, hardware registers).
- Unsuitable processing within Interrupt Service Routines (ISRs).
- Use AI tools to detect and suggest improvements for these issues.
3. Derive a Static Programming Model from Critical HAL Implementations
- Focus on HW abstraction layers modules that are key for our products (Power, Clock and IO controllers).
- Analyze usage patterns and derive a static programming model for various use-cases.
- Validate the model against hardware documentation (e.g., user manuals, reference guides).
4. Evaluate AI Capabilities on Coverity Reports
- Explore how AI tools can assist in interpreting and resolving issues flagged by Coverity static analysis.
- Assess the relevance and accuracy of AI-generated suggestions.
- Propose a workflow to integrate AI into the static analysis and bug triage process.
Candidate Profile
- Final-year Master’s student in electronics, robotics, or software engineering.
- Strong programming skills in C (low-level) and Python (high-level).
- Solid understanding of real-time systems and processor architecture.
- Comfortable working in an international team environment.
- Passionate about programming and eager to explore new technical domains.
3 Skills Required For This Role
Oops
Game Texts
Python