I build machine-learning systems end to end: collecting and cleaning data, training and honestly evaluating models, and wrapping them in web apps that people can actually use. My graduation project combined three deep-learning models — text, audio and image — into one assistant for dog health.
I care about the parts that make ML trustworthy: leak-free splits, class imbalance, reporting held-out results, and being upfront about what a model can't do.
flowchart LR
A[Browser] --> B[Express + MongoDB]
B --> C[Flask AI service]
C --> D[Text model]
C --> E[Audio model]
C --> F[Image model]
D & E & F --> G[Combined report]
PyTorch · TensorFlow · Hugging Face · Flask · Node.js · Express · MongoDB
![]() Mountain-climbing creature Genetic algorithm that evolves virtual creatures to climb a mountain in a PyBullet physics simulation. Python · PyBullet
|
![]() Fake-news detection Naive Bayes + TF-IDF vs Word2Vec + logistic regression: 94 % vs 97 % accuracy. scikit-learn · NLTK · gensim
|
Traffic car tracking Detects, tracks and counts cars in traffic-camera footage with classical computer vision. OpenCV · Kalman filters
|
![]() Speech-recognition assistant Offline English / Spanish / Italian recognition with noise filtering and word-error-rate evaluation. Vosk · Python
|
![]() Web audio apps Real-time effects processor, audio CAPTCHA and two live visualisers in the browser. p5.js · Web Audio · ▶ demo
|
![]() Snooker Physics-based snooker with three game modes and a guided tutorial. p5.js · Matter.js · ▶ play
|
| Project | What it does |
|---|---|
| Pawlytics | Multimodal dog-health assistant: Bio_ClinicalBERT, YAMNet and EfficientNet-B0 behind Express + Flask. |
| Mountain-climbing creature | Genetic algorithm that evolves virtual creatures to climb a mountain in a PyBullet physics simulation — tree-shaped genome, multi-term fitness, tournament selection. |
| Fake-news detection | Naive Bayes + TF-IDF vs Word2Vec + logistic regression: 94 % vs 97 % accuracy. |
| House-price prediction | Under-fitting vs over-fitting vs a tuned Keras network with dropout and early stopping. |
| Loan approval | Decision tree and KNN written from scratch, PCA, nested cross-validation. |
| Movie revenue prediction | Cleaning, statistics and linear / polynomial regression on 9,700 TMDb movies. |
| Web scraping & text analysis | Scrapes eight articles on virtual reality and compares them: word frequencies, bigrams, word cloud. |
| Project | What it does |
|---|---|
| Traffic car tracking | Detects, tracks and counts cars in traffic-camera footage with frame differencing, background subtraction and Kalman filters (OpenCV). |
| Speech-recognition assistant | Offline multilingual (EN / ES / IT) airport assistant with Vosk — noise filtering and word-error-rate evaluation. |
| Audio steganography | Finds a code hidden near 19 kHz and hides a message in least-significant bits (SciPy). |
| Media compression tools | Lossless audio compression with Rice coding built from scratch, plus an automatic film-format checker / converter (ffprobe, ffmpeg). |
| Web audio apps · ▶ demo | Real-time effects processor, audio CAPTCHA, Meyda visualiser and a voice-controlled visualiser. |
| Webcam image processing · ▶ demo | Live colour channels, thresholding, HSV / YUV conversion and face detection. |
| Project | What it does |
|---|---|
| Vet clinic app | Accounts, appointment booking with Google Maps, pet shop with cart and memberships. |
| Blog app | Author and reader views, likes, comments and drafts. |
| Snooker · ▶ play | Browser snooker with Matter.js physics, three game modes and a tutorial. |
| Platformer · ▶ play | Side-scroller with coins, enemies, lives and a scrolling camera. |
| Drawing app · ▶ try | Eight tools, palette, undo, cut & paste, save to image. |
| Crypto trading simulator | C++ console exchange with candlestick plots, built on a 1M-row order book. |
| DJ mixing app | Two-deck mixer in C++ / JUCE: waveforms, faders, searchable library. |
| Porsche fan site · ▶ visit | Six-page site with slideshow, racing news and a 911 showcase. |
Strengths: multimodal pipelines · NLP fine-tuning · class-imbalance handling · evaluation (F1, ROC-AUC, confusion matrices) · model explainability · genetic algorithms · shipping models behind a web UI.
- Continuing to develop Pawlytics
- Exploring vector search and memory-augmented models
- Learning React and getting more comfortable with Docker






