Skip to content
C M Nafi

Garage

The Systems Workbench

Small tools I wanted and couldn’t find. They come from the two rooms I spend the most time in: the investment filings around my day job at Dasseti, and the cricket ground on weekends in Tampa Bay. I build them with AI coding tools; my part is describing exactly what should exist and checking that it does.

Projects
9
Live
7
Active R&D
2
Demos on this page
3

Catalog

Showing all 9 projects.

  • Live Finance & investing

    Updated

    Regulatory Lens

    Look up any SEC-registered investment adviser and see its registration, brochure and 13F holdings in one profile you can search or ask questions of.

    Key figure: 49,574 advisers · 6.75M 13F holdings

    Architecture

    1. SEC bulk files: ADV, 2A, 13F
    2. Python ingest
    3. SQLite, joined on CRD
    4. FastMCP tools + TinyLlama
    5. Search workspace
    Why I built it, and how it works

    Why I built it. Due diligence on an investment manager starts with public filings, and my work has always sat close to it: screening hedge funds at SkyBridge, and now software for diligence teams at Dasseti. But an adviser’s registration (Form ADV Part 1), brochure (Part 2A) and 13F holdings live in three separate SEC datasets, slow to pull together by hand and not structured for AI agents. I wanted them joined into one profile.

    How it works. A Python pipeline streams the SEC bulk files into SQLite, joins all three sources on the CRD number, and exposes the result through a seven-tool FastMCP server and a TinyLlama model fine-tuned with QLoRA on the brochures.

    • Astro
    • Python
    • SQLite
    • PostgreSQL
    • FastMCP
    • FastAPI
    • QLoRA / TinyLlama
  • Live Curiosity

    Updated

    Worldview

    An atlas of everyday choices. Follow your curiosity into psychology, culture, ethics, and the evidence behind what we know.

    Key figure: 4 doorways · 23 linked questions · 14 research sources

    Architecture

    1. Everyday choice
    2. Question page
    3. Research + limits
    4. Cultural lens
    5. Reflection prompt
    Why I built it, and how it works

    Why I built it. I grew up in a house where reading was the answer to boredom, and one question usually leads to the next. Everyday preferences open interesting questions, but the links between behavior, culture and evidence are hard to follow. Worldview lays them out as a map you can wander.

    How it works. A single static page. Each everyday choice opens a question page with research sources, their limitations, a cultural lens and a reflection prompt, and a trail keeps your path through the atlas.

    • HTML
    • CSS
    • JavaScript
  • Live Cricket & sports

    Updated

    Captains View

    Plan a cricket field by dragging players onto the ground. It checks the fielding rules on every move and mirrors the field for a left-handed batter.

    Key figure: Powerplay limit checked on every drop

    Architecture

    1. 12-player roster
    2. Drag onto SVG ground
    3. Role + powerplay check
    4. Mirror for left-hander
    Why I built it, and how it works

    Why I built it. I play league cricket across Tampa Bay. Captains still map fields on scraps of paper or generic boards that know nothing about match format, powerplays, or mirroring the field for a left-handed batter. I wanted a board that knows the rules.

    How it works. An SVG ground with pointer-event dragging. A rules check runs on every drop: one bowler, one keeper, eleven on the field, and the powerplay limit on fielders outside the 30-yard circle (measured as distance from the pitch centre).

    • Astro
    • TypeScript
    • Vanilla CSS
    • SVG
  • Live Finance & investing

    Updated

    CAIA Knowledge Hub

    Plain study notes, a formula sheet and a glossary for the CAIA alternative-investments curriculum: hedge funds, private equity, private debt, real assets and portfolio allocation.

    Key figure: 6 Level I + 2 Level II topics

    Architecture

    1. MDX topic notes
    2. Level I + II study paths
    3. Formula sheet
    4. A-Z glossary
    Why I built it, and how it works

    Why I built it. SkyBridge was my first close look at hedge funds and the wider world of alternative investments. The CAIA curriculum is the formal map of that world, but the material is scattered across textbooks, PDFs and formula sheets, with no single place to read, search and revise by topic.

    How it works. Topic notes are written in MDX and grouped by CAIA level, with a master formula sheet and a searchable A-Z glossary alongside.

    • Astro
    • MDX
    • KaTeX
  • Live Cricket & sports

    Updated

    Fielding Style Playbook

    Watch a cricket field move between plans as a match goes on, from the powerplay to the last overs, with notes on why each change happens.

    Key figure: 4 match-phase presets · 41-position grid

    Architecture

    1. 4 field presets
    2. Timeline slider
    3. Fielders glide between plans
    4. Phase notes
    Why I built it, and how it works

    Why I built it. The same weekend cricket, a different question. Standard plans like slip traps, mid-over rings or death-over shields are hard to explain to teammates without seeing the field move between them.

    How it works. A timeline slider morphs eleven fielders between four presets on an SVG ground, with a manual panel for strike handedness, powerplay and a 41-position grid.

    • Astro
    • JavaScript
    • Vanilla CSS
    • SVG
  • Live Cricket & sports

    Launched

    World Cup 2026 Corner

    A clutter-free companion to the 2026 FIFA World Cup across the USA, Canada and Mexico: match schedule, group tables, team profiles and a bracket simulator.

    Key figure: 104 matches · 48 team profiles · 16 venues

    Architecture

    1. Match file + team profiles
    2. Static Astro pages
    3. Group tables
    4. Bracket simulator
    Why I built it, and how it works

    Why I built it. The 2026 World Cup came to North America, and the big sports sites buried it under ads and generic data dumps. I wanted a clean, opinionated companion.

    How it works. A static Astro section built from a match file and one Markdown profile per team, with group standings and the bracket simulator running in the browser.

    • Astro
    • TypeScript
    • CSS
    • Vanilla JS
  • Live Cricket & sports

    Updated

    Play

    The games I follow, the teams I turn up for, and a few predictions to keep me honest.

    Key figure: 5 boards: FPL, F1, cricket, predictions, rivals

    Architecture

    1. FPL + OpenF1 data
    2. Season dashboards
    3. Club fixtures
    4. Picks saved on your device
    Why I built it, and how it works

    Why I built it. My FPL team, race weekends and club fixtures were scattered across different tabs. Play keeps the games I follow in one place, including my own Florida cricket teams.

    How it works. Season dashboards fed by the FPL and OpenF1 data, club records for my Florida cricket teams, and prediction games whose picks stay in the visitor’s browser.

    • Astro
    • TypeScript
    • OpenF1
    • FPL
  • Active R&D Finance & investing

    Updated

    ADV Screener

    Filter investment advisers by size, client type and disclosures, then line them up side by side.

    Key figure: Side-by-side adviser comparison

    Architecture

    1. SEC adviser data
    2. Typed models
    3. Static Astro build
    4. Filter + compare view
    Why I built it, and how it works

    Why I built it. The teams I work with at Dasseti evaluate investment managers for a living. Adviser data is public, but reading it well still means too much clicking, too much cleanup and too little side-by-side comparison.

    How it works. SEC adviser data is mapped into strict TypeScript shapes and compiled into a static Astro build, so screening is instant without a heavy single-page app. Year-over-year change tracking is next on the list.

    • Astro
    • TypeScript
    • MDX
    • SEC data
    No public build yet Try the Form ADV demo
  • Active R&D Finance & investing

    Updated

    Manager Search

    Type a fund manager’s name and get its filings, top 13F holdings and a summary grounded in those filings.

    Key figure: CRD + CIK entity resolution

    Architecture

    1. Manager name
    2. CRD + CIK resolution
    3. ADV context + 13F holdings
    4. Grounded summary
    Why I built it, and how it works

    Why I built it. A diligence question usually starts with a name. Public filings contain the answers, but it still takes too much manual stitching to turn a manager’s name into a usable snapshot.

    How it works. A debounced search resolves a firm name to its CRD and CIK, pulls Form ADV context and top 13F holdings, and writes a summary grounded only in those labelled filings.

    • Next.js
    • TypeScript
    • SEC API
    • OpenAI
    • Form ADV
    • Form 13F
    No public build yet Related: Form ADV demo

Try it here

Three small versions of the tools above, each tied to a part of my story. Try them here before opening the full tool.

Demo for Regulatory Lens and ADV Screener

Form ADV explorer

Form ADV is the public filing every SEC-registered investment adviser submits: how much it manages, for whom, and how. Reading it is where due diligence starts, the world I work in. Pick one of eight well-known advisers, several of them from my essays, and compare any two; BlackRock against Blackstone is a good start, since I once mixed them up. Regulatory Lens has full profiles for 49,574 advisers.

Filing snapshot

BlackRock Fund Advisors

CRD 105247 · SEC file 801-22609 · San Francisco, California

Regulatory assets under management, Item 5.F $4.28T $4,282,224,366,957

Discretionary 100% Non-discretionary 0%

Accounts
556
Employees
128
Non-U.S. clients
0%
Fee arrangements
Not in this snapshot

Client types by regulatory AUM, Item 5.D

  • Investment companies $4.28T 99.89%
  • Pooled investment vehicles $3.21B <0.1%
  • State or municipal government entities $1.37B <0.1%

One of several BlackRock advisers; BlackRock Financial Management, Inc. (CRD 107105) files separately. The Universe of Form ADV lists this entity at $3.05 trillion from an earlier bulk snapshot; this card uses the October 2, 2026 filing.

Other-than-annual amendment, filed Oct 2, 2026. Read from SEC IAPD on Oct 14, 2026. Open the filing · I Applied to Blackstone. I Interviewed at BlackRock.

Back to the catalog

Demo for CAIA Knowledge Hub

Portfolio allocation sandbox

SkyBridge was my first close look at how institutional money decides where to go, and alternative investments are the world the CAIA curriculum maps. Move money from public markets into private equity, private debt or real assets, and watch expected return, risk and liquidity shift. The numbers are teaching assumptions, not forecasts; the hub has the notes and formulas behind them.

60% public equities, 40% bonds, nothing private.

Public markets
60%
40%
Private equity & private debt
0%
0%
Real assets & hedge funds
0%

Sliders are linked: moving one rescales the others so the total stays at 100%.

Efficient frontier of expected return against annualized volatility under the illustrative assumptions, with the current mix marked. Expected return, % a year Annualized volatility, % Cash 3.0% Public equities: 7.0% expected return, 16% volatility (assumption) Equities Fixed income: 4.0% expected return, 6% volatility (assumption) Bonds Private equity: 9.5% expected return, 22% volatility (assumption) PE Private debt: 7.0% expected return, 12% volatility (assumption) Private debt Real assets & hedge funds: 6.0% expected return, 10% volatility (assumption) Real assets & HF Highest Sharpe ratio on this frontier: 0.39 Max Sharpe 0.39
Your mix Efficient frontier Single sleeve Highest Sharpe Long-only frontier from a 2% weight grid. The dashed line runs from cash through the highest-Sharpe mix.
Expected return
5.8%
Volatility
10.1%
Sharpe ratio
0.28
(return − 3.0% cash) ÷ volatility
Cross-asset correlation
0.10
Weighted average pairwise ρ: Σ wᵢwⱼρᵢⱼ ÷ Σ wᵢwⱼ over sleeve pairs
Severe drawdown, rough
≈ 30.4%
Heuristic: 3 × volatility, not a forecast
Private and less-liquid
0%
PE + private debt + real assets & hedge funds
Illustrative assumptions, not forecasts

Round teaching numbers chosen for this widget, not any provider’s capital-market assumptions. Private-market and real-asset volatilities are meant to be de-smoothed: closer to economic risk than appraisal-based reported returns. Fixed income is added so a 60/40 portfolio can exist.

Expected return and volatility assumptions by sleeve
Sleeve Expected return Volatility
Public equities 7.0% 16.0%
Fixed income 4.0% 6.0%
Private equity 9.5% 22.0%
Private debt 7.0% 12.0%
Real assets & hedge funds 6.0% 10.0%
Cash (risk-free) 3.0% 0.0%
Correlation matrix
Assumed correlations between sleeves
Sleeve EquitiesBondsPEPrivate debtReal assets & HF
Equities 1.000.100.750.600.55
Bonds 0.101.000.100.250.20
PE 0.750.101.000.550.50
Private debt 0.600.250.551.000.45
Real assets & HF 0.550.200.500.451.00

Back to the catalog

Demo for Captains View and Fielding Style Playbook

Fielding tactician

I play league cricket across Tampa Bay as an all-rounder who bowls right-arm fast. Each scenario is built from one of my match reports. Set the field, see whether it is legal, and compare it with a suggested one. Captains View and the Playbook have the full ground, roster and presets.

Leg side Off side 1 2 3 4 5 6 7 8 9
Inside the circle Outside the circle Rope left open Drag a fielder, or focus one and use the arrow keys (Shift for bigger steps).

Oct 1, 2024 · SWAT vs Royal Phoenix

Seven to defend

Final over · 16 overs a side

Royal Phoenix are 89/4 chasing 96. Seven needed from the last six balls, and Nafi has the ball.

Protect the boundary, or keep catchers in play?

From the match report
  • SWAT made 95/6 in 16 overs; Nafi scored 29 off 24.
  • Amit Saha was still in on 44 and looked the batter most likely to take the game away.
  • Wides in the middle of the over left Royal Phoenix needing 4 from 2.
  • Amit Saha tried to force it and Sourabh Chandran took the catch; the last ball, full and straight, was a dot.

SWAT won by 3 runs.

Outside the 30-yard circle 4 / 5 allowed
Behind square on the leg side 1 / 2 allowed

Legal field

Boundary protection 59/100
Single prevention 60/100
Simple heuristic, not a model. How it’s computed

A simple heuristic, not a statistical model. From the striker we sweep 72 shot directions, weighted toward straight and leg-side hits (an assumption). A direction counts as guarded when a boundary rider stands within about 14° of it (fading to nothing by 32°) for boundary protection, or a ring fielder 8 to 36 yards from the bat stands within about 16° (fading by 34°) for single prevention.

Rules shown: standard T20 fielding restrictions (at most 2 fielders outside the 30-yard circle in the powerplay, overs 1 to 6; at most 5 after it) and Law 28.4 (no more than 2 fielders behind square on the leg side). League playing conditions, and shortened matches, can differ.

  1. 1 Point in
  2. 2 Cover in
  3. 3 Mid-off in
  4. 4 Mid-on in
  5. 5 Square leg in
  6. 6 Deep cover out
  7. 7 Long-on out
  8. 8 Deep midwicket out
  9. 9 Fine leg out

Back to the catalog

Command menu

Home Front page, workbench and recent writing Shortcut: H
Projects Small tools I wanted and couldn’t find Shortcut: G
Essays & Notes Deep dives, book notes and match reports Shortcut: F
Story Dinajpur, Changshu, Iowa, Florida Shortcut: S
Connect Email and where to find me Shortcut: C
Switch to the Dark theme Paper and Dark, remembered on this device
Copy email address nafi@cmnafi.com