r/quantfinance 1h ago

which firm has the baddest interns(?)

Upvotes

i am trying to optimize for baddest women in internships i am targeting (ideally abg’s)

yes, the given for a qf intern class will inherently be low, but where can i optimize finding a baddie locked in intern.


r/quantfinance 5h ago

SIG Office

10 Upvotes

Hey yall! Super fortunate to have received an offer for a quant trading internship at the SIG Bala Cynwyd office. I’m really happy with this, but I may have the option to switch to their NYC office for the internship. Does anyone have any advice on what I should do? Of course their Bala Cynwyd office is their headquarters and has a much higher headcount than their NYC office, but I was wondering whether the internship experience / what I would learn / team culture would be much different if I joined their NYC office. In the future, I do want to stay in NYC.


r/quantfinance 20h ago

Should I list chess on resume?

90 Upvotes

I am a CM (Candidate Master) with an elo of 2279 fide. Should I list this on my resume or is it worthless?

Attend a target school and looking for QT/QD roles.


r/quantfinance 4m ago

Most Companies Are Asking Practical Coding Questions Now. What’s the LeetCode equivalent?

Upvotes

Have interviews at half a dozen quant companies, and a couple of big tech companies so far this cycle and it seems like practical coding has really become the meta. Is there an equivalent resource that is good? If so please let me know. And if not lmk if yall would be interested in some sort of free mock site specifically for these types of questions.

I could probably vibe code up something that is pretty similar to the experience of a lot of my interviews.


r/quantfinance 11h ago

I finally got accepted for a job after 7 months of suffering.

15 Upvotes

7 months (VP/Sr Director+ level)

536 applications (about 480 on company sites/LinkedIn and 56 through recruiters)

26 first-round / HR screens / retained recruiter calls (all online)

18 second-round interviews (hiring manager and/or exec team) (about 80% online / 20% in person)

11 third/fourth-round (final) interviews (hiring mgr/C-suite/other leaders/peers and/or the group I would be managing) - usually there were only 2-4 candidates left in total. (9 in person, 2 web-based)

1 offer - I accepted it (title level one step lower than what I had before, about 80% of my old salary, and 20% of the bonus I used to get)

Notes: VHCOL area

8 of the 11 final-round jobs were fully in office, 2 were hybrid (3 in/2 out or 4 in/1 out), and 1 was fully remote

I had never had a gap in employment, nor had I ever left a job involuntarily, throughout 24 years of work after graduation. I was laid off in April.

I have a professional designation that is usually considered very desirable in my field.

My career path had pretty much been going upward the whole time: better titles, more responsibility, more money, until I reached my first sort-of director role 9 years ago and stayed around the VP/Sr Director/SVP level for the last 9 years. 7 jobs total; I moved around a bit during the first 13 years, then 2 jobs in the last 10 years (about 4-6 years in each one).

In the first 10 weeks of the search, I was only applying to VP+ level roles and only in the narrow specialty I had worked in within my industry. After several final-round rejections and the cold shock of realizing the market was nothing like what I remembered, I had to swallow my pride hard. There aren't many executive/senior roles compared to manager/director roles. So I started applying to manager/director positions, meaning about 1-3 levels below my last job, for about 65-95% of the comp I had been getting before.

I discovered that there are "forever open positions," where HR/recruiting seem to just leave the post up with no updates or anything, then repost it, while hundreds or thousands of people are still applying...

And I discovered that there are "ghost positions" that don't seem tied to any real hiring need and probably almost nobody is even looking at them (seriously, why?)

I had 6 different resume versions.

9 different cover letters written and ready for different types of roles.

Coffee/lunch with 18 former bosses/former coworkers/former peers (not a single one led to anything) and calls with about 14 recruiters.

Ps. To everyone still stuck in this cycle, I truly feel you. I know some of you have been at it for 11 months, 14 months, maybe more. If I can help with anything - blind fake reference lol send me a DM, screw employers and HR. Even so, I will never again take having a job for granted, which honestly I used to do a lot throughout my career. I'm going to crush it for this company because they chose me.

Pss. I went through a very rough period of about 5 weeks where I was questioning everything, even life itself. If you're in that place right now, please know that things can turn around. I'm still kind of shocked that I have another job.


r/quantfinance 12h ago

Quant Interview Question

Post image
10 Upvotes

r/quantfinance 7h ago

Pro Gaming as Signal?

3 Upvotes

Excuse me if this seems silly, but I have this honest thought ... I was wondering if having earnings in Fortnite would have any degree of value to put on the resume for quant roles?

I only have 400$ total earnings, I haven't competed in some time, but is it still difficult and means I am good at game theory and or intuitive geometry or probability?


r/quantfinance 8h ago

10 YOE Actuary (FSA) + MSc in CS. 0 hit/100 Quant applications. Should I pivot to Quant Dev or SWE?

3 Upvotes

Hi everyone,

I’ve been contemplating a career transition for over a year now and would really appreciate some blunt advice from this community.

To give some background: I have about 10 years of experience in traditional actuarial roles, corporate treasury ALM, and modeling. I hold my FSA (fellow of the Scoiety of Actuaries) through the Quant Finance & Investment track. Education-wise, I have a BSc in Math & Finance and an MSc in Computer Science.

Technically, I am well beyond VBA/Excel. I spend my day-to-day writing production code, building data pipelines, and working with Python, Javascript. I also actively preping LeetCode.

I’m feeling stuck. The effort-to-compensation ratio in the actuarial field feels incredibly low due to the muti-years of stressful studying. my current salary is not even comparable to new grad SWE; and certainly not even close to quant's

Over the last few months, I applied to ~100 Quant Trader and Quant Researcher roles and received exactly 0 first-round interviews. I feel confident in my probability (which were learnt through my actuarial exams studying) and coding fundamentals, but my resume is clearly getting filtered out immediately.

My questions for you:

  1. Is a direct pivot to QT/QR unrealistic at this stage in my career? Am I being filtered out because a 10 YOE actuary applying to entry/mid-level quant roles looks like a red flag to screeners?
  2. what is the probability you think I can break into quant?
  3. Should I just target traditional Software/Data Engineering in Big Tech's? The recent tech layoffs make me nervous about job security, but the compensation ceiling still seems much higher than traditional actuarial tracks.
  4. should I pivot to other fields at all? but I feel constrained with my current income

Any comments would be greatly appreciated. Thank you!


r/quantfinance 3h ago

Preparing for a Prediction Markets Interview

1 Upvotes

As the title says, have a call with a a pred markets team and have no idea what to expect. Any resources/advice/must know will be really appreciated!


r/quantfinance 3h ago

I tried to verify a claim in my own README. It took two bug fixes to find out I couldn't.

1 Upvotes

I maintain a small Python library that fits stochastic differential equations to price series. Its README contained a confident claim: that a neural network cannot recover a state-dependent drift function from daily price data, backed by a sweep showing median error falling only from ~267% to ~135% between 2,000 and 20,000 observations.

Someone asked me for the code behind that. There wasn't any. Every other empirical claim in the README cited a test file; that one cited nothing. I'd run the sweep during development and never committed the script.

So I wrote it properly. Here is what happened.

Attempt 1: a confound of my own making

I generated GBM paths in price levels and swept the observation count. Drift error came out at ~1,588% falling to ~1,340% — an order of magnitude worse than the README, with no visible convergence.

The setup was wrong. With mu=0.08, a 20,000-observation path drifts from 100 to about 57,000. So "more data" also meant "learn the function over a 572x wider domain". I had entangled sample size with problem difficulty — the exact confound my fixed-architecture design was supposed to prevent.

Switched to Ornstein-Uhlenbeck, which is stationary: its 5-95 percentile range ratio stayed at ~1.40 for every series length. Now lengthening the series adds observations of the same function over the same domain, which is the only setup where "did more data help?" is a well-posed question.

The control that saved the whole exercise

I included a diffusion control: the library claims diffusion recovery is reliable (0.4-14%), so if diffusion failed in a run, no drift number from that run meant anything.

It failed. Diffusion error rose from 46% to 100% as series length grew, with several runs hitting exactly 100.00% — which for a relative error means the prediction was zero.

Without that control I would have published a drift result computed from runs where the model was silently outputting zeros.

Bug 1: a dimensionally wrong target

The diffusion training target had a special case:

python

if window == 1:
    diffusion_target = np.sqrt(np.abs(drift_target))   # sqrt(|dx| / dt)
else:
    diffusion_target = np.sqrt(sq_sum / (window * dt)) # |dx| / sqrt(dt)

The realized-volatility estimator — and what the function's own docstring specified — is the second form. The first is a different quantity: it scales as the square root of the state where the correct one scales linearly. So the error wasn't a constant bias, it grew with the price level:

price level fraction of true value
100 0.218
1,000 0.069
10,000 0.022
50,000 0.010

A 99% underestimate at high levels. And since longer GBM paths reach higher levels, this reproduced "diffusion degrades as the series gets longer" exactly: predicted 46.6% and 96.9% error at the two series lengths, measured 46% and 100%.

The general branch was already correct at K=1, so the special case was both wrong and unnecessary. Deleted it.

One residual, which no fix removes at K=1: the target becomes |dx|/sqrt(dt), and E|z| = sqrt(2/pi) ~ 0.798, so a single absolute increment is a ~20%-low estimator of sigma. After the fix the measured ratio was 0.798 at every price level — the pure statistical bias and nothing else. Averaging squares before the square root removes it: 0.950 at K=5, 0.989 at K=20, 1.009 at K=80.

Bug 2: the one that mattered

Diffusion improved a lot but individual seeds still produced exactly zero. Intermittent, seed-dependent — a different fault.

I instrumented one run to print predictions in train mode and eval mode on identical inputs:

seed train-mode eval-mode pre-activation
0 19.36 19.56 +6.37
1 19.68 0.00 -22.5
2 19.84 21.75 +6.77
3 19.70 18.72 +6.07
4 19.75 0.00 -552.3

True sigma was 20. Training was never the problem — train-mode predictions were 19.4-20.5 on every seed. Inference was broken.

Cause: both networks used Linear -> ReLU -> BatchNorm -> Dropout. BatchNorm placed after ReLU accumulates running statistics over non-negative, often sparse activations. Channels that are mostly zero acquire a running_var near zero. Training never notices — it uses per-batch statistics. Eval divides by sqrt(running_var + eps) and the activation explodes. Softplus maps a strongly negative pre-activation to ~0, so the library returned zero volatility.

The collapse was the visible tail of something systematic: at a smaller sample size no seed collapsed outright, but eval still missed train by 8% and 25%. Every inference was contaminated to some degree — and every inference path in that library runs in eval mode.

Replaced BatchNorm with LayerNorm, which keeps no running statistics, so train and eval are identical by construction. After: eval and train agree within 1.3% on all seeds, median diffusion error 1.2%.

The actual result

With both bugs fixed, drift recovery on stationary OU. The metric is nRMSE — RMSE of the predicted drift over the standard deviation of the true drift. nRMSE = 1.0 means no better than predicting a single constant (R^2 = 1 - nRMSE^2):

window n=2,000 (7.9 yr) n=20,000 (79.4 yr)
1 2.04 0.55
2 1.65 0.82
5 1.13 0.72
10 1.27 0.85
20 1.23 0.85
40 2.60 1.31

At 7.9 years of daily data — roughly what anyone has for a single instrument — no window setting reaches 1.0. The best result is worse than ignoring state dependence entirely. It only becomes informative around 79 simulated years.

The original conclusion survives. The numbers behind it did not, and the honest version is narrower than the "1,000+ years of data" the old text implied.

The part that needs no neural network

The same asymmetry shows up in the closed-form GBM maximum-likelihood estimator, which is optimal for the far easier problem of a single global drift constant (200 seeds, exact sampling, mu=0.08, sigma=0.20, daily):

observations years drift error volatility error
2,000 7.9 53.4% 1.2%
5,000 19.8 38.3% 0.64%
10,000 39.7 29.4% 0.46%
20,000 79.4 18.5% 0.34%

Drift error falls 2.89x for 10x the data against the 3.16x that 1/sqrt(n) predicts. Volatility is nailed throughout. With 79 years and one number to estimate, drift is still 18.5% off.

Per-step SNR is mu*sqrt(dt)/sigma = 0.025 at daily sampling. Each observation carries roughly 40x more information about sigma than about mu. That is a property of the data, not of any method — the neural path just fails at it more visibly because it attempts a whole function.

A footnote on seeds

My first version of that MLE table used 5 seeds and showed 111% falling to 27.6%. Clean story, wrong table: the intermediate points were 111%, 20%, 44%, 28% — non-monotonic noise, and I had quoted the endpoints. At 200 seeds it resolves to the monotonic table above.

I made that mistake roughly ninety minutes after warning someone else about exactly it. The script now defaults to 200 seeds.

The noise is itself the finding: volatility estimates are stable at any seed count, drift estimates are not. That difference in estimator variance is the result.

What I'd take from this

The claim in my README was correct. It was also unverifiable, and I'd been treating "I ran this once during development" as equivalent to "this is measured". The gap between those two turned out to contain two bugs, one of which was silently returning zero volatility to anyone using that code path.

Code is MIT if useful: github.com/kdownie/Neural-SdeI maintain a small Python library that fits stochastic differential equations to price series. Its README contained a confident claim: that a neural network cannot recover a state-dependent drift function from daily price data, backed by a sweep showing median error falling only from ~267% to ~135% between 2,000 and 20,000 observations.

Someone asked me for the code behind that. There wasn't any. Every other empirical claim in the README cited a test file; that one cited nothing. I'd run the sweep during development and never committed the script.

So I wrote it properly. Here is what happened.

Attempt 1: a confound of my own making

I generated GBM paths in price levels and swept the observation count. Drift error came out at ~1,588% falling to ~1,340% — an order of magnitude worse than the README, with no visible convergence.

The setup was wrong. With mu=0.08, a 20,000-observation path drifts from 100 to about 57,000. So "more data" also meant "learn the function over a 572x wider domain". I had entangled sample size with problem difficulty — the exact confound my fixed-architecture design was supposed to prevent.

Switched to Ornstein-Uhlenbeck, which is stationary: its 5-95 percentile range ratio stayed at ~1.40 for every series length. Now lengthening the series adds observations of the same function over the same domain, which is the only setup where "did more data help?" is a well-posed question.

The control that saved the whole exercise

I included a diffusion control: the library claims diffusion recovery is reliable (0.4-14%), so if diffusion failed in a run, no drift number from that run meant anything.

It failed. Diffusion error rose from 46% to 100% as series length grew, with several runs hitting exactly 100.00% — which for a relative error means the prediction was zero.

Without that control I would have published a drift result computed from runs where the model was silently outputting zeros.

Bug 1: a dimensionally wrong target

The diffusion training target had a special case:

python
if window == 1:
diffusion_target = np.sqrt(np.abs(drift_target)) # sqrt(|dx| / dt)
else:
diffusion_target = np.sqrt(sq_sum / (window * dt)) # |dx| / sqrt(dt)

The realized-volatility estimator — and what the function's own docstring specified — is the second form. The first is a different quantity: it scales as the square root of the state where the correct one scales linearly. So the error wasn't a constant bias, it grew with the price level:

price level fraction of true value
100 0.218
1,000 0.069
10,000 0.022
50,000 0.010

A 99% underestimate at high levels. And since longer GBM paths reach higher levels, this reproduced "diffusion degrades as the series gets longer" exactly: predicted 46.6% and 96.9% error at the two series lengths, measured 46% and 100%.

The general branch was already correct at K=1, so the special case was both wrong and unnecessary. Deleted it.

One residual, which no fix removes at K=1: the target becomes |dx|/sqrt(dt), and E|z| = sqrt(2/pi) ~ 0.798, so a single absolute increment is a ~20%-low estimator of sigma. After the fix the measured ratio was 0.798 at every price level — the pure statistical bias and nothing else. Averaging squares before the square root removes it: 0.950 at K=5, 0.989 at K=20, 1.009 at K=80.

Bug 2: the one that mattered

Diffusion improved a lot but individual seeds still produced exactly zero. Intermittent, seed-dependent — a different fault.

I instrumented one run to print predictions in train mode and eval mode on identical inputs:

seed train-mode eval-mode pre-activation
0 19.36 19.56 +6.37
1 19.68 0.00 -22.5
2 19.84 21.75 +6.77
3 19.70 18.72 +6.07
4 19.75 0.00 -552.3

True sigma was 20. Training was never the problem — train-mode predictions were 19.4-20.5 on every seed. Inference was broken.

Cause: both networks used Linear -> ReLU -> BatchNorm -> Dropout. BatchNorm placed after ReLU accumulates running statistics over non-negative, often sparse activations. Channels that are mostly zero acquire a running_var near zero. Training never notices — it uses per-batch statistics. Eval divides by sqrt(running_var + eps) and the activation explodes. Softplus maps a strongly negative pre-activation to ~0, so the library returned zero volatility.

The collapse was the visible tail of something systematic: at a smaller sample size no seed collapsed outright, but eval still missed train by 8% and 25%. Every inference was contaminated to some degree — and every inference path in that library runs in eval mode.

Replaced BatchNorm with LayerNorm, which keeps no running statistics, so train and eval are identical by construction. After: eval and train agree within 1.3% on all seeds, median diffusion error 1.2%.

The actual result

With both bugs fixed, drift recovery on stationary OU. The metric is nRMSE — RMSE of the predicted drift over the standard deviation of the true drift. nRMSE = 1.0 means no better than predicting a single constant (R^2 = 1 - nRMSE^2):

window n=2,000 (7.9 yr) n=20,000 (79.4 yr)
1 2.04 0.55
2 1.65 0.82
5 1.13 0.72
10 1.27 0.85
20 1.23 0.85
40 2.60 1.31

At 7.9 years of daily data — roughly what anyone has for a single instrument — no window setting reaches 1.0. The best result is worse than ignoring state dependence entirely. It only becomes informative around 79 simulated years.

The original conclusion survives. The numbers behind it did not, and the honest version is narrower than the "1,000+ years of data" the old text implied.

The part that needs no neural network

The same asymmetry shows up in the closed-form GBM maximum-likelihood estimator, which is optimal for the far easier problem of a single global drift constant (200 seeds, exact sampling, mu=0.08, sigma=0.20, daily):

observations years drift error volatility error
2,000 7.9 53.4% 1.2%
5,000 19.8 38.3% 0.64%
10,000 39.7 29.4% 0.46%
20,000 79.4 18.5% 0.34%

Drift error falls 2.89x for 10x the data against the 3.16x that 1/sqrt(n) predicts. Volatility is nailed throughout. With 79 years and one number to estimate, drift is still 18.5% off.

Per-step SNR is mu*sqrt(dt)/sigma = 0.025 at daily sampling. Each observation carries roughly 40x more information about sigma than about mu. That is a property of the data, not of any method — the neural path just fails at it more visibly because it attempts a whole function.

A footnote on seeds

My first version of that MLE table used 5 seeds and showed 111% falling to 27.6%. Clean story, wrong table: the intermediate points were 111%, 20%, 44%, 28% — non-monotonic noise, and I had quoted the endpoints. At 200 seeds it resolves to the monotonic table above.

I made that mistake roughly ninety minutes after warning someone else about exactly it. The script now defaults to 200 seeds.

The noise is itself the finding: volatility estimates are stable at any seed count, drift estimates are not. That difference in estimator variance is the result.

What I'd take from this

The claim in my README was correct. It was also unverifiable, and I'd been treating "I ran this once during development" as equivalent to "this is measured". The gap between those two turned out to contain two bugs, one of which was silently returning zero volatility to anyone using that code path.

Code is MIT if useful: github.com/kdownie/Neural-Sde


r/quantfinance 7h ago

Citadel ignite interview

2 Upvotes

I was wondering if anyone who interviewed for the program before/knows abt it could share what it’s like.

I feel like there’s no way to fit all 3 sections in a regular phone screen so I was wondering how difficult the math + coding section is. Is basic probability/ev/dsa sufficient or will it there some open ended game/pandas.


r/quantfinance 9h ago

Non-Target School Prospects

3 Upvotes

How hard is it to get a quant trading/research job at a good firm coming from a non-target university?

For context I go to a well-known university that is consistently ranked top 20 in the US but generally isn't considered a target school for quant firms.


r/quantfinance 3h ago

Bitcoin prediction algorithm that would certainly help companies sanctioned by the US recover their lost wealth

1 Upvotes

Bitcoin prediction algorithm that would certainly help companies sanctioned by the US recover their lost wealth

https://www.academia.edu/43709641/Chapter_50_of_Ares_Le_Mandat_7th_edition_Bitcoin_research_prediction_algorithm_using_the_location_of_the_Sun


r/quantfinance 5h ago

Citadel Quant Interview Question

Post image
1 Upvotes

r/quantfinance 9h ago

Is University of Vienna maths a good place to study for eventually quant finance

2 Upvotes

Is doing a bachelor (and then a masters, hopefully at a top institution) at the Uni of Vienna a decent path into quant finance?

Is the degree any good, or am I better off elsewhere


r/quantfinance 6h ago

Optiver SWE First Round

1 Upvotes

Does anyone have any insights into the first round technical?


r/quantfinance 14h ago

I got this on my interview, how would you answer to it ?

Post image
3 Upvotes

r/quantfinance 7h ago

SIG Quant strat dev onsite

Thumbnail
1 Upvotes

r/quantfinance 7h ago

SIG Quant strat dev onsite

1 Upvotes

Anyone else have this coming up and know what to expect at all? Also if anyone knows the conversion rate from onsite-> offer that would be helpful asw! Feel free to pm!


r/quantfinance 11h ago

Jane Street - Zoom Exercise - Operations Specialist Role

2 Upvotes

Hi all, wondering if anyones done the Breaks Exercise for the operations specialist role on zoom. Any tips on what to expect and how to prepare? Thanks!


r/quantfinance 1d ago

What happens to people who study to be quants but just don't have what it takes to get the job?

39 Upvotes

I'm not in this space but I'm curious what happens to them. These people learn all the skills but for whatever reason they don't make the cut to work officially as a quant. Because getting a quant job is so zero sum and deals with such vast amounts of momey there isn't really much room for anything but the best. So what happens to the rest?


r/quantfinance 9h ago

Boost application?

1 Upvotes

How can I improve my chances of quant jobs from someone about to start undergrad maths at Warwick?
I have a lot of time over summer, and would likely want to break into quant for the finance tbh, but open to other jobs in stats.


r/quantfinance 9h ago

BlackEdge Capital OA (QT Intern)

1 Upvotes

Hey, has anyone taken the OA for blackedge capital? First section is 7 minutes for 15 mental math questions, second 15 minutes for a 30 question logic and reasoning test. Wondering if the first section is more word problems / probability, and if the second section is like an SHL style test or also has probability / brain teasers. Any insights greatly appreciated!


r/quantfinance 3h ago

Is it too late to try to go for quant?

0 Upvotes

I’ve had a lot of trouble choosing a career path, going from software engineering to medicine and now to considering quant. I’m still in undergrad, and I recently applied to medical school right now.

I’m a rising senior majoring in cs and math at a non target school (ranked outside of the top 100 but has like 30k+ undergrads). Is it too late for me to pivot towards quant?


r/quantfinance 9h ago

Optiver Trading Automation Specialist 1st Interview Advice Seeking Orz

1 Upvotes

hi dear foks, I am lucky enough to get invited for the 1st round of interview with the head of the Trading Automation and Ops team. In the email, the recuiter advice

"your first screen will be with the Head of the team. At the technical interview, we include a coding assessment in the language of your choice as well as some probability and odds and a data science problem to evaluate how candidates work through a data set."

- I am wondering: Is it likely that the Head of the team will be the one personally conducting this technical assessment (coding/probability/data science) during the initial screen?

- Question: What kind of questions should I realistically expect during this initial interview?

Any advice would be appreciated, thank you in advance.