pane-fm
A themeable file manager for Hyprland. Just CSS. No libadwaita theming battles. Webview-based (yes, really), with vim keybinds, a preview pane, and drag-and-drop.
long on data, short on sleep
A themeable file manager for Hyprland. Just CSS. No libadwaita theming battles. Webview-based (yes, really), with vim keybinds, a preview pane, and drag-and-drop.
Because pacman -Syu wasn't enough. A full-blown TUI for wrangling updates, orphans, rebuilds, and AUR packages on Arch Linux.
A GTK4 polkit authentication agent that handles privilege escalation with secure password handling, user selection, and custom CSS theming.
A compressed tour of my undergraduate finance education, from time value of money through portfolio optimization. Each post contains interactive tools to explore the math.
Building a Barra-style fundamental factor risk model from scratch, entirely in the browser. DuckDB WASM for the data, TypeScript for the math.
Rolling the model back to a formation date two years before the end of the sample, drawing a random 30-stock portfolio, and reshaping it three ways with a small active-set QP. Every prediction is then graded on the 104 weeks the model never saw.
Estimating the factor covariance matrix with a decaying memory, repairing thin specific risk estimates with shrinkage, and assembling the model. Any portfolio's predicted risk then costs one pass over the holdings and a 20 × 20 sandwich.
Estimating factor returns from the exposure matrix. Sector dummies make the regression exactly singular, the constraint that repairs it decides what every factor return means, and the solver is fifty lines of Cholesky and back-substitution.
I'm Jacob — a programmer and CFA charterholder working in data and analytics in asset management. Outside of work I play beach volleyball competitively and hold a second-degree black belt in tae kwon do.