At a Glance
- Tasks: Join us to develop cutting-edge fuzz testing solutions for Ada applications on CHERI hardware.
- Company: AdaCore helps developers build safe, secure software for industries like aerospace, defense, and automotive.
- Benefits: Enjoy a flexible work environment, continuous training, and a supportive culture that values diversity.
- Why this job: Be part of an innovative team tackling real-world challenges in high-integrity software development.
- Qualifications: Experience or interest in fuzz testing, dynamic analysis, and familiarity with GCC or LLVM is a plus.
- Other info: This internship lasts 3 to 9 months in our Bristol office, starting in 2025.
AdaCore: Helping Developers Build Software That Matters
Everything we do at AdaCore is centered around helping developers build safe, secure and reliable software.
For 30 years, we've partnered with global leaders in aerospace & defense, air traffic management, space, railway and financial services. We've developed tools and services simplifying high-integrity software development through a subscription-based model. As demand for secure applications grows in industries like automotive, medical, energy, and IoT, we're adapting our proven technologies to assist a new generation of developers.
Our 150 global experts based in the US, France, Germany, the UK, and Estonia, collectively develop cutting-edge technologies to address the challenges of high-grade software development.
Joining AdaCore is about joining a culture of innovation, openness, collaboration and dependability, which defines how we work together, with our customers and partners.
Context
Developed at AdaCore, the GNAT DAS tool suite ( includes GNATfuzz ( an advanced fuzz testing solution for Ada applications. GNATfuzz was designed to utilize multiple backend fuzz testing solutions, including AFL++, and includes advanced branch-solving algorithms like RedQueen and Symbolic Execution. GNATfuzz targets and finds bugs in Ada applications and linked C and C++ libraries. Currently, GNATfuzz executes on POSIX-based OSs (Linux) on X86 64-bit architectures, and AdaCore is keen to explore options for on-target fuzzing on advanced anomaly detection hardware like CHERI-compliant microprocessors.
Furthermore, we would like to understand if the capability would require an OS to provide features like file IO or if bare-metal solutions are also feasible. In addition, an in order to utilize the smart grey box (coverage aware) fuzz testing aspects of AFL++, we would need to migrate the compiler plugin responsible for performing the instrumentation (using either the GCC or LLVM version), as well as the main afl-fuzz tool responsible for performing mutations and test execution. Alternative solutions would be to look at the LibFuzzer tool within the LLVM standard library. AdaCore is actively working on CHERI compilers for Morello through our GNAT Pro for CHERI initiative ( and Fuzz testing Ada and C applications on CHERI is a highly desirable goal.
Goals
The internship's general goal is to work towards a complete fuzz testing solution on CHERI. There are multiple directions that can be taken:
- Port an existing AFL++ compiler to a CHERI target. For example, afl-llvm-fast on CheriBSD on Morello or RISC-V.
- Port afl-fuzz to a CHERI target. For example, afl-llvm-fast on CheriBSD on Morello or RISC-V.
- Port LibFuzzer to a CHERI target. For example, LibFuzzer on CheriBSD on Morello or RISC-V.
Skills required/nice to have:
- Experience/interest in fuzz testing or other forms of dynamic analysis and/or compilation (GCC or LLVM)
- Experience in the CHERI Instruction Set Architecture
Timeframe & Location
During 2025 – 3 to 9 months – Bristol office
We are looking for a candidate who can do a placement with an agreement established by the university/school.
Beyond the job
We're a global organization driven by diverse backgrounds, fostering innovation through an open exchange of ideas. We welcome applicants of all backgrounds, celebrating diversity in ethnicity, nationality, gender, age, religion, abilities, sexual orientation, veteran or marital status.
Our commitment is to help our teammates, wherever they are based, feel comfortable and satisfied, by encouraging flexibility to ensure them a healthy work-life balance. Additionally, we prioritize individual development by offering continuous training from day one with a personalized onboarding plan.
Software Engineer Placement/Internship: GNAT DAS - CHERI On-target Fuzz Testing employer: AdaCore
Contact Detail:
AdaCore Recruiting Team
StudySmarter Expert Advice 🤫
We think this is how you could land Software Engineer Placement/Internship: GNAT DAS - CHERI On-target Fuzz Testing
✨Tip Number 1
Familiarize yourself with fuzz testing techniques and tools, especially AFL++ and LibFuzzer. Understanding how these tools work will give you a significant advantage during the interview process.
✨Tip Number 2
Gain hands-on experience with the CHERI Instruction Set Architecture. If you can demonstrate practical knowledge or projects related to CHERI, it will show your commitment and readiness for the role.
✨Tip Number 3
Engage with the AdaCore community through forums or social media. Networking with current employees or other candidates can provide insights into the company culture and expectations.
✨Tip Number 4
Prepare to discuss your problem-solving approach in dynamic analysis and compilation. Be ready to share examples of challenges you've faced and how you overcame them, as this aligns with the innovative spirit of AdaCore.
We think you need these skills to ace Software Engineer Placement/Internship: GNAT DAS - CHERI On-target Fuzz Testing
Some tips for your application 🫡
Understand the Role: Before applying, make sure you fully understand the responsibilities and goals of the Software Engineer Placement/Internship. Familiarize yourself with fuzz testing, CHERI architecture, and the tools mentioned in the job description.
Tailor Your CV: Highlight relevant experience and skills in your CV that align with the requirements of the internship. Emphasize any experience with fuzz testing, dynamic analysis, or familiarity with GCC and LLVM.
Craft a Compelling Cover Letter: Write a cover letter that showcases your passion for software development and your interest in high-integrity software. Mention specific projects or experiences that relate to the goals of the internship, particularly in relation to fuzz testing and CHERI.
Showcase Your Knowledge: In your application, demonstrate your understanding of AdaCore's mission and the importance of secure software development. Mention any relevant coursework, projects, or research that aligns with their focus on safety and reliability in software.
How to prepare for a job interview at AdaCore
✨Understand Fuzz Testing
Make sure you have a solid grasp of fuzz testing concepts and methodologies. Be prepared to discuss your experience or interest in dynamic analysis, as this will be crucial for the role.
✨Familiarize Yourself with CHERI
Research the CHERI Instruction Set Architecture and its applications. Showing that you understand how it relates to fuzz testing and software security will impress the interviewers.
✨Showcase Your Problem-Solving Skills
Be ready to tackle hypothetical scenarios related to fuzz testing on CHERI targets. Demonstrating your analytical thinking and problem-solving abilities will highlight your fit for the internship.
✨Emphasize Collaboration and Innovation
AdaCore values a culture of collaboration and innovation. Share examples from your past experiences where you worked effectively in a team or contributed to innovative projects.