Junior Software / AI Developer who'd rather ship a rough prototype than read one more tutorial.
I build backend systems, ML pipelines, and small tools that solve one problem well β then push them until they actually work, not just until the demo does.
| π§ Β AI / ML pipelines | Forecasting, anomaly detection, and applied research β built with PyTorch and scikit-learn, evaluated honestly |
| πΒ Automation & tooling | Python tools that replace repetitive manual work, with real safety rails instead of blind auto-pilot |
| βοΈΒ Developer infrastructure | CI/CD pipelines and small open-source tools that solve exactly one annoying problem |
| π§ͺΒ Applied experiments | Projects built to answer a specific question β including the ones where the answer wasn't flattering |
π ipa-builderOpen-source pipeline that builds unsigned iOS Problem: testing your own iOS app normally means owning a Mac or paying Apple. Built: a GitHub Actions workflow that spins up a macOS runner to compile any Expo/React Native project, using scoped fine-grained tokens to securely check out a different target repo.
Why it's interesting: it's pure CI/infrastructure engineering β no app code, just a secure, reusable build pipeline solving a real cost problem. β View project |
π€ auto_applyerLocal-first Python tool that automates job-outreach without turning into a spam bot. Problem: manual outreach doesn't scale, but full automation is how you burn your reputation. Built: a CLI + Streamlit dashboard covering lead import, draft generation, manual approval, dry-run checks, rate-limited SMTP sending, and delivery reports.
Why it's interesting: live sending requires β View project |
π Quant research β macro news forecasting Β· mandate investor profilingTwo-part BSc final year project: can daily macro news predict next-day ETF returns, and can investor "mandates" (not just a risk score) drive better portfolio allocation? Built: a PyTorch MLP vs. 5 classical baselines under strict walk-forward validation for the forecasting side; a Random Forest mandate predictor feeding a regime-aware, backtested ETF allocator on the portfolio side.
Why it's interesting: both repos report the results that didn't work too β e.g. the Markowitz baseline beating the mandate strategy on Sharpe β instead of only showing wins. β Forecasting Β· Portfolio allocation |
Unsupervised anomaly detection over OpenSSH logs β flagging suspicious activity without labeled attack data. Problem: in security logs, "normal" vastly outweighs "attack," and clean labels rarely exist. Built: a config-driven pipeline (Isolation Forest, LOF, One-Class SVM) with temporal feature engineering, weak-label heuristics for evaluation, and PR-AUC/Recall@K as proxy metrics.
Why it's interesting: forces careful evaluation design when ground truth barely exists β accuracy alone would be meaningless here. β View project |
- π§ Actively iterating on ipa-builder β my most recently pushed project, open source and open to issues/PRs
- π Working through the next steps I flagged myself in the FYP repos β time-series cross-validation and better regime coverage for the portfolio backtests
- π§° Looking for the next small, annoying manual task worth turning into a tool β that's how
auto_applyerstarted
Languages
AI / Machine Learning
Backend, automation & tooling
CI/CD & DevOps
Primary focus: Python, PyTorch/scikit-learn, GitHub Actions Β· Also used, smaller/earlier projects: JavaScript, Java, C++, HTML/CSS
- Prototype first, read the docs when it breaks β not before
- One command that runs the whole pipeline beats ten manual steps in a README
- Walk-forward validation isn't optional when the whole point is "did this actually generalize"
- If a project of mine has a
Limitationssection, I probably wrote it myself before anyone had to ask
Open to junior backend, AI/ML, and Python engineering roles β and always up for talking about a weird technical idea.