Skip to content

Latest commit

Β 

History

35 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Intro

Focus Domain Style

Followers Repos Profile views


πŸ‘¨β€πŸ’» About

I'm a self-taught, project-driven builder working toward becoming an AI & Machine Learning engineer β€” learning by shipping real, working tools rather than following a fixed curriculum. Currently a student, building outside of that on my own track.

I like applying ML and coding skills to finance, trading and quant concepts β€” creating tools that genuinely help investors and traders.

I like taking an idea from "does anyone actually need this" through to a live, tested product β€” not just a prototype.

Highlights

πŸš€ What I'm building

I build tools that solve one real problem well and are honest about their own limits β€” usually with an AI-assisted workflow (Claude Code) and a bias toward getting things correct before getting them polished.

Work is grouped below by the problem it belongs to. A category appears here once something is shipped in it.


β—† Flagship

Systems built to production standards rather than demo standards β€” the ones worth reading the source of. Where one is still being built, it says so.

πŸ“ˆmartex-quant β€” quantitative research platform for crypto Β stars

125 pre-registered trials across 120 hypotheses, walk-forward backtesting with realistic fees, deflated-Sharpe validation, Monte Carlo against prop-firm rule sets, paper trading, and an operations dashboard. It says plainly on the tin that it is not a profitable trading bot β€” the permanent ledger of every hypothesis that failed is the product, and the tooling exists to produce more of it.

Python Β· Polars Β· ccxt Β· pydantic β€” 184 commits Β· MIT Β· CI green


βš’οΈanvil β€” the AI code editor for quant, trading, crypto, ML and data work Β· download β†—

Monaco with real language servers β€” basedpyright running against your interpreter's site-packages, typescript-language-server for TS/JS β€” plus xterm.js terminals on node-pty, git diff bars and inline blame in the gutter, and ripgrep search. What makes it not just another editor is the loop it is tuned for: # %% cells run in a persistent IPython REPL with variables kept between runs, Parquet, Feather and Excel open in a grid virtualised to a million rows with per-column profiles, and a .ipynb converts to a # %% script in one click.

Then the details only someone living in that loop would build: 51 quant and ML snippets (Sharpe, Kelly, Black–Scholes greeks, purged K-fold, triple-barrier labels, ccxt pagination), 46 selection transforms, inline maths evaluation, clickable tracebacks, and a secret shield so an API key or a seed phrase never reaches a commit.

TypeScript Β· Electron Β· React Β· Monaco + LSP Β· xterm.js Β· IPython Β· Zustand β€” CI green Β· Windows installers published


🌐specter β€” a Chromium desktop browser with a local-first power toolkit Β· download β†—

A real browser first: tabs, tab groups, workspaces, profiles with isolated cookies and storage, per-site permissions, Chromium DevTools, session restore, and bookmark and history import from six other browsers. Then the tools layered on top, every one of them local, free and accountless β€” no API keys, no telemetry: AI through Ollama with an explicit context selector and citations, markdown notes with [[backlinks]] and hybrid keyword + semantic search over local embeddings, markets with candlestick charts and paper trading, and a system monitor.

The title bar doubles as an instrument panel β€” live CPU, RAM and GPU, tabs awake versus sleeping, trackers blocked, all measured rather than estimated. Tab sleeping runs a real lifecycle and reports the memory it actually released, which is the part most browsers only claim.

TypeScript Β· Electron 44 + Chromium 152 Β· React Β· SQLite FTS5 Β· Ollama Β· Lightweight Charts β€” 30 commits Β· MIT Β· six theme packs


πŸ›οΈaurelis β€” an autonomous quantitative research corporation

Ten departments, seven market desks, seventy-six role charters. Agents observe, hypothesise, run experiments, argue in scheduled meetings, decide, build strategies, manage risk, paper-trade β€” and reorganise the company itself when the evidence justifies it.

The demonstration is the part worth reading. A researcher registers a max-drawdown claim over the instruments still trading, and the run confirms it. A Critic raises SURVIVORSHIP β€” and does not write the test itself; the taxonomy generates it from the specification under review. The point-in-time re-run restores three delisted names, drawdown goes from 12% to 65%, and the claim is refuted by a measurement rather than by an argument. Nobody intervenes at any point.

It is the same defect martex-quant caught by hand on real crypto history, where it took a Sharpe of 1.47 down to 0.86. Here the organisation finds it unaided.

Python Β· SQLAlchemy Β· Pydantic Β· Typer Β· Rich β€” 19 commits Β· MIT Β· CI green Β· M14, past its roadmap Β· no live trading adapter exists


πŸ”¬nullius β€” an artificial research institution, built so that it can be proven wrong

AI Research civilization

Multi-agent empirical research carried from hypothesis through preregistration, sandboxed execution, adversarial challenge, independent replication and peer review, into a claim whose every number traces back to a hashed artifact. The norms are enforced as database invariants rather than prompts: preregistration is a content hash checked by a foreign key, the test split lives only inside a custodian process, and a CHECK constraint makes it impossible for an agent-authored number about the holdout to enter the database at all.

It is scored against structural causal models with known ground truth β€” including interventions whose true effect is exactly zero β€” so "did it reach the right conclusion, and was it appropriately confident?" is measured rather than judged by one language model reading another's prose. Its own thesis is falsifiable, and the benchmark is built to be able to say so.

Python Β· SQLAlchemy Β· SciPy Β· Pydantic Β· Typer β€” Apache-2.0 Β· CI green Β· in early development, built in the open against a published plan


πŸ“ˆ Quantitative Finance & Trading

Market structure, options pricing, and the calendar of things that actually move prices.

Project What it does Stack
vol-surface Interactive 3D implied-volatility surface, with the vols solved in-house rather than read from the feed β€” because put-call parity catches the vendor's own IV column disagreeing with itself by 13 vol points at two years. It solves against forward = spot, ignoring cost of carry; the error cancels at the money, so the ATM term structure looks textbook and the artefact only shows up where a surface is actually read Python Β· FastAPI Β· NumPy Β· Plotly Β· React
factor-exposure Regresses a portfolio's monthly excess returns on the five Fama-French factors plus momentum, to answer whether performance is alpha or just cheaply-bought beta. Every loading carries its standard error, t-statistic and 95% interval β€” a tilt that can't be told apart from zero is drawn hatched rather than reported as a small one, and a low RΒ² is presented as a finding rather than hidden Python Β· FastAPI Β· statsmodels Β· React
roll-yield Measures the roll cost buried inside commodity ETFs β€” the loss taken every month selling an expiring futures contract to buy a dearer one. UNG bleeds 26%/yr to it, while USO gained 17%, so it reports a tailwind as readily as a drag. GLD and SLV hold physical metal and never roll, and come out near zero β€” a control group that is what makes the other rows believable Python Β· FastAPI Β· pandas Β· Recharts Β· React
implied-move Β· live β†— Options-implied expected move before earnings. Separates the mean absolute move from a true 1Οƒ, which most calculators quietly conflate β€” a ~20% understatement of the real band Next.js Β· TypeScript
market-calendar Β· live β†— Day-by-day calendar of everything that could move US stocks β€” FRED macro releases and S&P 500 / Nasdaq-100 earnings, merged into one list ranked by impact Next.js Β· TypeScript Β· Turso

🧠 Machine Learning & Data Science

Making models fail honestly in testing instead of expensively in production. These five compose: find leaks statically, catch what static analysis can't at runtime, split correctly, see the split, then trust what comes out.

Project What it does Stack
timeleak β€” pip install timeleak Static linter for data leakage in time-series ML code: scalers fitted before the split, centred windows, backward fill, shuffled splits. Seven rules, zero dependencies, runs as a pre-commit hook Python Β· ast
leakguard The runtime half β€” raises at fit() when a transformer was fitted on rows outside the current fold, a leak class no static analysis can see. Its demo scores 0.731 on 2000 columns of pure noise where the honest answer is 0.500 Python Β· scikit-learn Β· pandas
purged-cv Sklearn-compatible purged k-fold with an embargo, for labels whose outcome windows overlap. Shows that not shuffling is not enough: contiguous folds still score 0.781 on noise, purging brings it to 0.503 Python Β· scikit-learn Β· NumPy
cv-visualizer Renders train / test / purge / embargo boundaries as a diagram for any sklearn splitter β€” so leakage is something you can see rather than something a test asserts Python Β· Matplotlib
calibrate Reliability diagrams, ECE / MCE / Brier, Platt scaling and isotonic regression. Makes you state what a risk band promises rather than inferring one, because an uncalibrated "high" is worse than no score Python Β· scikit-learn Β· Matplotlib

πŸ›‘οΈ Consumer & Small-Business Tools

Putting an expert-level answer in the hands of someone who shouldn't have to be an expert.

Project What it does Stack
late-payment-chaser Β· live β†— Statutory late-payment interest UK and EU freelancers are legally owed on overdue invoices. Every rate cited to the central bank's own table, all money in integer minor units, and no model anywhere near the arithmetic Next.js Β· TypeScript
ScamLens Β· in development Scans a message and rates how likely it is to be a scam β€” reporting the specific signals behind the score rather than handing back a bare verdict β€”

Also: dev-journal β€” running notes on ML, quant research and engineering practice.


🧭 How I work

Principle In practice
🚒 Ship a small, honest v1 Scope is chosen by what's expensive to change later β€” data model, units, rounding
πŸ§ͺ Test what can't be wrong Money, dates and legal figures get tested harder than layout and copy
πŸ” Disclose over hide An assumption stated in the open beats one buried in the code
πŸ“š Learn the domain Well enough to know where a tool could quietly be wrong

πŸ› οΈ Tech

LANGUAGES

Python TypeScript JavaScript SQL

MACHINE LEARNING & DATA

scikit-learn NumPy pandas Polars Matplotlib Apache Arrow Pydantic statsmodels yfinance DuckDB Jupyter IPython MetaTrader 5 PyTorch TensorFlow SciPy

WEB

Next.js React Node.js FastAPI Vite Electron Chromium xterm.js LSP Lightweight Charts SQLite Monaco Editor Drizzle ORM Zustand TanStack Query Radix UI ECharts Plotly Recharts Zod Tailwind CSS Turso SQLAlchemy Alembic PostgreSQL

TESTING, CI & TOOLING

pytest Vitest ESLint Ruff Playwright Prettier mypy Hypothesis uv Typer Rich GitHub Actions Git pre-commit

SHIP

Vercel PyPI Claude Code Claude Agent SDK Ollama


πŸ“Š GitHub Stats

GitHub stats Most used languages



Streak



Contribution activity



Contribution snake

Stat cards above are generated from live GitHub data by a scheduled workflow in this repo β€” no third-party image services, so nothing here can break when someone else's server goes down.


πŸŽ“ Currently learning

AI engineering fundamentals Β· advanced machine learning (neural network architectures, fine-tuning, RAG) Β· applied trading and quant concepts Β· and how to take a tool from "it works on my machine" to "someone I've never met trusts it with their invoice."


πŸ“« Find my latest work pinned above, or browse my repos β€” most are small, scoped, and built to actually be used.

About

Config files for my GitHub profile.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages