Four projects: a portfolio app, a quantitative research tool, a poker engine, and a neural pitch shifter.
01 / THE PORTFOLIO APP · 2026—PRESENT · ACTIVE · FUNCTIONAL STAGING
A portfolio tracker built across four backend services.
A working portfolio tracker for virtual accounts and shared households. It records transactions, calculates holdings, valuation, P&L and time-weighted returns, and tracks allocation drift using live prices.
STATUS / DATE
Functional staging August 2026
ROLE
Creator
SERVICES
4 deployed backend services
CONTRACTS
REST · gRPC · codegen
PLATFORM
k3s · Helm · Terraform
PLATE 01 / THE PORTFOLIO APP — PUBLIC STAGING DEPLOYMENTLIVE PRODUCT · AUGUST 2026Technical details+
01 / BOUNDARIES
FastAPI handles the main product workflows. Rust handles quote ingestion and calculation-heavy work. The public API uses OpenAPI; services communicate over gRPC using protobuf.
02 / CORRECTNESS
Transactions are the source of truth. Positions and daily NAV can be rebuilt from the ledger, and a dirty watermark queues recalculation when an older transaction changes.
03 / SECURITY
The gateway signs tokens with Ed25519. Other services validate them from the public JWKS and receive audience-scoped credentials that expire after 60 seconds.
04 / DELIVERY
Terraform provisions Hetzner and Cloudflare. Helm deploys the services to k3s after database migrations, and Playwright checks the deployed commit before it is marked ready on staging.
Performance & reliability4 examples from the current build+
01 / QUERY PATH347 ms → 1.05 ms
TimescaleDB continuous aggregates reduced a measured six-symbol, 1.55-million-row price-history query while returning all 546 chart points identically.
02 / IDLE COST≈3.1M → 0 writes/month
Quote caching changed from supply-pushed polling to demand-filled write-back, eliminating projected Redis writes when staging has no active readers.
03 / FAN-OUT2H → ≈2 Redis commands
A sparse GetQuotes gRPC batch resolves up to 256 symbols through one MGET and one set-based Timescale query instead of one quote call per holding.
04 / AUTH STATE6 → 1 mint commands
An atomic Lua script replaced six refresh-token mint operations; complete issue and rotation flows fell from 8/9 commands to 3/4.
I’m adding rolling volatility, drawdown, Sharpe and Sortino ratios, benchmark beta, historical VaR, correlations, Monte Carlo projections, and factor exposure. Each calculation will be checked against reference fixtures before it appears in the Risk interface.
02
UK capital gains
A Rust tax service will implement HMRC same-day matching, the 30-day bed-and-breakfast rule, and Section 104 pooling, with worked-example and property tests plus tax-year reports exported to R2.
03
Production connections
The next step after staging is direct Trading 212 and IBKR sync, production OAuth, and clearer failure states.
03 / VIEW FINAL ROADMAP ITEM+
Production connections
The next step after staging is direct Trading 212 and IBKR sync, production OAuth, and clearer failure states.
02 / OPENQUANT · 2025—2026 · ACTIVE · PRE-RELEASE ALPHA
Run and compare reproducible backtests from Python strategies.
An early alpha for running Python strategies and inspecting the results. Each run records its code, parameters, data version, engine version, and random seed. The current build has completed a 190-trial grid search.
STATUS / DATE
Pre-release alpha August 2026
ROLE
Creator · Full-stack engineer
RESULT
190 / 190 sweep trials completed
DATA
4 sources
PORTFOLIO
Up to 50 symbols
SWEEPS
190 verified · 10k limit
PLATE 02 / OPENQUANT — MARKET RESEARCH WORKSPACEREAL PRODUCT CAPTURE · AUGUST 2026Explore product screens4 real interface capturesClick to expand+
Research can use Yahoo Finance, Binance, Twelve Data or local CSV files, with portfolios of up to 50 symbols.
02 / RUNS
Grid and seeded-random searches support up to 10,000 trials. The run shown completed 190. Strategy code runs without network access and under process resource limits.
04 / NEURAL PITCH SHIFTER · 2026 · ACTIVE EXPERIMENT · TRAINING
An experiment in shifting pitch without losing timbre.
The pipeline uses a conditional U-Net to predict a pitch-shifted mel-spectrogram, then HiFi-GAN turns it back into audio. Demucs can separate vocals before processing.
STATUS / DATE
Experimental · No validated result yet August 2026
ROLE
Creator · ML engineer
RESULT
The pipeline is implemented, but training and model comparisons are still in progress. The diagram shows the intended signal flow.
Built forecasting and allocation tools for the logistics team, contributing to a reported 15% reduction in costs. I also built a Telegram bot that gave managers up-to-date product metrics and charts.
KCL RACING / FORMULA STUDENT
Writing firmware for KCL Racing’s steering-wheel electronics.
I programmed STM32 firmware in low-level C for a display embedded in the steering wheel, while working on reliable fuel-level tracking and the control logic around acceleration during electronic downshifts.
The firmware depended on decisions from the engine and powertrain teams. I turned those discussions into timing, sensor, actuator, and failure-state requirements, then fitted the work into a deterministic loop on one microcontroller core.
PLATE / STEERING ELECTRONICSFUNCTIONAL SYSTEM BLUEPRINT
01
Design for physical uncertainty
Fuel moves under braking and cornering; readings need filtering, sanity checks, and behaviour that remains useful when the signal is imperfect.
02
Make time and failure explicit
On one core, every task competes for a bounded budget. Display refreshes and control paths must be scheduled deliberately, with safe outputs and recovery treated as part of the design.
03
Agree on boundaries first
Electronic shifting crosses firmware, mechanical behaviour, engine response, and driver expectations. We had to agree on those boundaries before encoding them.
The main lesson was practical: reliability came from lots of small decisions about timing, bad sensor data, safe outputs, and recovery.
MODULES Artificial intelligence · Operating systems and concurrency · Data structures · Databases · Robotics · Computer systems · Signals and systems · Machine Learning · Data Science · Optimization Methods · Compilers and Formal Languages · Cryptography
ADDITIONAL King’s Quant Academy · Associate Data Scientist in Python, DataCamp, June 2024
04
Technical profile
The tools and engineering areas I’ve worked with across these projects.
01
Backend
FastAPI and RustProduct workflows · calculation services
PostgreSQLTransactions · rebuildable views
OpenAPI and protobufREST · gRPC · generated clients
AuthenticationEd25519 · JWKS · scoped JWTs
02
Reliability and testing
Reproducible runsCode · data · engine · seed
Isolated workersNetwork blocks · resource limits
RecoveryDirty watermarks · retryable rebuilds
Deployment checksCI · migrations · Playwright
03
Performance
Database queries347 ms → 1.05 ms measured
Batching and cachingSparse MGET · write-back quotes
Atomic updatesLua-backed token rotation
Infrastructurek3s · Helm · Terraform
04
Quantitative software
Portfolio accountingTransactions · holdings · TWR
BacktestingSeeded runs · parameter sweeps
Market dataMultiple sources · live updates
Poker engineEquity · legal actions
05
Embedded and ML
STM32 firmwareBounded loops · sensors · control
Signal processingMel spectrograms · F0
Audio modelsU-Net · FiLM · training
Audio resynthesisHiFi-GAN · Demucs
06
Languages spoken
EnglishFluent
RussianNative
SpanishProfessional
01 / Backend+
FastAPI and RustProduct workflows · calculation services
PostgreSQLTransactions · rebuildable views
OpenAPI and protobufREST · gRPC · generated clients
AuthenticationEd25519 · JWKS · scoped JWTs
02 / Reliability and testing+
Reproducible runsCode · data · engine · seed
Isolated workersNetwork blocks · resource limits
RecoveryDirty watermarks · retryable rebuilds
Deployment checksCI · migrations · Playwright
03 / Performance+
Database queries347 ms → 1.05 ms measured
Batching and cachingSparse MGET · write-back quotes
Atomic updatesLua-backed token rotation
Infrastructurek3s · Helm · Terraform
04 / Quantitative software+
Portfolio accountingTransactions · holdings · TWR
BacktestingSeeded runs · parameter sweeps
Market dataMultiple sources · live updates
Poker engineEquity · legal actions
05 / Embedded and ML+
STM32 firmwareBounded loops · sensors · control
Signal processingMel spectrograms · F0
Audio modelsU-Net · FiLM · training
Audio resynthesisHiFi-GAN · Demucs
06 / Languages spoken+
EnglishFluent
RussianNative
SpanishProfessional
05
Now / Research
What I’m working on now.
Current builds and experiments.
01ACTIVE DEVELOPMENT
Working on The Portfolio App
I’m adding risk and tax calculations, broker connections and multilingual support. Mobile apps are planned next.
I’m comparing a pitch-conditioned U-Net with an ungated version on speech and music, then testing whether a transformer preserves formants more accurately.
I usually begin by mapping the states, constraints, and failure cases. Then I build enough instrumentation to check whether the design works in practice. I’ve used that process in portfolio software, backtesting tools, embedded firmware, and audio ML.
01Understand the problem
Learn the rules and failure cases before settling on an API or data model.
02Make it inspectable
Add logs, metrics, and interfaces that show what the system is doing.
03Measure, then refine
Use the results to decide what to simplify or optimise.
ENGINEERING LOOP / EVIDENCE BEFORE ORNAMENT
07 / CONTACT
Get in touch.
I’m looking for software engineering roles, especially in backend, quantitative, or data-heavy teams.