Bridging AI Research and Production.
M.Eng in ECE @ uOttawa. Working across the generative AI stack — fine-tuning, RAG, agents, and everything in between — and turning research into software that ships.

Python • Hugging Face • Transformers • LangChain • LLaMA • QLoRA • llama.cpp • PyInstaller • JavaScript • Three.js •  Python • Hugging Face • Transformers • LangChain • LLaMA • QLoRA • llama.cpp • PyInstaller • JavaScript • Three.js • 

About & Education

// WHO I AM

I'm an engineer who ships, and I'm curious about every corner of generative AI — fine-tuning open-source models with QLoRA, wiring up RAG pipelines, prototyping agents, figuring out what actually works in practice. My happy place is turning a research paper into something real people can use.

Based in Ottawa, I work at the seam between LLMs, NLP, and systems engineering — the layer where a model's raw output has to become a product: grounded, robust to messy inputs, and usable by people who don't care how it works underneath. I care about clarity, reliability, and closing the gap between a research notebook and a shipped product.

4+ Years Building
3 Languages EN · FR · CN
1 Published Paper
10+ Shipped Projects
// FOCUS AREAS
LLM Fine-tuning QLoRA RAG Agents Prompt Engineering Hugging Face Research → Product
// EDUCATION
🎓 2024.09 – Present

University of Ottawa

M.Eng, Electrical & Computer Engineering

Ottawa, Canada

  • Graduate ML & NLP coursework
  • Research on ML pipelines for text classification
🎓 2020.09 – 2024.07

Queen Mary University of London & BUPT

B.Eng, Telecommunication Engineering & Management

London, UK · Beijing, China

  • Joint dual-degree international program
  • Published sentiment-analysis research paper

Experience

Jan 2025 – Present

ML Engineer — Customer Complaint Classifier

University of Ottawa

  • Architected a multi-algorithm ML pipeline (SVM, Random Forest, KNN, Naive Bayes, SGD, XGBoost) for automated complaint routing.
  • Engineered a reusable data pipeline with TF-IDF feature extraction, 10-fold cross-validation, and automated result visualization.
  • Delivered a modular Python codebase with standardized preprocessing, training, and evaluation interfaces.
Nov 2023 – Apr 2024

ML Researcher — Dual-Modality Sentiment Analysis

Academic Project

  • Developed a dual-modality sentiment analysis system combining Logistic Regression (text) and Random Forest (speech features).
  • Built an interactive GUI with tkinter, achieving ~93% accuracy for text classification on benchmark datasets.
Jul 2023 – Sept 2023

NLP Algorithm Engineer Intern

Emotibot Technology

  • Spearheaded the fine-tuning of the LLaMA model using QLoRA techniques to optimize intelligent customer service chatbot performance.
  • Engineered hyperparameter tuning and model quantization pipelines, significantly reducing inference latency and deployment costs.
  • Elevated dialogue accuracy and alignment with human intent through rigorous prompt engineering and model evaluation.
Jan 2023 – Aug 2023

Independent Researcher — Sentiment Analysis in Online Education

Published Research

  • Researched and implemented sentiment analysis using SVM and RNN techniques on online education corpora.
  • Published findings integrating sentiment analysis insights with educational psychology methodologies.
Read Publication on ResearchGate →

Projects

Dead Static: Local LLM Survival Game

Solo Developer | Python & llama.cpp
  • Architecture: Engineered a zero-dependency PC game where a local LLM (Qwen-1.7B) dynamically narrates a procedural zombie apocalypse.
  • AI Pipeline: Designed a robust parser using Regex and fallback strategies to force deterministic gameplay choices ([A][B][C]) from generative text.
  • DevOps: Built a custom Python state-machine and packaged the full runtime, CUDA binaries, and GGUF model into a standalone Windows .exe via PyInstaller.
llama.cpp Qwen-1.7B PyInstaller CUDA
View Source Code
dead_static.exe
_

Math Adventure: Gamified Learning

Solo Developer | Python · Pygame · Local LLM
  • Built an RPG-style math quiz where players defeat monsters across 5 themed levels via turn-based arithmetic combat.
  • Integrated a local phi-1_5 LLM tutor that generates short natural-language explanations for wrong answers — fully offline after first download.
  • Packaged with PyInstaller into a distributable Windows build, with animated attack effects and dynamic per-level backgrounds.
Python Pygame phi-1_5 HuggingFace
View Source Code
Player Slime monster Boss monster +
HP
18 + 4 = ? _

Mock Interview Chatbot

Team Lead | Fine-tuned LLM (Oct 2024 – Dec 2024)
  • Implemented a chatbot using fine-tuned open-source models to simulate realistic interview scenarios across technical and behavioral tracks.
  • Led model selection, prompt design, and team collaboration for an innovative interview practice tool.
Fine-tuning Prompt Eng. Python LangChain
View Source Code
interview_session.ai fine-tuned-llm
Interviewer

You

Sure — I hit a race condition between two async workers sharing a cache…

Interviewer

Blog

Contact

Mobile +1 (343) 368-7929
LinkedIn Fangyuan Lin
GitHub Fangyuan025