Theo
Formerly Quant Trainer. "Theo" is trader shorthand for theoretical value.
Interview practice for quant trading: probability, statistics, mental maths and market making, with an adaptive coach and real questions candidates report from trading firms. It runs as a website and an Android app from one codebase.
Open the app · Explore with sample data · Android APK · Research report
| Coach and skill map | A reported interview question | On a phone |
|---|
| | |
Technical highlights
- A learner model chosen by out-of-sample evaluation. The coach estimates your chance of answering each of its 84 skills. I compared seven models (per-skill Beta, Elo, Bayesian Knowledge Tracing, Performance Factor Analysis and others) prequentially on simulated learners, with two structurally different ground truths and bootstrap CIs. The original per-skill estimate turned out to be biased by the app's own question selection. Elo beat it under both truths (log loss −0.046 and −0.024, 95% CIs clear of zero) and now drives the coach. → research/REPORT.md
- Every answer checked twice, by different methods.
- In the app, Monte Carlo simulations are tested against the exact answers within 5 standard errors.
- In CI, a separate Python derivation of every interview answer (exact fractions, the Bellman equation, Markov chains, a linear program for a poker game) must match what the app serves: 63/63 agree.
- This caught a widely circulated wrong answer to a reported Jane Street question (10.2; the correct value is 8.15).
- Diagnoses the kind of mistake, not just whether you were wrong. Wrong answers are classified as complement slip, percent vs decimal, factor of 2, variance vs SD, rounding, and so on, and the advice targets that slip. Missed questions return on a spaced-repetition schedule.
- Trading games with testable engines.
- Figgie bots value cards with the exact Bayesian posterior over the 12 possible decks; tests check it is calibrated and that full bot games conserve cards and chips.
- Bet sizing is scored by expected log-growth against Kelly, so a lucky run can't hide over-betting.
- The daily challenge is generated from the date with a seeded RNG, so everyone gets the same questions without a server.
- One codebase, website + native app.
- Plain HTML/JS with no build step, deployed as an offline-capable PWA.
- Wrapped with Capacitor for Android and iOS. CI builds the APK and a signed Play Store bundle.
- Platform differences (storage, export, back button) live in one module.
- Engineering hygiene.
- ESLint; unit tests run in Node and the browser.
- Playwright end-to-end tests on desktop and a touch phone, including offline mode.
- axe accessibility checks and WCAG AA colour contrast; Lighthouse in CI.
- A Content Security Policy, and schema validation that stops an imported progress file from injecting script.
What's inside
| |
|---|
| Interview plan | Pick the firm and date; get a daily checklist weighted to what that firm tests, with a countdown on the home screen. |
| Topic guides | Static pages per topic (key results and a worked example of each question type) generated at deploy, alongside the firm guides. |
| Handbook | A full work-through course in 31 chapters, from fractions through linear algebra and stochastic calculus to factor models. Each has step-by-step worked examples, diagrams, predict-first simulations, numeric and concept checks, homework on paper, and a place to explain the idea in your own words. Finished chapters come back for spaced review, each part ends in a mixed exam, and there's a final exam. |
| Search | One box across questions, topics, formula cards, speed tricks, case studies and screens; / opens it on a keyboard. |
| Coach | Tracks 84 skills, diagnoses error types, ranks what to practise next with reasons, and offers a 15-question diagnostic and one-tap drills. |
| Practice | 15 topics and 84 randomised question generators with worked solutions and a "check by simulation" button. Adaptive mixed practice. |
| Interview questions | 207 questions: ones candidates report from 25 firms (Jane Street, SIG, Optiver, IMC, Citadel Securities, Five Rings, Two Sigma, Flow Traders, Wincent, Akuna, Da Vinci, DRW, Hudson River Trading, Jump, Maven, Eclipse, Old Mission, Belvedere, Squarepoint, Valkyrie, Virtu, Tibra, Tower Research, D. E. Shaw and Mako), plus classic puzzles and practice questions, clearly labelled. Every part has 3–5 hints that build up without giving the answer. Tick questions off or flag them unsure to come back to. Each is sourced, with follow-ups, and every numeric answer is re-derived independently in Python. Behavioural questions come with a structure to aim for. Timed mock-interview mode. |
| Mistakes to review | Every wrong answer comes back after 1, 3, 7 and 21 days until mastered. |
| Daily challenge | The same 5 questions for everyone each day (seeded from the date, no server), one attempt, with a shareable result and streak. |
| Weak spots | An adaptive learner. It pools everything you have answered (topic drills, interview questions, handbook checks, mental maths, market making) into one estimate per interview skill area, then runs 12-question sessions on the weakest. A miss steps down a level and brings the area back; two right steps up. |
Run it
npm run serve # then open http://localhost:8765/www/
No build step: any static file server works, and opening www/index.html directly works too (without offline mode).
npm install
npm test # unit tests: generators, simulations, security, coach
npm run lint
npm run test:e2e # Playwright, desktop + phone, with accessibility checks
pip install -r research/requirements.txt
npm run verify # Python re-derivation vs the app's answers
npm run research # learner-model study → research/REPORT.md
How it's built
- Code:
www/ is the whole app: views in js/views/, the coach and Elo model in js/coach.js, storage and input validation in js/core.js. See docs/ARCHITECTURE.md.
- Website: every push to
main is tested and deployed to GitHub Pages; Netlify and Vercel configs are included.
- Android and Play Store: tagging a version builds the APK. Releases and Play Store signing are covered in docs/RELEASING.md.
- Privacy: all progress stays on the device. See the privacy notice.
Contributing
If you've had a quant interview, the most useful thing you can add is a question you were asked. The question form takes two minutes. See CONTRIBUTING.md.
Acknowledgements
Interview questions are paraphrased from public candidate reports and linked to their sources; firms' names are used only to attribute those reports.
License
MIT