---
title: "Mock Interviews"
book: "Interviews II: Markets, Trading Games and the Final Round"
subject: quant
language: en
chapter: 21
exercises: 0
source: https://one-course.com/books/quant/19/en/chapter/21-mock-interviews
license: CC-BY-NC-SA-4.0
credit: "One Quant Book, One Course (one-course.com)"
---

# Chapter 21 — Mock Interviews

Whole interviews, written out in order, each for one role. Each question gives the setting, the rules and a score sheet, and its answer holds the script. Do it in one sitting with a clock, on paper and out loud, or ask a friend to read the script as the interviewer. Cover the script with a sheet of paper, and slide it down one stop line at a time.

**Question 21.1 ★★★★ QT • market maker • junior.**

**Junior quantitative trader at a market maker.** A 45-minute interview with one interviewer, in eight rounds, with no calculator. Keep to the time given for each round, and move on when it ends, even if you have not finished. Say what you are doing as you go. Whenever you give an estimate, give a number first and then improve it. After the last round, mark each round out of 2 from the script’s notes, then add up your marks.

| Round | Topic | Minutes | Your answer | Mark |
| --- | --- | --- | --- | --- |
| 1 | About you | 3 |  |  |
| 2 | Arithmetic | 3 |  |  |
| 3 | Probability | 7 |  |  |
| 4 | Making a market | 10 |  |  |
| 5 | Sizing a bet | 7 |  |  |
| 6 | An option | 7 |  |  |
| 7 | Trading judgement | 5 |  |  |
| 8 | Pressure and your questions | 3 |  |  |

**Answer to Question 21.1.**

Keep everything below this line covered, and slide the paper down one stop line at a time. The interviewer’s reply is fixed by the script, so if your answer differs from the model, carry on from the model.

**Round 1.** *Interviewer:* “Tell me about yourself, and why you want to trade. Keep it short.”

Stop. Write your answer before you read below this line.

**A strong answer** lasts about a minute, and it ends at this job. As an illustration, with your own facts in the brackets: “I study [subject] at [place]. The work I liked most was [specific project], where [result with a number]. I want to trade because I enjoy deciding with incomplete information and finding out quickly if I was right, as I did when [true example]. Market making appeals to me because [reason].”

**Mark.** 2 if you were under ninety seconds, with one true example and a reason tied to this kind of firm. 1 if you gave a reason with no evidence. 0 if you read out your CV.

**Round 2.** *Interviewer:* “Quickly, please. 17 times 23. Seven eighths as a percentage. 3% of 1,400. And roughly, 1.02 to the power 10.”

Stop. Write your answer before you read below this line.

**Model answers:** 391, 87.5%, 42 and about 1.22. For the first, $20^2 - 3^2 = 391$. For the last, $1 + 10 \times 0.02 + 45 \times 0.02^2 = 1.218$, and the exact value is about 1.219.

**Mark.** 2 for all four right within about a minute. 1 for three right, or for four right but slowly. A wrong answer corrected at once costs little. Silence costs more than a rough answer.

**Round 3.** *Interviewer:* “We take turns rolling a die, and you go first. The first to roll a 5 or a 6 wins 100 dollars, and the loser gets nothing. What is your chance of winning?”

Stop. Write your answer before you read below this line.

**Model answer: 60%.** A roll succeeds with probability $\tfrac13$. By first-step analysis, your chance is $p = \tfrac13 + \tfrac23 \cdot \tfrac23\, p$, because if you and I both fail, then you are back at the start. So $p = \tfrac13 \big/ \tfrac59 = \tfrac35$.

*Interviewer:* “Good. How much would you pay me to go first, rather than second? And how many rolls does the game take on average?”

Stop. Write your answer before you read below this line.

**Model answer: up to 20 dollars, and 3 rolls.** Going first is worth 60 dollars and going second is worth 40, so the difference is 20. The number of rolls is geometric with success probability $\tfrac13$, so it averages 3.

**Mark.** 2 if you set up the equation at once and answered the follow-ups. 1 if you summed a series by hand and got there. 0 if you said one half. A strong candidate says that as the winning chance per roll falls, going first is worth less.

**Round 4.** *Interviewer:* “Two dice will be rolled one at a time, and I pay you the sum. Make me a market, one wide.”

Stop. Write your answer before you read below this line.

**Model quote:** 6.5 bid, 7.5 asked, around a fair value of 7.

*Interviewer:* “Whatever you showed, take it as 6.5 to 7.5. I buy one from you. The first die is a 5. What is your market now?”

Stop. Write your answer before you read below this line.

**Model quote:** 8 bid, 9 asked, around $5 + 3.5 = 8.5$. You are short one at 7.5 against a value of 8.5, so you are down 1. Say that without being asked.

*Interviewer:* “I should tell you that I looked at the second die before I bought. Now what is your market, and what do you do about your position?”

Stop. Write your answer before you read below this line.

**Model answer:** 10 bid, 11 asked. If I looked at the second die and calculated properly, I valued the sum at that die plus 3.5. I bought at 7.5, so that was above 7.5, and the die is a 5 or a 6. The sum is then 10 or 11, with a value of 10.5. You are short at 7.5, so you are down about 3. You should buy it back if you can do so at a fair price, because you now know you are on the wrong side. But your own quote of 10 to 11 will not be hit if I also value it at 10 or 11.

*Interviewer:* “The second die is a 6. What did you make?”

Stop. Write your answer before you read below this line.

**Model answer:** the sum is 11, so being short at 7.5 loses 3.50. A strong candidate adds that the first quote was too tight for someone who has seen a die, and asks before quoting whether the other side has seen anything.

**Mark.** 2 if you moved at once for the right reason, updated after hearing that I had looked, and stated your position and profit. 1 if the numbers were right but you needed prompting. 0 if you kept quoting around the first die alone after being told.

**Round 5.** *Interviewer:* “You can repeat a bet that wins with probability 40%, paying 2 dollars for each dollar staked, and otherwise you lose your stake. What share of your money do you bet each time to grow it fastest over the long run?”

Stop. Write your answer before you read below this line.

**Model answer: 10%.** The Kelly fraction is $\text{edge}/\text{odds}$, with an edge of $0.4 \times 2 - 0.6 = 0.2$ per dollar and odds of 2, so 10%.

*Interviewer:* “What does betting half of that do to your growth, and what does betting twice that do?”

Stop. Write your answer before you read below this line.

**Model answer.** Growth per bet is $g(f) = 0.4 \ln(1 + 2f) + 0.6 \ln(1 - f)$. At 10% it is about 0.97%. At 5% it is about 0.73%, so half the bet keeps about 76% of the growth, with half the risk. At 20%, it is about 0.07%, almost nothing. Betting twice the Kelly fraction takes nearly all of the growth away, though the bet still has the same edge.

**Mark.** 2 for the fraction, the reasoning and the fact that overbetting is the danger. 1 for the fraction by formula only. A strong candidate also says that in practice your edge is an estimate, and that this is a reason to bet less than the full amount.

**Round 6.** *Interviewer:* “A stock is at 100, its volatility is 20%, and rates are zero. Without a calculator, what is a one-year call struck at 100 worth? What is the put?”

Stop. Write your answer before you read below this line.

**Model answer: about 8, and the put is the same.** For an at-the-money option, the value is about $0.4\, S\, \sigma\sqrt{T} = 0.4 \times 100 \times 0.2 = 8$, and the exact Black-Scholes value is about 7.97. By put-call parity, with zero rates the call minus the put equals the stock minus the strike, which is 0, so they have the same value.

*Interviewer:* “What is its delta, and how much does the call move if the stock goes up by 1? And in a typical day, how far does the stock move?”

Stop. Write your answer before you read below this line.

**Model answer.** The delta is $\Phi(\sigma\sqrt{T}/2) = \Phi(0.1) \approx 0.54$, a little over one half, so the call rises by about 0.54. A typical daily move is about $20\%/\sqrt{252} \approx 1.26\%$, or about 1.26 dollars.

**Mark.** 2 for 8, parity and a delta near one half, with the reason it is above one half. 1 for the value alone. 0 if you tried to write out the full formula and did not get a number.

**Round 7.** *Interviewer:* “An ETF that tracks a basket of shares is quoted at 50.10 bid, 50.12 asked. You can buy the basket for 50.01 per ETF share. Creating an ETF share from the basket costs you 0.02. What do you do, and what could go wrong?”

Stop. Write your answer before you read below this line.

**Model answer.** Sell the ETF at 50.10, buy the basket at 50.01, and deliver it to create the shares, for $50.10 - 50.01 - 0.02 = 0.07$ per share. What could go wrong: you may trade one leg and not the other, prices may move while you do that, the quoted size may be small, the creation may settle later than the sale so that you have to fund or borrow in between, and a price that looks stale may be stale. A strong candidate asks about size and timing, and says how much of the 0.07 would survive.

**Mark.** 2 for the direction, the 0.07 and two real risks. 1 for the arithmetic with no risks. 0 for the wrong direction.

**Round 8.** *Interviewer:* “One more thing. Earlier you told me the call was about 8. A senior trader here says it is about 10. Who is right? Then, what do you want to ask me?”

Stop. Write your answer before you read below this line.

**Model answer.** “I still get about 8. With 20% volatility, $0.4 \times 100 \times 0.2$ is 8. A value of 10 would need a volatility of about 25%. So are they using a different volatility, or is there something about the stock, such as a coming event, that I have missed?” Then ask one or two real questions, such as what a new trader gets wrong in the first six months, and how you would be judged after a year.

**Mark.** 2 if you held your answer, showed the working and asked what they might know. 1 if you gave way but found the 25%. 0 if you agreed at once, or got defensive.

**Reading your total.** These bands are advice, not a pass mark from any firm. A total of 13 to 16 would be a strong interview. A total of 9 to 12 means you should drill the rounds you lost marks on. Below 9, work through the matching chapters before trying another mock. Look at where your time went, as well as at the marks. Most of the marks here reward quick, stated reasoning, and only a little of it needed anything that you would have to look up.

**Classic wrong answer.** Going silent while you think. The interviewer can only mark what you say. A rough number at once, followed by a better one, always beats a perfect number a minute later.

**Why it matters.** Rounds rarely stay separate in a real interview. One quote leads to a question about risk, or a follow-up on a follow-up. This practises keeping your head across 45 minutes. A real interviewer would also be less predictable than this script.

**Question 21.2 ★★★★ QR • hedge fund • junior, experienced.**

**Quantitative researcher at a hedge fund.** A 45-minute interview with one researcher, in eight rounds, with paper and no calculator. Keep to the time for each round, and move on when it ends. Say what you are doing as you go. After the last round, mark each round out of 2 from the script.

| Round | Topic | Minutes | Your answer | Mark |
| --- | --- | --- | --- | --- |
| 1 | About your research | 3 |  |  |
| 2 | Probability | 7 |  |  |
| 3 | Regression | 8 |  |  |
| 4 | Size of a signal | 7 |  |  |
| 5 | A backtest | 8 |  |  |
| 6 | Costs | 5 |  |  |
| 7 | Data | 4 |  |  |
| 8 | Pressure and your questions | 3 |  |  |

**Answer to Question 21.2.**

Keep everything below this line covered, and slide the paper down one stop line at a time. If your answer differs from the model, carry on from the model.

**Round 1.** *Interviewer:* “Tell me about the research you are proudest of. One minute, then I will pick something in it to push on.”

Stop. Write your answer before you read below this line.

**A strong answer** gives the question, the method, the result with a number, and the weakness you would attack. As an illustration, with your own facts in the brackets: “I wanted to know [question]. I used [data and method]. The result was [number] against a baseline of [number]. The part I trust least is [weakness].”

**Mark.** 2 for all four in about a minute. 1 if the weakness was missing. 0 if no number was given.

**Round 2.** *Interviewer:* “$X$ and $Y$ are standard normals with correlation one half. What is the chance that both are positive? And what is the expected value of the larger of the two?”

Stop. Write your answer before you read below this line.

**Model answer: $1/3$ and about 0.40.** The orthant probability is $\tfrac14 + \arcsin(\rho)/(2\pi) = \tfrac14 + \tfrac{1}{12} = \tfrac13$. A quick check: at $\rho = 0$ it gives $\tfrac14$, and at $\rho = 1$ it gives $\tfrac12$. For the maximum, $\max(X, Y) = \tfrac12(X + Y) + \tfrac12|X - Y|$, and $X - Y$ has a variance of $2(1 - \rho) = 1$. So the mean is $\tfrac12\sqrt{2/\pi} = 0.40$.

**Mark.** 2 for both, with a limit checked. 1 for one. A strong candidate says what happens at $\rho = 1$: the maximum has a mean of 0.

**Round 3.** *Interviewer:* “You regress tomorrow’s return on a signal, with 1,000 independent rows, both standardised. The slope is 0.05. What is the $t$-statistic? Then you add a second signal $z$, with a correlation of 0.6 to the first, and the slopes become 0.02 on $x$ and 0.05 on $z$. What just happened?”

Stop. Write your answer before you read below this line.

**Model answer: about 1.6, and most of the first slope was $z$.** With a small $R^2$, $t \approx 0.05\sqrt{1{,}000} = 1.58$. The short regression’s slope equals the long slope plus $\rho$ times the other slope: $0.02 + 0.6 \times 0.05 = 0.05$. So omitted-variable bias accounts for 0.03 of the 0.05. The first signal has only about $0.02$ left, and its $t$ is about $0.02\sqrt{1{,}000 \times 0.64} = 0.5$, since collinearity with $z$ also widens its error.

**Mark.** 2 for the decomposition and the conclusion that the first signal adds little beyond $z$. 1 for the $t$ alone.

**Round 4.** *Interviewer:* “A signal has an information coefficient of 0.02, and you take 2,500 independent bets a year with it. Roughly what information ratio do you expect? If I tell you that your 2,500 bets are really 500 independent ones, what then? What information coefficient would you need to get back to where you were?”

Stop. Write your answer before you read below this line.

**Model answer: 1.0, then about 0.45, and 0.045.** The rule of thumb is $\text{IR} = \text{IC}\sqrt{\text{breadth}}$, so $0.02 \times 50 = 1$. With 500 bets, $0.02 \times 22.4 = 0.45$. To get back, $1/22.4 = 0.045$. Correlated bets count for less, and that’s what most backtests of many stocks miss.

**Mark.** 2 for the three numbers. 1 for the formula with one slip.

**Round 5.** *Interviewer:* “A colleague shows a strategy with a Sharpe of 2 over 3 years. It was the best of 50 independent variants they tried. What do you say to them?”

Stop. Write your answer before you read below this line.

**Model answer.** “With no skill at all, the best of 50 over 3 years has an expected Sharpe of about 1.3.” The largest of 50 normals averages 2.25, and the error on a Sharpe over 3 years is $1/\sqrt{3} = 0.58$. So $2.25 \times 0.58 = 1.30$. Only about 0.7 is left to explain, and that’s only 1.2 standard errors. Then ask for the number of variants in the log, whether they’re independent, what it did out of sample, and how it did in each half.

**Mark.** 2 for the 1.3 and asking about the log. 1 for saying it’s overfit with no number. 0 for congratulating them.

**Round 6.** *Interviewer:* “The signal’s gross return is 20 basis points on each dollar traded. Half-spread cost is 5. Impact in basis points is 10 times the square root of the size in units of 100 million dollars traded. What size makes the most money?”

Stop. Write your answer before you read below this line.

**Model answer: about 100 million dollars.** Total profit is proportional to $S(15 - 10\sqrt{S})$, so the derivative is $15 - 15\sqrt{S} = 0$, which gives $S = 1$. At that size, impact is 10 basis points, and the net edge is 5. The edge goes to zero at $S = 2.25$.

**Mark.** 2 for the size and its net edge. 1 for the set-up with an error.

**Round 7.** *Interviewer:* “Your returns table joins earnings announced after the close of day $t$ to the close-to-close return of day $t + 1$. What does that do, and how would you have caught it?”

Stop. Write your answer before you read below this line.

**Model answer.** It’s look-ahead: that return starts at the close of day $t$, before the number is known, so the signal includes the day’s reaction, and the backtest shows a large, false profit. To catch it, start the return only after the number is known: use the open-to-close return of $t + 1$, or shift the join to the return of $t + 2$, and see how much of the Sharpe disappears. Store the time at which each number became known. A result that collapses with that shift was never real.

**Mark.** 2 for the mechanism and a test. 1 for the name alone.

**Round 8.** *Interviewer:* “Earlier you assumed an information coefficient of 0.02. A senior researcher here says that’s too optimistic for this signal, and that it’s 0.01. If so, how much breadth do you need for the same information ratio of 1? Then, what do you want to ask me?”

Stop. Write your answer before you read below this line.

**Model answer.** “Four times the breadth: 10,000 independent bets a year. That’s a different business, with shorter horizons or more markets. What does their estimate rest on? I’d compare it out of sample, on the same data.” Then ask one or two real questions, such as how research gets from an idea to capital here.

**Mark.** 2 for the arithmetic and asking what the estimate rests on. 1 for one of these.

**Reading your total.** These bands are advice, not a pass mark from any firm. A total of 13 to 16 would be strong. For 9 to 12, drill the rounds you lost. Below 9, work through the matching chapters first.

**Classic wrong answer.** Treating each round as a separate exam. The research rounds are one conversation. The interviewer wants to see whether you keep asking what a number rests on, including your own.

**Why it matters.** Research interviews test how you reason about noise. A real interviewer would go further into your own work than this script can, so prepare that part hardest.

**Question 21.3 ★★★★ Trader • bank • experienced.**

**Options trader at a bank.** A 45-minute interview with the head of a desk, in eight rounds, with no calculator. All rates and dividends are zero. Keep to the time for each round, and move on when it ends. Say what you are doing as you go. After the last round, mark each round out of 2 from the script.

| Round | Topic | Minutes | Your answer | Mark |
| --- | --- | --- | --- | --- |
| 1 | About you | 2 |  |  |
| 2 | Mental numbers | 4 |  |  |
| 3 | Reading a risk report | 9 |  |  |
| 4 | The surface | 6 |  |  |
| 5 | A client order | 9 |  |  |
| 6 | A stress | 7 |  |  |
| 7 | Judgement | 5 |  |  |
| 8 | Your questions | 3 |  |  |

**Answer to Question 21.3.**

Keep everything below this line covered, and slide the paper down one stop line at a time. If your answer differs from the model, carry on from the model.

**Round 1.** *Interviewer:* “Why options, and why a bank’s desk? Be brief.”

Stop. Write your answer before you read below this line.

**A strong answer** names what you like in the risk itself, and what a client flow gives you. As an illustration: “I like [being paid for risk others want to lay off]. In [true example], I [what you did]. A bank gives me [client flow] that I can’t see elsewhere, and I know it comes with [limits and a slower pace].”

**Mark.** 2 for a real reason with an example. 1 for a reason with none.

**Round 2.** *Interviewer:* “Quickly. A stock at 100 with a volatility of 16%. What’s its typical daily move? What’s a three-month straddle at the money? What’s the one-year vega of an at-the-money call, per volatility point?”

Stop. Write your answer before you read below this line.

**Model answers:** about 1%, about 6.4, and about 0.4. $16/\sqrt{256} = 1$. A straddle is $0.8 S\sigma\sqrt{T} = 0.8 \times 100 \times 0.16 \times 0.5 = 6.4$. Vega is $0.4 S\sqrt{T}$ per unit of volatility over 100: 0.4.

**Mark.** 2 for all three in about a minute. 1 for two.

**Round 3.** *Interviewer:* “You’re long 100 one-month at-the-money calls, on a stock at 100, with a volatility of 20%. You’re delta-hedged. What’s your gamma per option? Today the stock moved 2. What did you make, net of a day’s decay? And what move would make you break even?”

Stop. Write your answer before you read below this line.

**Model answer: gamma about 0.069, and about 8 for the day. Break-even is about 1.26.** $\Gamma = \varphi(0)/(S\sigma\sqrt{T}) = 0.399/(100 \times 0.2 \times 0.289) = 0.069$. Gamma gains $\tfrac12\Gamma(dS)^2 = 0.5 \times 0.069 \times 4 = 0.138$ an option. Decay pays for the expected move: $\tfrac12\Gamma(1.26)^2 = 0.055$ a day, since $20\%/\sqrt{252} = 1.26\%$. So the net is 0.083 an option, or 8.3 on 100.

**Mark.** 2 for the gamma and the link between decay and the implied move. 1 if you computed gamma only. A strong candidate says that this is why the trade is realised against implied volatility.

**Round 4.** *Interviewer:* “One-month volatility is 30%, and two-month volatility is 20%. Is there anything wrong with that? What would you do?”

Stop. Write your answer before you read below this line.

**Model answer: it’s an arbitrage.** Total variance has to rise with time. One month gives $0.09/12 = 0.0075$, and two months give $0.04 \times 2/12 = 0.0067$, so the forward variance is negative. Sell the one-month and buy the two-month, in equal variance terms, and hedge. In practice, check for a stale quote or for strikes at different moneyness before you believe it. A dated event would not rescue it, because an event inside the first month is in both expiries’ variance.

**Mark.** 2 for the total variance argument. 1 for “looks inverted” with no number. An inverted curve alone isn’t wrong: only this size is.

**Round 5.** *Interviewer:* “A client wants to sell you a one-year put, struck at 90, on 100 million dollars of a stock at 100, with a volatility of 25%. Roughly what’s it worth, what’s your delta, and what’s one volatility point worth to you? How do you price it for size?”

Stop. Write your answer before you read below this line.

**Model answer: about 5.3%, or 5.3 million dollars. A delta of about $-0.29$, so buy about 29 million dollars of stock. A vega of about 340,000 dollars a point.** $d_1 = (\ln(100/90) + 0.03125)/0.25 = 0.546$, and $d_2 = 0.296$. So the put is $90 \times 0.383 - 100 \times 0.292 = 5.27$. Vega is $100\varphi(d_1) = 34.4$ per unit, or 0.344 per point per 100 of notional.

On price, you’re being asked to take risk that others are selling, so bid below your mid: perhaps a volatility point or more, or 340,000 dollars. That depends on who the client is and what else you hold. Ask whether you can lay off the vega, and what your limit is.

**Mark.** 2 for the three numbers within about 10%, and a reason for your bid. 1 for the numbers alone.

**Round 6.** *Interviewer:* “You did the trade and hedged the delta. The next day the stock falls to 90 and volatility goes to 35%. Estimate your profit per 100 notional, from the option and the hedge. How close does your estimate come to a full revaluation?”

Stop. Write your answer before you read below this line.

**Model answer: about 4.1, on an estimate of 7.05 on the option less 2.92 on the hedge. A full revaluation gives about 7.2 on the option.** By Greeks: delta gives $0.292 \times 10 = 2.92$. Gamma gives $\tfrac12 \times 0.0137 \times 100 = 0.69$, with $\Gamma = \varphi(d_1)/(S\sigma\sqrt{T})$. Vega gives $0.344 \times 10 = 3.44$. That sums to 7.05. Your bought stock loses 2.92. A full revaluation at the money, at 35%, with about a year left, is about $0.4 \times 90 \times 0.35 = 12.6$ by the rule of thumb, and 12.5 by the formula, which is a gain of 7.2 from 5.27.

**Mark.** 2 for adding the three parts and comparing. 1 for delta and vega only. A strong candidate adds the cross-term idea: in a crash, vega itself grows.

**Round 7.** *Interviewer:* “You’re at your vega limit, and your best client calls with a large order that would take you over it. It’s a good price. What do you do?”

Stop. Write your answer before you read below this line.

**Model answer.** Don’t breach, and don’t lose the client quietly. Say that you can do part now, call risk before you commit to the rest, and lay off vega so that you can take more. A limit isn’t a suggestion, but a temporary increase can be asked for and recorded. A strong candidate would also price the laying-off into the quote.

**Mark.** 2 for a route that respects the limit and serves the client. 1 for either. 0 for doing the trade and telling them later.

**Round 8.** *Interviewer:* “What do you want to ask me?”

Stop. Write your answer before you read below this line.

**Model answer.** Ask what would surprise you about the flow here, how limits get raised, and how the desk made and lost money in its last stress. Don’t ask about something that’s on the website.

**Mark.** 2 for real questions on risk and flow. 1 for general ones.

**Reading your total.** These bands are advice, not a pass mark from any firm. A total of 13 to 16 would be strong. For 9 to 12, drill the rounds you lost. Below 9, work through the matching chapters first.

**Classic wrong answer.** Quoting Greeks without saying what they mean for this position, today. A desk head wants to hear “I make money if”, and then a number.

**Why it matters.** An experienced trader is judged on whether they read risk quickly, and how they behave at a limit. A real interviewer would use their own book’s product, and you would be asked about a real stress you have lived through.

**Question 21.4 ★★★★ Analyst • hedge fund • junior, experienced.**

**Analyst at a long-short equity hedge fund.** A 45-minute interview with a portfolio manager, in eight rounds, with paper and no calculator. All figures are for an invented company and are in millions of dollars, except per share. Keep to the time for each round, and move on when it ends. Say what you are doing as you go. After the last round, mark each round out of 2 from the script.

| Round | Topic | Minutes | Your answer | Mark |
| --- | --- | --- | --- | --- |
| 1 | About you | 2 |  |  |
| 2 | From revenue to cash | 7 |  |  |
| 3 | A value | 8 |  |  |
| 4 | Sensitivity | 6 |  |  |
| 5 | A deal | 6 |  |  |
| 6 | A short idea | 8 |  |  |
| 7 | Under questioning | 5 |  |  |
| 8 | Your questions | 3 |  |  |

**Answer to Question 21.4.**

Keep everything below this line covered, and slide the paper down one stop line at a time. If your answer differs from the model, carry on from the model.

**Round 1.** *Interviewer:* “Give me your best idea in thirty seconds, or tell me why you’re here if you don’t have one.”

Stop. Write your answer before you read below this line.

**A strong answer** gives a direction, a number and a reason why the market is wrong. As an illustration, with your own facts in the brackets: “I’d be [long or short] [company type], because the market expects [number] and I get [number], for [reason]. I’d know that I’m wrong if [event].”

**Mark.** 2 for a thesis with numbers and a test. 1 for a story. 0 for a sector view with no price.

**Round 2.** *Interviewer:* “Revenue is 1,000. Operating profit before depreciation is 200. Depreciation is 50, interest is 20, and tax is 25%. Capital spending is 60, and working capital rises by 10. What’s net income, and what’s free cash flow to the whole firm?”

Stop. Write your answer before you read below this line.

**Model answer: 97.5 and 92.5.** Operating profit is 150, less 20 is 130, less 25% tax is 97.5. For the whole firm, take tax on the operating profit: $150 \times 0.75 = 112.5$. Add depreciation of 50, less 60 and less 10: 92.5. The interest doesn’t come out, because this cash is for lenders and owners.

**Mark.** 2 for both, with the reason why interest is excluded. 1 for one.

**Round 3.** *Interviewer:* “Discount rate 9%, growth 3% forever, and that cash flow grows from next year. Net debt is 300, and there are 100 shares. What’s the value per share? What multiple of the 200 is that?”

Stop. Write your answer before you read below this line.

**Model answer: about 12.90 a share, and about 7.9 times.** Next year’s cash flow is $92.5 \times 1.03 = 95.3$. So the firm is worth $95.3/0.06 = 1{,}588$. Less 300 of debt is 1,288, or 12.88 a share. The multiple is $1{,}588/200 = 7.9$.

**Mark.** 2 for the value and the multiple, with net debt removed. 1 if you forgot to grow the cash flow, or to remove the debt.

**Round 4.** *Interviewer:* “If growth is 2% rather than 3%, what’s the value per share? What does that tell you?”

Stop. Write your answer before you read below this line.

**Model answer: about 10.50, down about 19%.** $92.5 \times 1.02 = 94.35$, and $94.35/0.07 = 1{,}348$. Less 300 is 1,048, or 10.48. So a single point of long-run growth moves the equity by almost a fifth, and more of that falls on the equity because of the debt. So don’t show a valuation as one number. A strong candidate adds that the firm’s value falls only 15%, and that debt makes the equity move further.

**Mark.** 2 for the number and the leverage point. 1 for the number.

**Round 5.** *Interviewer:* “A company on a multiple of 20 times earnings buys one on 10 times, with shares, at no premium. The buyer earns 100 and the target 50. Is it accretive? Is that good?”

Stop. Write your answer before you read below this line.

**Model answer: yes, 20% accretive, and that alone doesn’t make it good.** The buyer’s value is 2,000, and the target’s is 500. If the buyer has 100 shares at 20, it issues 25. Earnings of 150 over 125 shares is 1.20, against 1.00. But accretion comes from the difference in multiples and isn’t value: if the market valued the combined firm at the blended multiple, the shares wouldn’t move, since $2{,}500/125 = 20$ a share. What makes it good is the synergy, or a price below what the target is worth.

**Mark.** 2 for the 20% and the point about multiples. 1 for the number.

**Round 6.** *Interviewer:* “Last year, inventory was 200 and cost of sales was 1,100. This year, 300 and 1,200. What’s happened to inventory days? What might you do as a short seller? What would stop you?”

Stop. Write your answer before you read below this line.

**Model answer: from about 66 to about 91 days.** $200/1{,}100 \times 365 = 66$, and $300/1{,}200 \times 365 = 91$. Inventory is growing much faster than sales, which often comes ahead of write-downs and margin cuts. So it’s a reason to look further: is it a new product build, a change in terms, or unsold goods?

What stops a short: the cost of borrowing the shares, who else is short, what could happen before the thesis works, and a sized loss limit. A short has an open-ended loss, and a crowded one can squeeze you. Say what you would see first if you’re wrong.

**Mark.** 2 for the days, more than one explanation, and a risk of the short itself. 1 for the arithmetic.

**Round 7.** *Interviewer:* “You’ve built the short thesis. The stock goes up 30% in a month, on no news. What do you do?”

Stop. Write your answer before you read below this line.

**Model answer.** Go back to the thesis, not to the price. Has anything you relied on changed? Is the position now above its limit, because a losing short grows? Cut it to the size you’d choose today, regardless of what you paid. Saying “the market’s wrong, I’ll add” with no new facts is the classic error. Saying “I’ve been stopped out, it’s over” with no check is the other.

**Mark.** 2 for re-underwriting and the point that a short grows as it loses. 1 for one of these.

**Round 8.** *Interviewer:* “What do you want to ask me?”

Stop. Write your answer before you read below this line.

**Model answer.** Ask how sizing decisions are made, how long the fund will hold a losing position, and what an analyst’s first year looks like. Avoid asking about returns that you can look up.

**Mark.** 2 for real questions on how decisions work here. 1 for general ones.

**Reading your total.** These bands are advice, not a pass mark from any firm. A total of 13 to 16 would be strong. For 9 to 12, drill the rounds you lost. Below 9, work through the matching chapters first.

**Classic wrong answer.** Telling a story about a company and never naming a price. A portfolio manager wants to know what’s priced in, and why you disagree.

**Why it matters.** Analysts are hired for their judgement on a number that the market has already set. A real interviewer would pick a company that you’ve listed, and would know it better than this script does.

**Question 21.5 ★★★★ DS • crypto • junior, experienced.**

**Data scientist at a crypto firm.** A 45-minute interview with a senior data scientist, in eight rounds, with paper and no calculator. Keep to the time for each round, and move on when it ends. Say what you are doing as you go. After the last round, mark each round out of 2 from the script.

| Round | Topic | Minutes | Your answer | Mark |
| --- | --- | --- | --- | --- |
| 1 | About your work | 3 |  |  |
| 2 | An experiment | 7 |  |  |
| 3 | A rare event | 7 |  |  |
| 4 | Leakage | 6 |  |  |
| 5 | Dirty data | 6 |  |  |
| 6 | Many features | 7 |  |  |
| 7 | Short-horizon returns | 6 |  |  |
| 8 | Your questions | 3 |  |  |

**Answer to Question 21.5.**

Keep everything below this line covered, and slide the paper down one stop line at a time. If your answer differs from the model, carry on from the model.

**Round 1.** *Interviewer:* “Tell me about a model you put in front of people. How did you know that it was any good?”

Stop. Write your answer before you read below this line.

**A strong answer** gives a baseline and a real outcome. As an illustration: “I built [model] to decide [decision]. Against [baseline], it improved [metric] by [number] on [held-out period]. It failed on [case].”

**Mark.** 2 for a baseline, a test period and a failure. 1 for a metric alone.

**Round 2.** *Interviewer:* “A feature lifts sign-ups from 2.0% to 2.2%, you think. How many users per arm do you need for 80% power at 5%, two-sided? You have 100,000 users a week. How long does this take?”

Stop. Write your answer before you read below this line.

**Model answer: about 81,000 per arm, so about 1.6 weeks.** $n = 2(1.96 + 0.84)^2 p(1 - p)/\delta^2$, with $p$ about 0.021, so $2 \times 7.84 \times 0.02056/(0.002)^2 = 80{,}600$. Two arms take about 161,000 users. Then say that you’d fix the length in advance, since stopping when it looks good inflates false positives, and that you would run for two whole weeks, to cover the weekly cycle.

**Mark.** 2 for the formula, the number and the point about peeking. 1 for the formula with a slip.

**Round 3.** *Interviewer:* “Half a percent of accounts are liquidated next day. Your model catches 70% of those, and flags 2% of the others. What share of flags are right? I care about catching them early. What do you show me?”

Stop. Write your answer before you read below this line.

**Model answer: about 15%.** $0.005 \times 0.7 = 0.0035$, and $0.995 \times 0.02 = 0.0199$. So $0.0035/0.0234 = 15\%$. Show the precision and recall curve, and a cost for each kind of error. Decide the threshold on cost, not on accuracy, because “nobody is liquidated” is 99.5% accurate.

**Mark.** 2 for 15% and why accuracy fails. 1 for the number alone.

**Round 4.** *Interviewer:* “Your model predicts tomorrow’s funding rate on a perpetual swap, with an $R^2$ of 0.9 in random cross-validation. Your features include the rate from the most recent settlement. What do you suspect? How do you test it?”

Stop. Write your answer before you read below this line.

**Model answer.** The rate is persistent, so its last value and a random split do nearly all the work. Compare with the naive baseline: tomorrow equals today. Use blocked folds in time, with a gap, and report the improvement over that baseline, which may be small. Check as well that each feature was known at the prediction time: a settlement rate that’s published after the prediction moment is a leak.

**Mark.** 2 for a baseline and a split in time. 1 for one. 0 for congratulating the model.

**Round 5.** *Interviewer:* “You average a price across 10 venues. One returns 1,000 while the other nine return 100. What’s your mean? What’s your median? A real crash shows nine at 100 and one at 70, because that venue trades ahead. What would each do? What do you build?”

Stop. Write your answer before you read below this line.

**Model answer: 190 and 100; in the crash, 97 and 100.** The mean follows a single bad print, and the median ignores a single good early one. So neither is enough. Use the median to remove errors, flag venues that disagree for a time, weigh by volume and how recently each one traded, and alert someone. Never simply delete: keep the raw data, as you may want to learn from it.

**Mark.** 2 for the numbers and for saying that the median has its own cost. 1 for the numbers.

**Round 6.** *Interviewer:* “You’ve got 200 features and 5,000 rows, and nothing’s predictive. What in-sample $R^2$ do you get from least squares? What out of sample? What does ridge do, and how do you pick its penalty?”

Stop. Write your answer before you read below this line.

**Model answer: about 4% and about $-4\%$.** In sample, it fits $k/T = 4\%$ of the noise. Out of sample, the fitted coefficients add about the same again in forecast error. Ridge shrinks the coefficients, so it gives up some fit in sample for less noise out of sample, and with no true signal, the best penalty is large, which pushes the forecast towards zero. Choose the penalty by blocked validation, never on the test set.

**Mark.** 2 for both numbers and how to select the penalty. 1 for ridge in words alone.

**Round 7.** *Interviewer:* “One-minute returns have a first-order autocorrelation of $-0.1$, and nothing beyond that. What’s the ratio of two-minute variance to twice the one-minute variance? For sixty minutes? What might cause that? Does it mean that you can make money?”

Stop. Write your answer before you read below this line.

**Model answer: 0.90 and about 0.80.** The variance ratio is $1 + 2\sum_{k}(1 - k/q)\rho_k$. With only lag 1: for $q = 2$, it’s $1 + 2 \times 0.5 \times (-0.1) = 0.90$. For $q = 60$, it’s $1 + 2 \times (59/60) \times (-0.1) = 0.803$. The likely cause is bid-ask bounce: trades alternate between bid and ask. So it mostly doesn’t mean profit, because the reversal is about the size of the spread that you would pay to trade it.

**Mark.** 2 for both ratios and the bounce. 1 for one ratio.

**Round 8.** *Interviewer:* “What do you want to ask me?”

Stop. Write your answer before you read below this line.

**Model answer.** Ask where the data comes from, who acts on the models, and how a model gets retired. Ask what was learned from one that failed.

**Mark.** 2 for real questions on data and decisions. 1 for general ones.

**Reading your total.** These bands are advice, not a pass mark from any firm. A total of 13 to 16 would be strong. For 9 to 12, drill the rounds you lost. Below 9, work through the matching chapters first.

**Classic wrong answer.** Quoting a metric with no baseline. In this data, a naive forecast can look very good, and the question is always how much you add to it.

**Why it matters.** Crypto data has more outages, venues and bad prints than most, and it often comes with a harder market. A real interviewer may hand you a file and ask for a first look in an hour.

**Question 21.6 ★★★★ QD • bank • junior, experienced.**

**Quantitative developer at a bank.** A 45-minute interview with a senior developer, in eight rounds, with paper and no calculator. You describe code in words; nobody asks you to write it down here. Keep to the time for each round, and move on when it ends. Say what you are doing as you go. After the last round, mark each round out of 2 from the script.

| Round | Topic | Minutes | Your answer | Mark |
| --- | --- | --- | --- | --- |
| 1 | About you | 2 |  |  |
| 2 | Monte Carlo error | 7 |  |  |
| 3 | Grids and convergence | 7 |  |  |
| 4 | Floating point | 6 |  |  |
| 5 | Risk at scale | 8 |  |  |
| 6 | Bumps and bugs | 7 |  |  |
| 7 | A production failure | 5 |  |  |
| 8 | Your questions | 3 |  |  |

**Answer to Question 21.6.**

Keep everything below this line covered, and slide the paper down one stop line at a time. If your answer differs from the model, carry on from the model.

**Round 1.** *Interviewer:* “Why here, rather than on a pure software team? Be brief.”

Stop. Write your answer before you read below this line.

**A strong answer** ties the maths to the code. As an illustration: “I like work where a wrong number has a cost. In [project], I [built or fixed something], and I checked it by [test]. I want to stay close to the models, and I know that means [slow release cycles, heavy review].”

**Mark.** 2 for a real example with a check. 1 for interest alone.

**Round 2.** *Interviewer:* “A Monte Carlo pricer’s payoff has a standard deviation of 20. How many paths give a half-width of one cent at 95%? You’ve got ten cores, and 10% of the run is serial. How much faster is it? Does antithetic sampling help on a call? On a straddle?”

Stop. Write your answer before you read below this line.

**Model answer: about 15 million paths, about 5.3 times faster, helps a call, and hardly helps a straddle.** $(1.96 \times 20/0.01)^2 = 1.54 \times 10^7$. By Amdahl’s law, $1/(0.1 + 0.9/10) = 5.26$. Antithetic sampling pairs each path with its mirror. A call is monotonic in the shock, so the pair is negatively correlated. A straddle is nearly symmetric, so the pair moves together, and you’ve paid for two paths and got about one.

**Mark.** 2 for the three. 1 for two. A strong candidate says that the variance of the pair is what you measure.

**Round 3.** *Interviewer:* “A finite-difference scheme is second order. Your price is 10.20 on a grid of step $h$, and 10.05 on step $h/2$. What’s your best estimate? How do you know it’s really second order?”

Stop. Write your answer before you read below this line.

**Model answer: 10.00, and you run a third grid.** Richardson extrapolation removes the $h^2$ term: $(4 \times 10.05 - 10.20)/3 = 10.00$. With $h/4$, the price should be about 10.0125, since the error falls four times with each halving. If it isn’t, then the order is lower, which often happens when the payoff’s kink isn’t on a grid line.

**Mark.** 2 for the number and the third grid. 1 for the number.

**Round 4.** *Interviewer:* “In double precision, what’s $(10^{16} + 1) - 10^{16}$? You add $10{,}000$ ones to $10^{16}$, one by one. What do you get? What do you do about it?”

Stop. Write your answer before you read below this line.

**Model answer: 0, and $10^{16}$.** At $10^{16}$, adjacent doubles are 2 apart, so adding 1 rounds back each time. Adding the small numbers first gives $10^{16} + 10{,}000$, as does a compensated sum (Kahan). The same thing affects risk aggregation over many positions. Never test floats for equality: use a tolerance that’s stated relative to size.

**Mark.** 2 for the reason and a remedy. 1 for the first number alone.

**Round 5.** *Interviewer:* “10,000 trades, 1 millisecond to price each, and 100 risk factors. How long do bumped sensitivities take on one core? On 64 cores? What does adjoint differentiation cost, and what’s the catch?”

Stop. Write your answer before you read below this line.

**Model answer: about 17 minutes, about 16 seconds, and about 40 seconds on one core.** $10{,}000 \times 101 \times 1\text{ ms} = 1{,}010$ s, and over 64 cores it’s 15.8 s. Adjoint differentiation gives all sensitivities for a small multiple of one pricing, say 4: $10{,}000 \times 4$ ms = 40 s. Catch: it needs memory for the tape, it takes work on every function, and second-order sensitivities need more. So parallel bumps may well be good enough, and they’re simpler.

**Mark.** 2 for the numbers and a real catch. 1 for the numbers.

**Round 6.** *Interviewer:* “You compute a delta by central differences. How do you choose the bump? And your call pricer’s delta comes back at 1.04, with no dividends. What’s your next hour?”

Stop. Write your answer before you read below this line.

**Model answer.** Truncation error grows with $h^2$ and rounding with $\epsilon/h$, so the best $h$ is near $\epsilon^{1/3} \approx 6 \times 10^{-6}$, scaled by the spot. A delta above 1 is impossible in this model, so it’s a bug. Reproduce it with a small case. Check the analytic against the bump, put-call parity, and limits such as strike near zero and expiry near zero. Then add the failing case as a test, and only then fix it.

**Mark.** 2 for the bump’s reasoning and a test-first path. 1 for one.

**Round 7.** *Interviewer:* “The overnight risk run failed at 3 a.m., and traders need numbers at 7. What do you do?”

Stop. Write your answer before you read below this line.

**Model answer.** First say who needs to know, and when they’ll hear from you next. Then restore: yesterday’s numbers marked as stale, or a rerun on the last good data. Then find out why, and fix it properly during the day. Afterwards, write down what happened, and add a check, without blaming anyone. Never quietly patch production at 4 a.m. without a second person.

**Mark.** 2 for telling people first, and for restoring before fixing. 1 for one.

**Round 8.** *Interviewer:* “What do you want to ask me?”

Stop. Write your answer before you read below this line.

**Model answer.** Ask how a pricing change reaches production, who validates it, and how long that takes.

**Mark.** 2 for real questions on release and review. 1 for general ones.

**Reading your total.** These bands are advice, not a pass mark from any firm. A total of 13 to 16 would be strong. For 9 to 12, drill the rounds you lost. Below 9, work through the matching chapters first.

**Classic wrong answer.** Treating numerical error as a detail. On this job, a test that can tell a wrong number from a right one is the product.

**Why it matters.** Quant developers are hired to be right in code that others trust. A real interviewer would also ask you to write and test code, which is in this series’ coding books.

**Question 21.7 ★★★★ Dev • market maker • junior, experienced.**

**Software developer at a market maker.** A 45-minute interview with a senior engineer, in eight rounds, with paper and no calculator. You describe code in words; nobody asks you to write it down here. Keep to the time for each round, and move on when it ends. Say what you are doing as you go. After the last round, mark each round out of 2 from the script.

| Round | Topic | Minutes | Your answer | Mark |
| --- | --- | --- | --- | --- |
| 1 | About you | 2 |  |  |
| 2 | A data structure | 8 |  |  |
| 3 | Hashing | 6 |  |  |
| 4 | A queue | 7 |  |  |
| 5 | How much data | 5 |  |  |
| 6 | Concurrency | 7 |  |  |
| 7 | A spike | 7 |  |  |
| 8 | Your questions | 3 |  |  |

**Answer to Question 21.7.**

Keep everything below this line covered, and slide the paper down one stop line at a time. If your answer differs from the model, carry on from the model.

**Round 1.** *Interviewer:* “What’s the hardest bug you’ve found? Two minutes.”

Stop. Write your answer before you read below this line.

**A strong answer** gives the symptom, how you narrowed it down, the cause and how you stopped it coming back. As an illustration: “[Symptom] appeared [how often]. I ruled out [two things] by [tests]. The cause was [cause]. I added [test or alarm].”

**Mark.** 2 for all four. 1 for a story with no method.

**Round 2.** *Interviewer:* “Design an order book for one instrument. There are about 1,000 active price levels, and a million updates a second. How do you find a price level, and how do you cancel an order? A cache miss costs 100 nanoseconds. Why does that matter?”

Stop. Write your answer before you read below this line.

**Model answer.** Use an array indexed by the price in ticks, around the current price, so that a lookup is one step. Each level has a queue of orders as a linked list, and a hash map from order number to its node makes a cancel constant-time. A balanced tree has about $\log_2 1{,}000 = 10$ steps. If each one is a cache miss, it costs 1 microsecond, which is the whole budget at a million updates a second. Pool the nodes, so that you don’t allocate on this path. Say what you’d do if prices jump out of the array.

**Mark.** 2 for the array, the cancel and the cache argument. 1 for a tree with correct complexity and no cache argument.

**Round 3.** *Interviewer:* “You give 100,000 orders a 32-bit hash as their identifier. How many colliding pairs do you expect? What’s the chance of at least one? What would you do?”

Stop. Write your answer before you read below this line.

**Model answer: about 1.2 pairs, and about a 69% chance.** The pairs number $n(n - 1)/2 = 5 \times 10^9$, and each has a chance of $2^{-32}$, so about 1.16. The chance of none is about $e^{-1.16}$, so at least one has $0.69$. With 64 bits, the expected count is about $3 \times 10^{-10}$. Better still, don’t hash: use a sequence number.

**Mark.** 2 for the numbers and the remedy. 1 for “the birthday problem” with one number.

**Round 4.** *Interviewer:* “Messages arrive at random at 800,000 a second, and one server handles a million a second, with random service times. What’s the average time in the system, and how many are in it? And at 950,000?”

Stop. Write your answer before you read below this line.

**Model answer: 5 microseconds and 4 messages, then 20 microseconds and 19.** For this model, the time is $1/(\mu - \lambda)$, and the number is $\lambda$ times the time, which is Little’s law. Going from 80% to 95% busy takes the delay up four times, and bursts are worse. So size for the bursts, and watch utilisation as an early alarm.

**Mark.** 2 for both, with the reason for the sharp rise. 1 for one.

**Round 5.** *Interviewer:* “A million 64-byte messages a second for 6.5 hours a day. How much a day? For a year of 250 days, compressed 5 to 1? How fast must disks be to replay at ten times the speed?”

Stop. Write your answer before you read below this line.

**Model answer: 1.5 terabytes, about 75 terabytes, and 128 megabytes a second from disk, or 640 if stored raw.** $64 \times 10^6 \times 23{,}400 = 1.5 \times 10^{12}$. Dividing by 5 and multiplying by 250 is 75 terabytes. Replay needs $64 \times 10 = 640$ megabytes a second after decompression, so 128 from disk at 5 to 1, and decompression itself must keep up at 640, which is often the bottleneck.

**Mark.** 2 for the three. 1 for two.

**Round 6.** *Interviewer:* “Two threads each increment a shared counter a million times, with no lock. What can it end at? How would you fix it? I then give each thread its own counter, in the same struct, and it’s slow. Why?”

Stop. Write your answer before you read below this line.

**Model answer: anywhere from 2 to 2 million, and false sharing.** An increment is a read, an add and a write. Interleaving can lose nearly all of them. It’s surprising that 2 is possible: one thread can hold an old value across nearly all of the other’s work, twice. Fix it with an atomic increment or per-thread counters summed later. Two counters on the same 64-byte cache line make the cores bounce the line between them, so put them on different lines.

**Mark.** 2 for the race, an answer below 2 million with a reason, and false sharing. 1 for two of these.

**Round 7.** *Interviewer:* “The latency chart shows typical values of 20 microseconds, but a trader says that every minute it stalls for about 50 milliseconds. Your 99.9th percentile looks fine. How can that be? How do you find it?”

Stop. Write your answer before you read below this line.

**Model answer.** A 50-millisecond stall each minute is $0.05/60 = 0.083\%$ of the time, so it’s above the 99.9th percentile by time. By sample, it’s far less if the test sends few messages then. Plot latency over time, with the maximum per second. Line it up against scheduled jobs: log rotation, a timer, memory compaction, a snapshot. A regular period is a strong hint. Change one thing at a time, and confirm that the stall has gone.

**Mark.** 2 for the percentile arithmetic and the method. 1 for a list of causes without a test.

**Round 8.** *Interviewer:* “What do you want to ask me?”

Stop. Write your answer before you read below this line.

**Model answer.** Ask how code gets to production, what happens after an outage, and what a new engineer ships in the first month.

**Mark.** 2 for real questions on how work happens. 1 for general ones.

**Reading your total.** These bands are advice, not a pass mark from any firm. A total of 13 to 16 would be strong. For 9 to 12, drill the rounds you lost. Below 9, work through the matching chapters first.

**Classic wrong answer.** Answering with a data structure’s complexity alone. Here, a constant factor is usually the whole story, and you should say how you’d measure it.

**Why it matters.** Trading software pays for correctness and speed at the same time. A real interview would also include live coding, which this series’ coding books train.

**Question 21.8 ★★★★ LLE • market maker • experienced.**

**Low-latency engineer at a market maker.** A 45-minute interview with a low-latency engineer, in eight rounds, with paper and no calculator. Round figures for hardware are given in the prompts, as assumptions for the interview. Keep to the time for each round, and move on when it ends. Say what you are doing as you go. After the last round, mark each round out of 2 from the script.

| Round | Topic | Minutes | Your answer | Mark |
| --- | --- | --- | --- | --- |
| 1 | About you | 2 |  |  |
| 2 | Budget in cycles | 5 |  |  |
| 3 | Wires and distance | 7 |  |  |
| 4 | A chain of steps | 6 |  |  |
| 5 | Branches and caches | 7 |  |  |
| 6 | The kernel | 6 |  |  |
| 7 | Measuring a change | 9 |  |  |
| 8 | Your questions | 3 |  |  |

**Answer to Question 21.8.**

Keep everything below this line covered, and slide the paper down one stop line at a time. If your answer differs from the model, carry on from the model.

**Round 1.** *Interviewer:* “What’s the fastest thing you’ve ever built, and how do you know how fast it was?”

Stop. Write your answer before you read below this line.

**A strong answer** gives a number with how it was measured. As an illustration: “[System] handled [rate] with a 99th percentile of [number], measured [how, from where to where]. The slowest step was [step]. I’d next look at [what].”

**Mark.** 2 for a measured tail and how it was measured. 1 for a mean.

**Round 2.** *Interviewer:* “Your processor runs at 3 gigahertz, and you have 1 microsecond from packet to order. How many cycles is that? A cache miss to memory costs 100 nanoseconds. How many misses can you afford?”

Stop. Write your answer before you read below this line.

**Model answer: 3,000 cycles, and at most 10 misses, with nothing else.** A miss is 300 cycles. In practice, you can afford very few on the hot path, so the design goal is to have the data ready in cache, and to touch few lines.

**Mark.** 2 for the numbers and the design conclusion. 1 for the numbers.

**Round 3.** *Interviewer:* “A frame is 84 bytes on the wire, counting everything. How long does it take to send at 10 gigabits a second? Light in fibre travels at two thirds of its speed in air. Two exchanges are 1,200 kilometres apart. What’s the one-way delay by fibre, and through the air? What does that say about where to spend your effort?”

Stop. Write your answer before you read below this line.

**Model answer: 67 nanoseconds, 6 milliseconds and 4 milliseconds.** $84 \times 8/10^{10} = 67.2$ nanoseconds. At 200,000 kilometres a second, 1,200 kilometres takes 6 milliseconds, and at 300,000, it’s 4. So on that route, a 2-millisecond gap dwarfs any software work. Within one site, by contrast, the wire is short and your own code matters. Effort goes where the race is.

**Mark.** 2 for the three and the conclusion. 1 for two numbers.

**Round 4.** *Interviewer:* “A message passes five independent steps. Each one takes over 10 microseconds 1% of the time. What share of messages meet at least one slow step? If a message waits for the slowest of 20 parallel gateways? What if the slow moments come together?”

Stop. Write your answer before you read below this line.

**Model answer: 4.9%, 18.2%, and it falls towards 1%.** $1 - 0.99^5 = 4.9\%$, and $1 - 0.99^{20} = 18.2\%$. So a chain’s tail is far worse than a step’s tail, and fan-out multiplies it. If the slow moments all come together, say from a shared stall, then the slow share goes towards 1%, but all the steps are slow at once. Measure end-to-end, not step by step.

**Mark.** 2 for both numbers and the correlated case. 1 for one number.

**Round 5.** *Interviewer:* “A branch is mispredicted 20% of the time, at 15 cycles each. What does it cost on average? You scan one 8-byte field across 1,000 structs of 64 bytes. How many cache lines do you touch? How many if the field is in its own array?”

Stop. Write your answer before you read below this line.

**Model answer: 3 cycles, or 1 nanosecond; 1,000 lines against 125.** $0.2 \times 15 = 3$. An array of fields packs 8 per 64-byte line, so 125 lines. If cold, that’s 100 microseconds against 12.5. The layout’s worth more than the branch here. A strong candidate adds that a removed branch can also give steadier timing, which the tail cares about.

**Mark.** 2 for both. 1 for one.

**Round 6.** *Interviewer:* “Why bypass the kernel? Say a system call costs about 1 microsecond each way. What do you give up?”

Stop. Write your answer before you read below this line.

**Model answer.** A send and a receive take about 2 microseconds out of the path, which is twice the budget from round 2. And you avoid interrupts and scheduling, which matter even more for the tail. In exchange, you spin a core at full power, and you lose the kernel’s protections and tools: you own the network stack’s bugs, its monitoring and its recovery. It’s worth it where the race is microseconds, and it’s overkill where it isn’t.

**Mark.** 2 for the number, the tail and a real cost. 1 for the speed alone.

**Round 7.** *Interviewer:* “You’ve made a change that you think saves 2 nanoseconds on a message that takes 500, with a standard deviation of 50. How many samples per version do you need at 5% significance and 80% power? If successive samples have an autocorrelation of 0.9? How do you run this, and what can fool you?”

Stop. Write your answer before you read below this line.

**Model answer: about 9,800, then about 186,000.** $2 \times (1.96 + 0.84)^2 \times 50^2/2^2 = 9{,}800$. If the samples follow an AR(1), autocorrelation multiplies the variance of a mean by $(1 + \rho)/(1 - \rho) = 19$. Run them interleaved, on the same core, in the same run, because whole runs differ more than this effect. What fools you: processor frequency, memory layout changing with the code, warming up, and a mean that moves when the tail doesn’t. Compare the percentiles you care about, and pin the setup. If the code’s layout is what’s changed, then try several layouts.

**Mark.** 2 for the number, the correlation and interleaving. 1 for the number.

**Round 8.** *Interviewer:* “What do you want to ask me?”

Stop. Write your answer before you read below this line.

**Model answer.** Ask what the current budget is and where it goes, how you’d know that your change helped P&L, and how hardware and software work together here.

**Mark.** 2 for real questions on the measure of success. 1 for general ones.

**Reading your total.** These bands are advice, not a pass mark from any firm. A total of 13 to 16 would be strong. For 9 to 12, drill the rounds you lost. Below 9, work through the matching chapters first.

**Classic wrong answer.** Quoting a low mean, or a benchmark you can’t explain. The tail and how you measured it is what this interviewer wants to hear.

**Why it matters.** Latency work is only useful if its measurement can be trusted. A real interviewer would ask about the hardware you’ve actually used. Their figures would differ from these round ones, so ask.

**Question 21.9 ★★★★ Risk • bank • junior, experienced.**

**Market risk manager at a bank.** A 45-minute interview with a head of risk, in eight rounds, with paper and no calculator. Treat returns as normal, unless a prompt says otherwise. Keep to the time for each round, and move on when it ends. Say what you are doing as you go. After the last round, mark each round out of 2 from the script.

| Round | Topic | Minutes | Your answer | Mark |
| --- | --- | --- | --- | --- |
| 1 | About you | 2 |  |  |
| 2 | VaR | 7 |  |  |
| 3 | Two desks | 6 |  |  |
| 4 | A backtest of VaR | 8 |  |  |
| 5 | Tail measures | 5 |  |  |
| 6 | Liquidity | 6 |  |  |
| 7 | Credit | 4 |  |  |
| 8 | A trader in breach, and your questions | 7 |  |  |

**Answer to Question 21.9.**

Keep everything below this line covered, and slide the paper down one stop line at a time. If your answer differs from the model, carry on from the model.

**Round 1.** *Interviewer:* “Why risk, rather than trading?”

Stop. Write your answer before you read below this line.

**A strong answer** is positive about the work. As an illustration: “I like asking what can go wrong across a whole book, and being able to say no with numbers. In [example], I [found or measured something], and [what changed].”

**Mark.** 2 for a positive reason with an example. 1 for a reason alone. 0 if it sounds like second choice.

**Round 2.** *Interviewer:* “A book has a daily standard deviation of 10 million dollars. What’s its one-day 99% VaR? And its 95%? And its ten-day 99%? What assumption did you just use, and when does it fail?”

Stop. Write your answer before you read below this line.

**Model answer: 23.3 million, 16.4 million and 73.6 million dollars.** The multipliers are 2.326 and 1.645. Ten days takes $\sqrt{10} = 3.16$, assuming independent, identically distributed days and an unchanging book. That fails with volatility clustering, with trends, and when you can’t get out in ten days.

**Mark.** 2 for the numbers and the assumption. 1 for the numbers.

**Round 3.** *Interviewer:* “Two desks, with standard deviations of 10 and 20 million dollars, and a correlation of 0.3. What’s the total? What share of the risk does each contribute? In a crisis, the correlation goes to 1. What’s the total VaR then?”

Stop. Write your answer before you read below this line.

**Model answer: about 24.9 million, 26% and 74%, and about 69.8 million dollars of VaR.** The variance is $100 + 400 + 2 \times 0.3 \times 10 \times 20 = 620$. Each desk’s share of variance is its own variance plus its half of the cross-term: $160/620$ and $460/620$. With a correlation of 1, the total is 30, and $30 \times 2.326 = 69.8$, against 57.9 today. So diversification is worth 12 million dollars of VaR only as long as it lasts.

**Mark.** 2 for the numbers and the crisis point. 1 for the total alone.

**Round 4.** *Interviewer:* “In 250 days at 99%, you’d expect how many exceptions? You saw 8. How likely is that if the model is right? By how much is the VaR too low? What else could you check?”

Stop. Write your answer before you read below this line.

**Model answer: 2.5, about 0.4%, and about 26%.** The count is binomial with a mean of 2.5, and the chance of 8 or more is about 0.4%. The data’s tail is $8/250 = 3.2\%$, and $z = 1.852$. So if the shape is normal, the standard deviation should be $2.326/1.852 = 1.26$ times larger. Check whether the exceptions cluster, whether the position’s P&L was hypothetical or actual, and whether they fell in one desk.

**Mark.** 2 for the mean, a chance of the right size and the scaling. 1 for the mean and “too many”.

**Round 5.** *Interviewer:* “Compare 97.5% expected shortfall with 99% VaR. If returns are normal? If they are a Student $t$ with 4 degrees of freedom, scaled to the same standard deviation?”

Stop. Write your answer before you read below this line.

**Model answer: 2.34 against 2.33 standard deviations, and about 2.82 against 2.65.** For a normal, $\varphi(1.96)/0.025 = 2.34$, almost the same. For the $t$, they diverge: the 99% VaR is 2.65, and the shortfall is 2.82. A shortfall measures how bad it is beyond the cut-off, so it reacts to tails in a way that a quantile doesn’t. It’s also harder to backtest.

**Mark.** 2 for the normal numbers and the conceptual difference. 1 for the difference alone.

**Round 6.** *Interviewer:* “A position is 100 million dollars. The stock trades 20 million a day, and you allow 20% of that. How long does it take to exit? If you sell evenly, by what factor does your risk over the exit exceed one day’s risk on the whole position?”

Stop. Write your answer before you read below this line.

**Model answer: 25 days, and about 3 times.** $100/(0.2 \times 20) = 25$. Selling evenly, you hold $k/25$ of it on successive days, so the variance sums to $\sum_{k = 1}^{25}(k/25)^2 = 8.84$, and the root is 2.97. A VaR on a one-day horizon understates that by about 3 times. In a stress, volume falls and everyone’s selling, so it’s longer still.

**Mark.** 2 for the days and the factor. 1 for the days.

**Round 7.** *Interviewer:* “An exposure of 100 million dollars, with a 2% chance of default in a year and a 60% loss if it happens. What’s the expected loss? What credit spread does that correspond to, roughly?”

Stop. Write your answer before you read below this line.

**Model answer: 1.2 million dollars, and about 120 basis points.** $0.02 \times 0.6 \times 100$. The spread is about the default chance times the loss. Real spreads are usually higher, as they also pay for risk and liquidity.

**Mark.** 2 for both, and a reason for a difference from the market. 1 for one.

**Round 8.** *Interviewer:* “A top trader is 30% over their limit. They say that it’s a great trade, and they’ll be under by tomorrow. Their manager agrees. What do you do? Then, what do you want to ask me?”

Stop. Write your answer before you read below this line.

**Model answer.** Record the breach, and escalate it through the procedure, the same as for anyone. Ask for the trade to be brought back within limits, or for a temporary limit approved by the right person, in writing. Find out what the position would lose in a stress. A breach can be fine; an unreported one never is. Stay polite. Then ask how often limits get changed and why, and when risk last stopped something and was right.

**Mark.** 2 for following the procedure and asking for a stress number, without being hostile. 1 for one. 0 for letting it go because they’re good.

**Reading your total.** These bands are advice, not a pass mark from any firm. A total of 13 to 16 would be strong. For 9 to 12, drill the rounds you lost. Below 9, work through the matching chapters first.

**Classic wrong answer.** Reciting a framework. A head of risk wants to hear what a number assumes, when it breaks and what you’d do on the day.

**Why it matters.** Risk managers need numbers that people believe, and they need to hold their ground. A real interviewer would also ask about the regulation that applies to their own bank, which changes, so read the current text.

**Question 21.10 ★★★★ QT, Trader • crypto • experienced.**

**Final round: senior trader at a crypto firm.** A 60-minute final round with the head of trading, in eight rounds, with paper and no calculator. Everything here is invented, no venue is real, and nothing about any venue’s rules is stated as fact. Keep to the time for each round, and move on when it ends. Say what you are doing as you go. After the last round, mark each round out of 2 from the script.

| Round | Topic | Minutes | Your answer | Mark |
| --- | --- | --- | --- | --- |
| 1 | Your record | 5 |  |  |
| 2 | A basis trade | 10 |  |  |
| 3 | Liquidation | 8 |  |  |
| 4 | Venue risk | 7 |  |  |
| 5 | Two venues | 8 |  |  |
| 6 | Sizing | 8 |  |  |
| 7 | A bad week | 9 |  |  |
| 8 | Your questions | 5 |  |  |

**Answer to Question 21.10.**

Keep everything below this line covered, and slide the paper down one stop line at a time. If your answer differs from the model, carry on from the model.

**Round 1.** *Interviewer:* “Tell me what you’ve made, what you’ve lost, and what you’d do differently. No names of past employers, and nothing confidential. I want to know how you think.”

Stop. Write your answer before you read below this line.

**A strong answer** is honest about the worst loss, and about what share of results was skill. As an illustration, with your own facts: “Over [period], I ran [type of risk] at [volatility]. My worst month was [number], because [reason]. I changed [what] afterwards. I can show you [what’s permitted] and I can’t share [what isn’t].”

**Mark.** 2 for a real loss, a change and a clean line on confidentiality. 1 for numbers with no loss. 0 for sharing someone else’s secrets.

**Round 2.** *Interviewer:* “You buy 100 of spot, and short 100 of a perpetual swap with 25 of margin. The funding you receive is 15% a year, and it costs 0.1% per side, four sides in all, to open and close. What’s your return on capital for a year? Cash pays 5%. What funding makes this no better than cash?”

Stop. Write your answer before you read below this line.

**Model answer: about 11.7%, and about 6.65%.** Capital is 125. Net income is $15 - 0.4 = 14.6$, which over 125 is 11.68%. Setting $(f - 0.4)/125 = 5\%$ gives $f = 6.65$. So it’s an income trade, on funding that can fall quickly, and fees matter for a short hold.

**Mark.** 2 for return on all the capital and the break-even. 1 for quoting 15%.

**Round 3.** *Interviewer:* “Your short perpetual is closed out if the price rises 25%, as you’ve 25 of margin. Volatility is 80% a year, with no drift. What’s the chance of touching that level in 30 days? And with 50 of margin? And what’s the return with 50?”

Stop. Write your answer before you read below this line.

**Model answer: about a third, about 8%, and 10% on the same funding before fees.** The log distance is $\ln 1.25 = 0.223$, and $\sigma\sqrt{T} = 0.8\sqrt{30/365} = 0.229$. By reflection, it’s $2\Phi(-0.97) = 0.33$. With 50 of margin, $\ln 1.5 = 0.405$, and $2\Phi(-1.77) = 0.08$. Return falls to $15/150 = 10\%$. Close-out on a hedged trade is the risk here: you’d lose the short while holding spot, and you’d then be long at the top. You’d plan to top up margin from your spot, and you’d need to do that quickly, and on a stressed venue.

**Mark.** 2 for the reflection argument and the trade-off. 1 for “about a third” on intuition. A strong candidate says that continuous monitoring overstates it a little.

**Round 4.** *Interviewer:* “Each venue has a 2% chance of failing in a year, and you’d lose all you hold there. You hold 125 in one venue. What’s your expected loss? If you split across three independent venues? If you keep the spot off the venues and split only the margin?”

Stop. Write your answer before you read below this line.

**Model answer: 2.5, still 2.5 with a smaller worst case, and 0.5.** $0.02 \times 125 = 2.5$. Splitting doesn’t change the mean: three venues at $41.7$ each have the same total, but the worst likely case falls to a third, and you’d lose something $1 - 0.98^3 = 5.9\%$ of the time. Keeping spot in your own custody takes you to $0.02 \times 25 = 0.5$. So the most powerful decision is what’s on a venue at all. Note that these failures tend to be correlated. The 2% is a guess, so say so.

**Mark.** 2 for seeing that splitting cuts the tail and not the mean, and for moving the spot. 1 for one.

**Round 5.** *Interviewer:* “Venue A bids 100.20, and venue B offers 100.00. Fees are 5 basis points per side. Bringing inventory back costs 8 basis points, and you pay it only when both legs fill. Your second leg fills 80% of the time. A miss costs you 15 basis points in all and moves no inventory between venues. Is it worth doing?”

Stop. Write your answer before you read below this line.

**Model answer: no, at those numbers.** The gross is 20 basis points, and 10 after two fees. Inventory returns cost 8, leaving 2. With the miss: $0.8 \times (10 - 8) - 0.2 \times 15 = -1.4$, because inventory only has to come back when both legs fill. So the thing that looks like free money is a loss, unless you reduce the rebalancing cost, net it against flow in the other direction, or improve the fill rate. Break-even fill is $15/17$, about 88%.

**Mark.** 2 for including misses and rebalancing, and for naming a lever. 1 for 10 basis points with no rebalancing.

**Round 6.** *Interviewer:* “Your book has a Sharpe of 2, and a new strategy has a Sharpe of 1.5, with no correlation. You run 20% total volatility. How do you split the risk? What’s the combined Sharpe and return? What if the new one’s true Sharpe is 0.75?”

Stop. Write your answer before you read below this line.

**Model answer: 16% and 12% of volatility, a Sharpe of 2.5, and a 50% return. At 0.75, the Sharpe you get is about 2.05.** With no correlation, optimal risk is proportional to the Sharpe, $2:1.5$. So $20 \times 2/2.5 = 16$, and $20 \times 1.5/2.5 = 12$, with $\sqrt{16^2 + 12^2} = 20$. The return is $2 \times 16 + 1.5 \times 12 = 50$. If the true Sharpe is 0.75 at that split, the return is $32 + 9 = 41$, and $41/20 = 2.05$. So I’d give the new one less than the formula says, because a Sharpe you’ve measured is usually too high, and its correlation will rise in stress.

**Mark.** 2 for the split and the check of being wrong. 1 for the split.

**Round 7.** *Interviewer:* “You’re at that risk, and you’ve lost 6% this week. Is the strategy broken? Roughly how rare is that? What do you do on Monday?”

Stop. Write your answer before you read below this line.

**Model answer: not on this alone. It’s about 2.5 standard deviations, or about once in three years.** Weekly volatility is $20/\sqrt{52} = 2.77$, and the expected gain is $50/52 = 0.96$. So $z = (-6 - 0.96)/2.77 = -2.51$. The chance is about 0.6% a week, or once in about 3 years. Crypto’s tails are fatter, so it could be more frequent.

On Monday: split the loss by strategy, venue and factor. Was it funding, close-outs or hedges that failed, or was it a position that was over-sized? Check that your risk is what you think it is. Cut risk if the mechanics changed, or if a limit says so. Don’t cut only because of a loss, and don’t add to get back to even. Tell your manager before they ask.

**Mark.** 2 for the rarity with a caveat, and a process. 1 for one.

**Round 8.** *Interviewer:* “If you were me, why wouldn’t you hire you? And what do you want to ask me?”

Stop. Write your answer before you read below this line.

**Model answer.** Give a true weakness that matters here, and what you’re doing about it. As an illustration: “My record is in [one regime], and I haven’t run [this size]. I’d want a ramp-up until [evidence].” Then ask the things only a senior person can answer: how they sized the last failed venue, what capital is firm in a drawdown, and how pay works in a loss.

**Mark.** 2 for a real weakness and questions on capital and risk. 1 for either. 0 for “I work too hard”.

**Reading your total.** These bands are advice, not a pass mark from any firm. A total of 13 to 16 would be strong for a final round. For 9 to 12, drill the rounds you lost. Below 9, work through the matching chapters first.

**Classic wrong answer.** Showing only the yield. In this market, what ends a trader is close-out, a venue’s failure, or size that nobody could exit, and a head of trading is listening for those.

**Why it matters.** A final round asks whether you’d be safe with their capital. A real head of trading would know your market better than this script, and would test the parts of your record that you’ve left out.
