Trading & Capital Markets
Quantitative Developer
The bridge between research and money. Judged on correctness under adversarial conditions, not on elegance.
The bridge between research and money. Judged on correctness under adversarial conditions, not on elegance.
A day that is actually representative
| Time | What you are actually doing |
|---|---|
| 08:30 | Pre-open checks. Reference data, instrument master, expiry rolls, corporate actions effective today. |
| 09:15 | Market open. You are watching your own systems, not the market. |
| 11:00 | A strategy needs a new order type. The exchange's spec is ambiguous and you have to find out empirically in the test environment. |
| 14:00 | A reconciliation break — your position and the broker's differ by two lots. It is never nothing. |
| 16:00 | Post-close: P&L attribution, and a fill that came back at a price you did not expect. |
| 17:30 | Writing the piece of the system that stops a bad strategy before it costs money. |
The decisive round
“Design the risk layer that sits between a strategy and the exchange.”
Interviewer: “Assume the strategy can be wrong. Go.”
A weak answer. “I'd add pre-trade risk checks for position limits, order size limits and price bands, log everything, and have a kill switch the trader can use if something goes wrong.” The right list, with no reasoning about where the checks live, what happens when the check itself is slow, or how the system behaves when it loses connectivity — which is where real accidents happen.
A strong answer. “The framing I'd start from is that this layer exists because the strategy will be wrong, the market data will be wrong, and the connection will drop — and it has to fail safe in all three cases, not just the first.
Where it sits. In the order path, synchronous, before the gateway. Not asynchronous, not advisory. A risk check that can be bypassed under load is not a risk check. It has to be fast enough that nobody is ever tempted to turn it off, which in practice means simple arithmetic on pre-loaded limits rather than anything that touches a database in the hot path.
What it checks, cheapest first. Fat-finger bounds on price and quantity — is this order more than n% away from last traded, is the notional above a hard ceiling. Then position and exposure limits, gross and net, per instrument and per strategy. Then order rate limits, because a runaway loop sending a thousand orders a second is a more likely failure than a single wrong one, and exchanges have their own order-to-trade ratio penalties that you will breach first. Then daily loss limits, which is the one that actually stops a bad day becoming a fatal one.
The state problem, which is the hard part. The risk layer's view of your position has to be correct, and it gets its position from fills. If a fill is dropped or duplicated, the risk layer is now wrong and it will happily approve orders it should refuse. So it reconciles against the exchange's own position, continuously during the day and not just at close, and it goes flat-and-refuse on a mismatch rather than trusting itself.
Disconnection. If the market data feed goes stale, every price-based check is now evaluating against a stale price, which is worse than no check. So staleness is itself a condition: no tick in n milliseconds means reject new orders. And if the order gateway drops, the first thing on reconnect is not resuming — it is querying open orders and positions, because the exchange's view is truth and yours is a cache.
The kill switch should be at the gateway and it should cancel-on-disconnect, which most exchanges support natively. A kill switch that requires your process to be healthy in order to work is not one.
And I'd want the whole thing testable deterministically — a recorded market session replayed with injected failures — because you cannot test this in production and hope.”
Fail-safe reasoning across all three failure sources, treating stale data as a risk condition, and the point that the exchange's view of your position is truth. Cancel-on-disconnect is the detail that says you have worked in this environment.
What to build or bring
- Strong C++ or modern Python, and be honest about which. Most Indian broker and prop roles want both; core low-latency work is C++.
- Build something that talks to a real broker API — Kite Connect, Dhan, Alpaca, Interactive Brokers. Handling a real fill, a real rejection and a real disconnect is worth more than any project description.
- Know the order lifecycle cold: new, ack, partial fill, fill, cancel, cancel-reject, and every race between them.
- Have an opinion on testing. Deterministic replay of a recorded session is the answer they want to hear.
Compensation
| Market | Band | Notes |
|---|---|---|
| United States | $180k – $400k total | Prop firms at the top; banks and vendors lower |
| India | ₹18L – ₹80L | Wide band — broker tech at the low end, prop firms several times higher |
The book for this field
Trading & Capital Markets
Eight chapters on how markets actually work: the order lifecycle end to end, the limit order book and how a price is made, the Indian and US market structures side by side, what each instrument is really for, the full cost of a trade, market data and the errors that ruin research, and the latency budget.
Cross-cutting
Skills every archetype tests
These are shared across every field on this site — the same question asked in different vocabulary — so preparation here compounds rather than being spent once. The book above is specific to your field.
Practice the 10 Trading questions → · Back to Trading & Capital Markets →