Software Engineer Placement/Internship: GNAT DAS - CHERI On-target Fuzz Testing
Software Engineer Placement/Internship: GNAT DAS - CHERI On-target Fuzz Testing

Software Engineer Placement/Internship: GNAT DAS - CHERI On-target Fuzz Testing

Bristol Internship No home office possible
A

At a Glance

  • Tasks: Join us to develop cutting-edge fuzz testing solutions for Ada applications on advanced hardware.
  • Company: AdaCore helps developers build safe, secure software for industries like aerospace, defense, and automotive.
  • Benefits: Enjoy a flexible work-life balance, continuous training, and a supportive, diverse work environment.
  • 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: Internship duration is 3 to 9 months in our Bristol office during 2025.

AdaCore: Helping Developers Build Software That Matters Have you got what it takes to succeed The following information should be read carefully by all candidates. 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 (https://www.adacore.com/dynamic-analysis) includes GNATfuzz (https://www.adacore.com/dynamic-analysis/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 (https://www.adacore.com/papers/elevate-security-confidence-with-memory-safe-hardware-and-software) 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

At AdaCore, we pride ourselves on being an exceptional employer, particularly for our Software Engineer Placement/Internship in Bristol. Our culture of innovation and collaboration fosters a supportive environment where you can thrive while working on cutting-edge technologies in high-integrity software development. We offer flexible work arrangements, continuous training, and personalized onboarding to ensure your professional growth and a healthy work-life balance, making this an ideal opportunity for aspiring developers.
A

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 and dynamic analysis tools, especially GNATfuzz and AFL++. Understanding how these tools work will give you a significant advantage during the interview process.

✨Tip Number 2

Gain hands-on experience with CHERI architecture. If you can, set up a development environment that allows you to experiment with CHERI-compliant microprocessors and understand their instruction set.

✨Tip Number 3

Engage with the AdaCore community or forums. Networking with current employees or other candidates can provide insights into the company culture and the specific challenges they face in fuzz testing.

✨Tip Number 4

Prepare to discuss your previous projects or experiences related to software development, particularly those involving dynamic analysis or compiler technologies like GCC or LLVM. This will showcase your relevant skills and enthusiasm for the role.

We think you need these skills to ace Software Engineer Placement/Internship: GNAT DAS - CHERI On-target Fuzz Testing

Fuzz Testing
Dynamic Analysis
Compiler Development
GCC
LLVM
CHERI Instruction Set Architecture
Software Development
Problem-Solving Skills
Attention to Detail
Collaboration
Adaptability
Programming in Ada, C, and C++
Understanding of POSIX-based Operating Systems
Knowledge of Advanced Algorithms

Some tips for your application 🫡

Understand the Role: Make sure to thoroughly read the job description and understand the specific requirements and goals of the internship. Highlight your relevant experience in fuzz testing, dynamic analysis, or compilation in your application.

Tailor Your CV: Customize your CV to emphasize your skills and experiences that align with the position. Include any projects or coursework related to fuzz testing, CHERI architecture, or software development that demonstrate your capabilities.

Craft a Strong Cover Letter: Write a compelling cover letter that explains why you are interested in this internship at AdaCore. Discuss your passion for software development and how your background makes you a suitable candidate for the role.

Showcase Your Projects: If you have worked on relevant projects, whether academic or personal, be sure to mention them. Provide links to your GitHub or any other portfolio where they can see your work, especially if it involves fuzz testing or related technologies.

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 implications for software development. Showing that you understand how CHERI can enhance security will impress your 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 solutions.

Software Engineer Placement/Internship: GNAT DAS - CHERI On-target Fuzz Testing
AdaCore
A
  • Software Engineer Placement/Internship: GNAT DAS - CHERI On-target Fuzz Testing

    Bristol
    Internship

    Application deadline: 2027-01-31

  • A

    AdaCore

Similar positions in other companies
UK’s top job board for Gen Z
discover-jobs-cta
Discover now
>