Work · 14 projects

Work

  • public, opens
  • private code
  • competition

Case studies of private work (results, architecture and what I learned, without code) and project pages for public repositories.

Show work for a target role

Showing 14 of 14Showing 10 of 14: AI engineeringShowing 9 of 14: Quant

01AI engineering · Quant

  • Private code

Pulse

Diagram in two lanes. On one Raspberry Pi 5: Bybit and Binance WebSockets feed Rust ingest, Redis Streams and Python services for storage, the daily digest, the console and the paper book. Offline research on public data: 1,871 trials counted, validated with CPCV, the deflated Sharpe ratio, placebo controls and a sealed holdout, written up as a working paper reporting a holdout Sharpe ratio of 3.45 (backtest).ON ONE RASPBERRY PI 5Bybit, BinanceWebSocketsRust ingestRedis StreamsPython servicesstorage · digestconsole · paper bookOFFLINE RESEARCH ON PUBLIC DATA1,871 trialscountedCPCV · deflated Sharpeplacebo · sealed holdoutWorking paperholdout Sharpe 3.45Diagram in two lanes. On one Raspberry Pi 5: Bybit and Binance WebSockets feed Rust ingest, Redis Streams and Python services for storage, the daily digest, the console and the paper book. Offline research on public data: 1,871 trials counted, validated with CPCV, the deflated Sharpe ratio, placebo controls and a sealed holdout, written up as a working paper reporting a holdout Sharpe ratio of 3.45 (backtest).ON ONE RASPBERRY PI 5Bybit, Binance WebSocketsRust ingestRedis StreamsPython servicesstorage · digestconsole · paper bookOFFLINE RESEARCH ON PUBLIC DATA1,871 trialscountedCPCV · deflated Sharpeplacebo · sealed holdoutWorking paperholdout Sharpe 3.45
Fig. 1Two lanes: capture and paper trading on the Pi, research offline on public data. Schematic.

A counted search of 1,871 trials, pre-registered in a hash-chained ledger from 12 Oct. The one surviving market-neutral book scored Sharpe 3.45 on the 2026 holdout (backtest, after costs), and my own adversarial review then downgraded it: the paper reports the result and the downgrade.

Rigor
Every result deflated for 1,871 counted trials; from 12 Oct 2026 every test hash-chained into a ledger, with its pass and kill bars, before it ran
Best result
Holdout Sharpe 3.45, +23.0 bp/day net, HAC t 2.61, worst drawdown 7.9% (backtest); downgraded on my own review because part of its design had seen the window

Rust · Redis Streams · Python, on one Raspberry Pi 5

02Quant

  • Private code

Multi-exchange crypto market-data platform

Data-flow diagram. Exchange feeds enter Rust collectors (19 of 33 exchange integrations implemented by me), which publish normalized events on NATS. Go services, a gateway and a market engine, consume them and use ClickHouse, PostgreSQL and Redis; a Node API, which is also the control plane, serves the React/TypeScript web clients.Exchangesvenue feedsRust collectors19 of 33 by meNATSbusGo gatewaymarket engineClickHousePostgreSQL · RedisNode APIcontrol planeReact / TS UIweb clientsData-flow diagram. Exchange feeds enter Rust collectors (19 of 33 exchange integrations implemented by me), which publish normalized events on NATS. Go services, a gateway and a market engine, consume them and use ClickHouse, PostgreSQL and Redis; a Node API, which is also the control plane, serves the React/TypeScript web clients.Exchangesvenue feedsRust collectors19 of 33 by meNATS busGo gatewaymarket engineClickHousePostgreSQL · RedisNode APIcontrol planeReact / TS UIweb clients
Fig. 2High-level data flow of the platform. Schematic.

Production crypto market-data platform, co-developed in a team of two: I implemented 19 of its 33 Rust exchange integrations and the shared normalization layer.

Scope
Co-developer, two-person team

Rust · NATS · Go · ClickHouse

03AI engineering · Quant

  • Private code

Prediction-market matching and arbitrage

An LLM contract-matching pipeline over ≈ 255k Kalshi and Polymarket markets, feeding a fee-aware arbitrage scanner. Built solo, with 529 automated tests.

Scope
Solo rebuild of a WUTIS student-team project

Python 3.12 · Polars · scikit-learn · sentence-transformers

04Quant

  • Private code

Order-book spoofing-pattern detector

Detector for a pattern consistent with spoofing on a crypto perpetual: over 14 h, about 97% of 4,961 large placements were cancelled essentially unfilled.

Scope
Solo project, built for traders: specification, architecture, analysis direction and deployment

Python 3.11+ · websockets, aiohttp · Polars · PyArrow / Parquet

05Quant

  • Private code
  • Competition, team entry

IMC Prosperity 4

Team entry: I built the fair-value models, quoting logic and research tooling. My team reached Phase 2. Round-1 test-run PnL rose from 1,817 to 4,789 XIRECs.

Scope
Team entry: built the fair-value models and quoting logic; wrote the trading code and research tooling

Python 3.12 · pandas, NumPy · SciPy (optimize), statsmodels · Jupyter, ipywidgets, Plotly

06AI engineering · Quant

WUTIS

Four semesters at WUTIS: led a 3-person CRNN volatility team and a 5-person QNN portfolio team, and taught coding workshops; both teams I led won their semester pitches.

Scope
Team member, then project lead of two teams; workshop leader and recruiter

Python · TensorFlow / Keras · Qiskit · PyTorch

07AI engineering · Quant

  • Employer work, confidential

AI-assisted legacy modernization at Erste Digital

An AI pipeline that turns legacy Natural/Adabas banking code into as-is docs and review-ready Java/OSB integration code: 5 use cases, 10+ connectors delivered.

Scope
Software Engineer

Natural / Adabas · Java · Oracle Service Bus · GitHub Copilot CLI

08AI engineering · Quant

QNN forecasting

BSc thesis graded 1: Qiskit and PyTorch QNNs forecasting returns and covariances of five assets, with a pipeline that reproduces the thesis results bit for bit and is benchmarked on 121 held-out days.

Method
Parametrized quantum circuits trained through PyTorch, 32 Optuna trials per target, exact and noisy Aer simulation
Data
Daily bars of BNDX, GLD, IBM, NVDA and USO, split chronologically 359/119/121

Python · Qiskit and Qiskit Aer · PyTorch · Optuna

09Quant

Bass local vol

An exact Gaussian convolution restored the martingale property that quadrature broke on the real smile (max |z| 17.8 → 1.8) and cut the fixed point from 254/499 to 10/12 iterations.

Data
SPX close of 15 Aug 2019: 1,026 calls and puts, 246/65/67 cleaned OTM quotes for three expiries
Method
Theorem 2.1 fixed point, exact large-step Monte Carlo, hat-bump vega Greeks checked against bump-and-revalue

Python · NumPy and SciPy · Jupyter · pytest

10AI engineering

Math-notes agent skills

A fail-closed gate between LLM extraction and the build refuses missing items, dangling edges, cycles and broken LaTeX; the live demo maps all 18 results of my BSc thesis.

Evaluation
69 automated tests (46 pytest + 23 node:test) and a no-LLM fixture pipeline in CI

JavaScript · Python · MathJax · LaTeX

11AI engineering

n8n agents on a Pi

Agent output is grounded and fail-closed: the scout may pick only numbered candidates, and nothing reaches Notion unless validation passes.

Scope
2 production pipelines and 4 support workflows on one Raspberry Pi 5; no cloud LLM API keys

n8n · Ollama · Qdrant · SearXNG

12AI engineering

ECTS Ledger

Clash detection works on real meeting dates, so interleaved fortnightly slots are not flagged; the catalogue rebuilds itself weekly from u:find.

Evaluation
71 automated tests (45 pytest + 26 node:test) on saved u:find responses, in CI

Vanilla JavaScript · Python · Beautiful Soup · GitHub Actions and Pages

13AI engineering

Twisty Lab

Every built-in algorithm passes a verifier that runs it on a cube model; the 57 case diagrams are generated from the algorithms, not drawn.

Evaluation
303 Vitest tests; all 57 curated algorithms and all 98 JPerm listings pass the verifier

TypeScript · React · cubing.js · Vite

14AI engineering

Puppet Cube solver

On the 9 movable edges, every two-edge flip, single swap and unprotected 3-cycle is answered; the slowest request takes about 0.5 s.

Method
Move tables derived from geometry; BFS up to 4 macros and a bidirectional search to 8

Python · Tkinter · unittest · ruff and mypy --strict

Research only; not investment advice.