Overview:
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:
1. Compare Rust with C and C++ in terms of:
2. Memory safety
3. Concurrency safety
4. Compile-time correctness guarantees
5. Runtime performance
6. Evaluate the maturity and suitability of Rust for embedded systems:
7. Support for microcontrollers and real-time systems
8. Availability of crates and libraries
9. Community and vendor support
10. Assess the transition effort:
11. Required training for embedded software engineers
12. Migration strategies (partial vs. full rewrite)
13. Estimated time frame for adoption
14. Identify tooling requirements:
15. Open-source vs. vendor-supported tools
16. IDEs, debuggers, build systems, CI/CD integration
17. Highlight potential disadvantages or limitations:
18. Ecosystem maturity
19. Integration with existing C/C++ codebases
20. Long-term maintainability
Deliverables:
21. A comparative report with benchmarks and case studies
22. A transition roadmap with training recommendations
23. A tooling overview and setup guide
24. Presentation of findings to the R&D team
Profile:
25. ICT or Computer Science student with interest in embedded systems
26. Familiarity with C/C++ and basic knowledge of Rust
27. Analytical mindset and ability to work independently
28. Strong communication skills for presenting technical findings
Duration:
29. 3 to 6 months (flexible based on academic schedule)
Benefits:
30. Hands-on experience with cutting-edge technologies
31. Mentorship from experienced embedded software engineers
32. Opportunity to influence future technology choices in a professional R&D setting