I recently interviewed for a Quant Developer role at Engelhart, on the US Power & Gas side.
The second round was two hours, split into data processing and system design.
The data processing part was done in something like Colab, but it was super annoying: the file the interviewer wanted me to open wouldn't load (404), so I had to quickly download some time series + node data from a website, hourly level. The main problem was that I'm not familiar with pandas. The LeetCode-style stuff isn't enough. You need to be comfortable with real-data work, especially finding missing values in a multiindex and data transformation. As a result I basically didn't finish anything.
The system design was done on Miro. The interviewer said clearly that no code was needed, I mainly just had to draw the architecture / flowchart and add some pseudocode.
The gist of the question: around 6 AM every day, a public URL publishes a weather forecast CSV. The data includes:
- 10 weather scenarios
- the next 15 days
- hourly frequency, so about 360 timestamps per scenario
- weather variables such as temperature, wind, soil moisture, cloud/rainfall
The system already has a set of black-box models provided by a quant research team, for example:
Weather inputs
├── Electricity Demand Model
├── Wind Power Model
├── Solar Power Model
└── Hydro Power Model
↓
Electricity Price Model
I was asked to design a system that does: daily forecast ingestion → validation → historical storage → run every model across all scenarios → aggregate results → make the forecasts available to traders in a dashboard. They also wanted results generated as soon as possible after a new forecast is published.
After that the interviewer started drilling down layer by layer:
- What stack would you use for the ingestion service? How would you schedule it given that the file arrives around 6 AM rather than exactly at 6 AM?
- Would you store the CSV exactly as received or transform it?
- One DAG or multiple tasks?
- How do you kick off the model runs? Are these part of the same Airflow workflow?
- Where could this pipeline fail, and how would you handle different failures?
- Summary aggregation
- How would you materially make this available to traders? What dashboard stack would you use and how would you host it?
- Right now there are only 10 scenarios. If it later becomes hundreds or even thousands of scenarios, what would you change?
Discussion
Loading comments…