I enjoy being at the intersection of finance, data, and AI.
| Project | Description | Stack |
|---|---|---|
| macro-rag-research | RAG-powered analytics and chat system for sell-side macro research emails — hybrid retrieval (pgvector + BM25, RRF fusion) with Claude chat | Python · FastAPI · PostgreSQL · pgvector · Claude |
| flubot | AI Socratic tutor guiding students to build flu-outbreak System Dynamics models through conversation | Python · Streamlit · OpenAI · PostgreSQL |
| systemsthinking-bot | Companion tutor for the "Fixes That Fail" systems thinking archetype — MCQ + open-ended dialogue | Python · Streamlit · OpenAI · PostgreSQL |
| smudatathon | AI-powered intelligence analysis system using GraphRAG — graph-based entity mapping with Neo4j, NER extraction, and RAG querying (SMU Datathon) | Python · Neo4j · LangChain · Streamlit |
| Project | Description | Stack |
|---|---|---|
| nussif-scraper | Automated pipeline for scraping and analysing US congressional insider (PTR) trades — daily ingestion, backfill, and Streamlit dashboard | Python · SQLAlchemy · BeautifulSoup · Streamlit |
| sg-dashboard | Real-time Singapore markets dashboard: FX rates, SORA rates, SGS yield curve, blue-chip equities | Python · FastAPI · Streamlit · yfinance |
| tariffviz | Interactive dashboard for global trade flows and US tariff analysis — sector breakdown, treemap, and tariff comparisons | Python · Plotly Dash · Pandas |
| talearning | Technical analysis strategy backtesting notebooks — MACD, RSI, Bollinger Bands, event-driven backtester, VIX Markov models | Python · Jupyter · yfinance |
| Project | Description | Stack |
|---|---|---|
| split_bot | Telegram bot for splitting group expenses — inline commands to log, split, and settle shared costs with net-balance tracking | Python · FastAPI · SQLite · Docker · Caddy |

