Internship/Placement - GNAT DAS: AI Automated Fuzz Testing Workflows
Internship/Placement - GNAT DAS: AI Automated Fuzz Testing Workflows

Internship/Placement - GNAT DAS: AI Automated Fuzz Testing Workflows

Internship 500 - 1500 £ / month (est.) No home office possible
A

At a Glance

  • Tasks: Join us to advance AI in automated fuzz testing workflows and make software safer.
  • Company: AdaCore, a leader in reliable software development for 30 years.
  • Benefits: Gain hands-on experience, mentorship, and the chance to work with cutting-edge AI technologies.
  • Why this job: Be at the forefront of AI integration in software testing and contribute to meaningful projects.
  • Qualifications: Strong programming skills in Python and C, with an interest in AI and dynamic analysis.
  • Other info: Dynamic internship with opportunities for research and real-world impact.

The predicted salary is between 500 - 1500 £ per month.

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 have partnered with global leaders in aerospace.

AdaCore would like to understand better AI's benefits over more traditional forms of static analysis. Candidates for this position should have a strong interest in automated dynamic analysis verification and a good understanding of large language models (LLMs) and other AI components. A good working knowledge of Ada, C, and Python is essential. Experience with static parsing language tools like Libclang is highly beneficial.

Goals

The internship goal is to advance the state of the art in automated fuzz testing by integrating AI components into AdaCore's fuzz testing solution: GNATfuzz. This is then split into 2 phases (goal 1 and goal 2)—a research phase and an integration/implementation phase; the number of applicable activities for both goal 1 and goal 2 will depend on the length of the internship and the results of goal 1.

  • Goal 1: Rapid Prototyping of AI integration and assessment, for example, we might:
  • Investigate the benefits of corpus generation via AI.
  • Perform a benchmark comparison of AI vs compiler-generated objects.
  • Generation of interesting values for solving complex branch conditions, which are better at reaching complex code paths and therefore increasing coverage.
  • Investigate the benefits of using AI to provide insights into a function signature for a C application.
  • Identification of pointers to scalar objects and pointers to buffers.
  • Grouping of buffer pointers and size components.
  • Investigate the benefits of using AI to develop an advanced automated project fuzzing workflow.
  • Understanding control flow graphs (statically generated via tools like CLANG).
  • Understanding coverage reports.
  • Using the information to dynamically identify the next best subprogram for fuzzing.
  • Identification of subprograms with high complexity.
  • Identification of components not applicable for fuzzing (blocking calls to external components, infinite main loops as seen in embedded systems, etc.).
  • Goal 2: Targeted feature integration, for example, we might:
  • Following the rapid prototyping/proof of concept phase, multiple directions can be taken depending on the results of goal 1 to integrate the most interesting/beneficial feature into the GNATfuzz product.
  • AI Corpus Generation: Use an LLM to generate a diverse set of valid and boundary-case inputs for a target application based on its function signatures and documentation (if available).
  • Intelligent Fuzzing Workflow Automation with AI: This project tackles the advanced workflow automation aspect of Goal 1. The goal is to move beyond fuzzing a single program and to create an intelligent system that can analyze large projects and decide what subprograms to fuzz and in what order.
  • AI-Assisted Function Signature Analysis for C/C++: This project uses AI to interpret C/C++ function signatures to make fuzzing more effective. Fuzzing C/C++ code can be tricky because of pointers and complex data structures. An AI could help GNATfuzz understand these more clearly.

Skills required/nice to have:

  • Experience/interest in fuzz testing or other forms of dynamic analysis and/or compilation (GCC or LLVM).
  • Good programming skills in Python and C (or Ada).
  • Experience/interest in language interfaces (i.e., libclang).
  • Solid understanding and interest in LLMs and other primary aspects of AI.

Internship/Placement - GNAT DAS: AI Automated Fuzz Testing Workflows employer: AdaCore

At AdaCore, we pride ourselves on fostering a collaborative and innovative work environment where interns can thrive while contributing to meaningful projects in software safety and security. Our commitment to employee growth is evident through hands-on experience with cutting-edge AI technologies and dynamic analysis, all within a supportive culture that values creativity and teamwork. Located in a vibrant tech hub, our team enjoys access to numerous professional development opportunities and a network of industry leaders, making this internship a unique stepping stone for aspiring developers.
A

Contact Detail:

AdaCore Recruiting Team

StudySmarter Expert Advice 🤫

We think this is how you could land Internship/Placement - GNAT DAS: AI Automated Fuzz Testing Workflows

✨Tip Number 1

Network like a pro! Reach out to people in the industry, especially those at AdaCore or similar companies. Use LinkedIn to connect and engage with them; you never know who might have the inside scoop on job openings.

✨Tip Number 2

Prepare for interviews by brushing up on your technical skills. Since this role involves AI and programming, practice coding challenges and be ready to discuss your projects involving Python, C, or Ada. Show us what you've got!

✨Tip Number 3

Tailor your approach! When you apply through our website, make sure to highlight your relevant experience with fuzz testing and AI. We want to see how your skills align with our goals at AdaCore.

✨Tip Number 4

Follow up after interviews! A quick thank-you email can go a long way. It shows your enthusiasm for the position and keeps you fresh in the interviewer's mind. Let us know you're keen to join the team!

We think you need these skills to ace Internship/Placement - GNAT DAS: AI Automated Fuzz Testing Workflows

Automated Dynamic Analysis Verification
Large Language Models (LLMs)
Python Programming
C Programming
Ada Programming
Static Parsing Language Tools
Libclang
Fuzz Testing
Dynamic Analysis
Control Flow Graphs
Coverage Reports
Function Signature Analysis
Complex Data Structures
Workflow Automation

Some tips for your application 🫡

Show Your Passion for AI: When you're writing your application, let us know why you're excited about AI and automated dynamic analysis. Share any projects or experiences that highlight your interest in these areas – we love to see enthusiasm!

Tailor Your Skills to the Role: Make sure to highlight your programming skills in Python, C, or Ada, and any experience with fuzz testing or static analysis tools like Libclang. We want to see how your background fits with what we're doing at AdaCore.

Be Clear and Concise: Keep your application straightforward and to the point. Use clear language to describe your experiences and skills, so we can easily see how you’d be a great fit for our team.

Apply Through Our Website: Don’t forget to submit your application through our website! It’s the best way for us to receive your details and ensures you’re considered for the role. We can’t wait to hear from you!

How to prepare for a job interview at AdaCore

✨Know Your Tech

Make sure you brush up on your programming skills in Python, C, and Ada. Familiarise yourself with static parsing tools like Libclang and understand the basics of AI and LLMs. Being able to discuss these topics confidently will show that you're genuinely interested in the role.

✨Research AdaCore

Dive into AdaCore's mission and their work in automated dynamic analysis verification. Understanding their products and how they integrate AI into fuzz testing will help you answer questions more effectively and demonstrate your enthusiasm for the company.

✨Prepare for Technical Questions

Expect technical questions related to fuzz testing and dynamic analysis. Practice explaining concepts clearly and concisely, and be ready to tackle problem-solving scenarios that might come up during the interview.

✨Show Your Passion for AI

Since the role involves integrating AI components, express your interest in AI technologies and their applications in software development. Share any relevant projects or experiences you've had with AI, as this will set you apart from other candidates.

Internship/Placement - GNAT DAS: AI Automated Fuzz Testing Workflows
AdaCore

Land your dream job quicker with Premium

You’re marked as a top applicant with our partner companies
Individual CV and cover letter feedback including tailoring to specific job roles
Be among the first applications for new jobs with our AI application
1:1 support and career advice from our career coaches
Go Premium

Money-back if you don't land a job in 6-months

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