We are seeking a motivated ICT student for an internship focused on evaluating the feasibility and impact of transitioning from C/C++ to Rust in embedded systems development. This internship will explore safety, correctness, tooling, training needs, and the practical implications of adopting Rust in a professional embedded software environment.
Objectives
Compare Rust with C and C++ in terms of:
Memory safety
Concurrency safety
Compile-time correctness guarantees
Runtime performance
Evaluate the maturity and suitability of Rust for embedded systems:
Support for microcontrollers and real-time systems
Availability of crates and libraries
Community and vendor support
Assess the transition effort:
Required training for embedded software engineers
Migration strategies (partial vs. full rewrite)
Estimated time frame for adoption
Identify tooling requirements:
Open-source vs. vendor-supported tools
IDEs, debuggers, build systems, CI/CD integration
Highlight potential disadvantages or limitations:
Ecosystem maturity
Integration with existing C/C++ codebases
Long-term maintainability
Deliverables
A comparative report with benchmarks and case studies
A transition roadmap with training recommendations
A tooling overview and setup guide
Presentation of findings to the R&D team
Profile
ICT or Computer Science student with interest in embedded systems
Familiarity with C/C++ and basic knowledge of Rust
Analytical mindset and ability to work independently
Strong communication skills for presenting technical findings
Duration
3 to 6 months (flexible based on academic schedule)
Benefits
Hands-on experience with cutting-edge technologies
Mentorship from experienced embedded software engineers
Opportunity to influence future technology choices in a professional R&D setting