Stack I work with day to day: Python, PyTorch, TensorFlow, scikit-learn, LangChain, LangGraph, LlamaIndex, MLflow, AWS, Docker, Terraform, GCP, PostgreSQL, MySQL, MongoDB, QuantLib, Jenkins, Streamlit, Tableau, Power BI, Excel, n8n, Airtable, Notion, Google Analytics, Claude Code, Jira.
Production System · Equities
Production screener over ~2,000 US equities. Daily pipeline into MySQL, with fundamentals, technicals
(RSI, moving averages, analyst targets) and interactive Plotly charts. Agentic workflow pushes signals
from database to Slack. Running live on its own domain.
Next.js
FastAPI
MySQL
Slack
View project →
Quantitative Finance · Math
Quantitative deep-dive on 12 equities: Black–Scholes option pricing, Sharpe ratio, probability of loss,
and derivative-based summary statistics. The math foundation behind the ML projects above.
Black–Scholes
Sharpe
Risk Math
NumPy
View project →
Machine Learning · Regression
Supervised regression on the German real-estate market. Feature engineering, model tuning,
and an iteration log showing how the model improved version by version — not just the final number.
XGBoost
Regression
Feature Eng.
FastAPI
View project →
Machine Learning · Tabular
Transaction-level retail modelling with gradient-boosted trees. Three model iterations,
each documented with what changed and why — the same iterative loop I follow on every project.
CatBoost
Tabular ML
EDA
Parquet
View project →
Deep Learning · Time Series
End-to-end deep learning system: ingest equity price history, train sequence models (LSTM and Transformer),
serve predictions through a FastAPI backend, and visualise them in a live dashboard.
PyTorch
LSTM
Transformer
FastAPI
View project →
Generative AI · RAG
Upload a book as a PDF and get chapter-by-chapter summaries — detailed, brief, or key points —
plus chapter-scoped Q&A. Built on chapter chunking instead of blind semantic search: PyMuPDF pulls
chapters straight from the PDF (no manual Markdown step), embeddings land in pgvector, and summaries are
cached in Postgres so each one is generated once.
LlamaIndex
pgvector
Next.js
FastAPI
View project →