Skip to content
View martex-dev's full-sized avatar
🧠
Locked in flow state
🧠
Locked in flow state

Block or report martex-dev

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
martex-dev/README.md
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


🔬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
timeleakpip 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 PyTorch TensorFlow SciPy

WEB

Next.js React Node.js FastAPI Vite Plotly Recharts Zod Tailwind CSS Turso SQLAlchemy Alembic PostgreSQL

TESTING, CI & TOOLING

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

SHIP

Vercel PyPI Claude Code


📊 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.

Pinned Loading

  1. martex-quant martex-quant Public

    Quantitative research platform for crypto: 120 pre-registered hypotheses, deflated-Sharpe validation, and a permanent ledger of everything that failed. Currently paper trading.

    Python 20

  2. market-calendar market-calendar Public

    One day-by-day calendar merging US macro releases (FRED) and S&P 500 / Nasdaq-100 earnings (NASDAQ), ranked by impact.

    TypeScript 4

  3. timeleak timeleak Public

    Static linter that finds data-leakage patterns in time-series machine learning code. Zero dependencies.

    Python 3

  4. factor-exposure factor-exposure Public

    Paste a portfolio, get its Fama-French 5 + momentum factor loadings - with significance, R-squared and a plain-language read of what it actually means.

    Python 2

  5. nullius nullius Public

    An artificial research institution, built so it can be proven wrong. Multi-agent empirical research with preregistration invariants, holdout custody, adversarial review, and evaluation against plan…

    Python 3

  6. vol-surface vol-surface Public

    Interactive implied-volatility surface viewer. Computes IV in-house from option mids against a put-call-parity forward, because yfinance's own IV column fails put-call parity by 13 vol points at tw…

    Python 3