Mistral AI Software Engineer Interview Experience — Two CodeSignal Rounds, Ran Out of Time on the DP Question

Company: Mistral AI

Role: Software Engineer

Round: Technical Screen

Seniority: General

French AI company, the interviewers all seemed to be based in France, but the position itself is in NYC, and the recruiter is on the US side too. I talked with the hiring manager for half an hour, then moved into the phone interview stage. Two phone interview rounds: coding + system design, both done on CodeSignal. Overall I felt the bar was pretty high. **Coding** Three questions total. The first two were easy, don't get stuck on them. The third one was DP, and it was hard — by the time I got to it I only had 10 minutes left, so I never got to a DP solution. The questions, roughly: Question 1: An array represents a set of GPU clusters, like [10, 20]. Every day there's some Usage, and you need to output how many GPUs are left each day. Usage is a predefined class: ``` class Usage(): self.day = day self.cluster = cluster self.gpu = gpu ``` Write a function whose input is a list of Usage objects and whose output is a 2D array, e.g. [[5, 7], [10, 12], [15, 18]], representing how many GPUs are left each day. Note: GPUs get returned at the end of each day, so every day starts fresh from [10, 20]. Question 2: If a new workload can switch between clusters, what's the maximum number of GPUs it could get? You basically figure out which cluster has the most GPUs left on each day — take the max of each subarray from the previous question's output and sum them. Question 3: If the workload from the previous question can only switch clusters K times, what's the maximum number of GPUs it can get? This one is similar to some other problem, though the name doesn't come through clearly in my notes — still pretty hard. **System Design** Design an inference API for PDF-to-Markdown conversion. Assume you already have the following functions available: - Splitting a PDF into single pages and converting each page to a numpy array — CPU intensive - An OCR engine — GPU intensive - Another function that's memory-expensive, though I forget exactly what it did... I didn't get to discuss this part in time Question 1: If there's a 1000-page PDF, how do you design a synchronous API so the user gets all the converted pages as fast as possible? Question 2: If there are a lot of requests but the results can come back async, how would you design this API instead? For this round I don't have hands-on experience in this area, so I don't think I answered it very well. Chalking it up as a learning experience.

Mistral AI Software Engineer Interview Experience — Two CodeSignal Rounds, Ran Out of Time on the DP Question

Mistral AI·Software Engineer·Apr 2026
Technical Screenhard

French AI company, the interviewers all seemed to be based in France, but the position itself is in NYC, and the recruiter is on the US side too. I talked with the hiring manager for half an hour, then moved into the phone interview stage.

Two phone interview rounds: coding + system design, both done on CodeSignal. Overall I felt the bar was pretty high.

Coding

Three questions total. The first two were easy, don't get stuck on them. The third one was DP, and it was hard — by the time I got to it I only had 10 minutes left, so I never got to a DP solution.

The questions, roughly:

Question 1: An array represents a set of GPU clusters, like [10, 20]. Every day there's some Usage, and you need to output how many GPUs are left each day. Usage is a predefined class:

class Usage():
    self.day = day
    self.cluster = cluster
    self.gpu = gpu

Write a function whose input is a list of Usage objects and whose output is a 2D array, e.g. [[5, 7], [10, 12], [15, 18]], representing how many GPUs are left each day. Note: GPUs get returned at the end of each day, so every day starts fresh from [10, 20].

Question 2: If a new workload can switch between clusters, what's the maximum number of GPUs it could get? You basically figure out which cluster has the most GPUs left on each day — take the max of each subarray from the previous question's output and sum them.

Question 3: If the workload from the previous question can only switch clusters K times, what's the maximum number of GPUs it can get? This one is similar to some other problem, though the name doesn't come through clearly in my notes — still pretty hard.

System Design

Design an inference API for PDF-to-Markdown conversion. Assume you already have the following functions available:

  • Splitting a PDF into single pages and converting each page to a numpy array — CPU intensive
  • An OCR engine — GPU intensive
  • Another function that's memory-expensive, though I forget exactly what it did... I didn't get to discuss this part in time

Question 1: If there's a 1000-page PDF, how do you design a synchronous API so the user gets all the converted pages as fast as possible?

Question 2: If there are a lot of requests but the results can come back async, how would you design this API instead?

For this round I don't have hands-on experience in this area, so I don't think I answered it very well. Chalking it up as a learning experience.

Curated and edited by PracHub

Practice the questions from this interview

Mistral AI Software Engineer Interview Experience — Two CodeSignal Rounds, Ran Out of Time on the DP Question | Mistral AI Interview Experience