← Back to blog BlackRock OA Question Types & Real Questions|Portfolio + SQL + Python OA Assist 2026
BlackRock

BlackRock OA Question Types & Real Questions|Portfolio + SQL + Python OA Assist 2026

2026-05-23

BlackRock's 2026 spring and summer recruiting OAs ship through HirePro / HackerRank, and the role family decides question weighting. This guide groups the surface by Investment Analyst / Quant / Aladdin Engineer, presents real-question Python and SQL solutions, and explains how the OA assist plugs in.

BlackRock OA Snapshot (2026)

Dimension Detail
Platforms HirePro (Investment) / HackerRank (Aladdin)
Duration 60–90 minutes
Questions 3–5 (always 1 situational)
Focus Portfolio, SQL, Python, probability
Grading Auto-graded with some rubric scoring
Pass rate ~35% per community reports

Track 1: Portfolio Analytics

Problem

Given a daily return series returns[] and a risk-free rate rf, compute Sharpe Ratio, Max Drawdown, and Information Ratio against a benchmark bench[].

Python Solution

import math

def portfolio_metrics(returns, bench, rf=0.0):
    n = len(returns)
    avg = sum(returns) / n
    var = sum((r - avg) ** 2 for r in returns) / (n - 1)
    sd = math.sqrt(var)
    sharpe = (avg - rf) / sd * math.sqrt(252)

    peak = -float('inf')
    cum = 1.0
    mdd = 0.0
    for r in returns:
        cum *= (1 + r)
        peak = max(peak, cum)
        mdd = max(mdd, (peak - cum) / peak)

    active = [a - b for a, b in zip(returns, bench)]
    avg_a = sum(active) / n
    sd_a = math.sqrt(sum((x - avg_a) ** 2 for x in active) / (n - 1))
    ir = avg_a / sd_a * math.sqrt(252) if sd_a else 0
    return sharpe, mdd, ir

Complexity: O(n). Hidden case: a single -1 return pushes cum to 0 and triggers a divide-by-zero trap.

Track 2: Portfolio SQL

Problem

Given holdings(account_id, asset_id, weight) and prices(asset_id, date, close), compute each account's daily portfolio value and 30-day volatility.

SQL Solution (CTE + window)

WITH port_value AS (
  SELECT h.account_id, p.date,
         SUM(h.weight * p.close) AS value
  FROM holdings h
  JOIN prices p ON h.asset_id = p.asset_id
  GROUP BY h.account_id, p.date
),
daily AS (
  SELECT account_id, date,
         value,
         (value / LAG(value) OVER (PARTITION BY account_id ORDER BY date)) - 1 AS ret
  FROM port_value
)
SELECT account_id, date,
       STDDEV_SAMP(ret) OVER (
         PARTITION BY account_id ORDER BY date
         ROWS BETWEEN 29 PRECEDING AND CURRENT ROW
       ) * SQRT(252) AS vol_30d
FROM daily
ORDER BY account_id, date;

Watch out: HirePro's SQL engine supports both STDDEV_SAMP and LAG, but some versions require an explicit ORDER BY. Community reports flag this as the single most common error.

Track 3: Python Data Cleaning

Problem

Read trades.csv, drop rows with quantity ≤ 0, missing price, or timestamp outside trading hours (9:30–16:00 ET); aggregate VWAP by symbol.

Python Solution

import csv
from collections import defaultdict

def vwap(rows):
    bucket = defaultdict(lambda: [0.0, 0])
    for r in rows:
        try:
            q = int(r['quantity'])
            p = float(r['price']) if r['price'] else None
            ts = r['timestamp']
        except Exception:
            continue
        if q <= 0 or p is None:
            continue
        hh, mm = int(ts[11:13]), int(ts[14:16])
        if (hh, mm) < (9, 30) or (hh, mm) > (16, 0):
            continue
        bucket[r['symbol']][0] += p * q
        bucket[r['symbol']][1] += q
    return {s: pv / vol for s, (pv, vol) in bucket.items() if vol}

Complexity: O(n). Common hidden cases: timestamps with milliseconds like 9:30:00.001 and rows crossing day boundaries.

BlackRock OA Distribution (2026)

Track Frequency Primary Roles Notes
Portfolio Analytics ★★★★★ Investment Analyst / Quant Always asked
Portfolio SQL ★★★★ Aladdin Engineer / Risk Window functions
Python Data Cleaning ★★★★ Risk / Data Engineer csv / pandas
Monte Carlo Simulation ★★★ Quant Probability + convergence
Situational ★★ All roles Multi-choice + short response

OA Assist Playbook

What oavoservice OA assist gives you

A HirePro "gotcha list"

We maintain an internal HirePro gotcha log: STDDEV_POP vs STDDEV_SAMP differences, LAG behavior on partition boundaries, building rolling windows in pure stdlib when the Python sandbox lacks pandas, etc. — 14 items. OA assist members receive it directly.

Add WeChat Coding0201 for pricing and scope.


FAQ

Does BlackRock OA allow pandas?

HirePro's sandbox ships without pandas — fall back to numpy / stdlib or write rolling yourself. The HackerRank Aladdin track permits pandas.

How long after passing the OA?

Community reports: phone screen in 7–14 days. The Investment track adds a 30-minute HR call before hiring-manager rounds.

Are the OAs identical across offices?

Investment Analyst banks share ~90%, with localization only in situational questions. Aladdin Engineer banks vary more — London, New York, and Gurgaon maintain different sets.

Cooldown if I fail?

12 months. Cross-role applications use a separate pool.


Preparing for BlackRock OA / VO?

oavoservice tracks BlackRock / Citadel / Bridgewater / Two Sigma / Vanguard end-to-end. Our mentors come from live PM / Quant / Risk teams and provide role-customized question banks, HirePro simulation, real-time SQL & Python OA assist, and case interview scripting.

👉 Add WeChat: Coding0201 for the BlackRock high-frequency bank and OA assist plan.


Contact

Email: [email protected]
Telegram: @OAVOProxy