Lawrence Qi

I train machine-learning models and run the machines they live on.

I study Computer Science at Monash University and graduate in October 2026. In November I'm moving to Singapore to start an AI/ML internship at NetGain, working on small language models that run locally.

Email meResumeGitHub

Click anywhere on the floor. The cart plans a route there with A*, the search I wrote for a self-driving shopping cart at UNIHACK 2025.

Now Finishing my degree at Monash and packing for Singapore. More on my Now page

About

I like problems where a model has to make a call in real time from messy inputs: predicting who wins a Valorant round from a broadcast feed, or steering a shopping cart around people at a hackathon. I also like owning the whole stack, which is why I run a multi-machine homelab with a Kubernetes cluster, my media server, databases and a chatbot fine-tuned on my own messages.

Away from the keyboard I tutor primary and middle-school students, and I built the stream overlays for MEGA's fighting-game weeklies. I speak English, Mandarin, Cantonese and French.

Machine learning
Python, PyTorch, NumPy, Pandas, XGBoost, R, LoRA and QLoRA fine-tuning
Infrastructure
Docker, Kubernetes, Proxmox, Linux, Nginx, Cloudflare, AWS, Azure
Software
JavaScript, TypeScript, HTML and CSS, Java, SQL, Git
Languages
English, Mandarin, Cantonese, French

Experience

  1. Nov 2026 – Feb 2027

    AI/ML Intern (incoming) NetGain

    A three-month internship on knowledge distillation and small, locally hosted language models for infrastructure and monitoring workflows.

    • Evaluating open-weight models for log analysis, classification, summarisation, structured extraction and routing.
    • Benchmarking accuracy, latency, memory use and inference cost on CPU-only systems.
    • Testing fine-tuning, LoRA, quantisation, distillation and fallback to larger models for uncertain cases.
  2. Feb 2023 – present

    Academic Tutor Unitop

    One-on-one tutoring for students from grade 1 to grade 9.

    • Raised students' marks by up to 35 percent.
    • Worked with parents and teachers to keep learning plans aligned between home and school.
  3. Graduating Oct 2026

    Bachelor of Computer Science Monash University

Projects

Most of these have something you can poke at. Each one has a full write-up with a diagram and its history.

Valorant live win probability

Apr 2026 – presentSoloIn progress

A real-time model that estimates who wins the current round of a professional Valorant match. Valorant has no public game-state feed, so the pipeline reads the state straight off the broadcast.

  • Samples VCT broadcast footage, reads the scores, timer, spike and player panels from the HUD, and splits matches into rounds automatically.
  • Builds features for economy, player advantage, ultimate availability, map state and spike status.
  • Trains gradient-boosted trees on professional matches, targeting 75%+ accuracy.
  • Serves predictions from a Docker container through REST endpoints behind Nginx.

PythonOpenCVEasyOCRXGBoostLightGBMRiverDockerNginxPostgreSQL

Attackers alive
Defenders alive
Spike
Attack buy
Defence buy

Attack 63%37% Defence

What's moving the number (log-odds, + favours attack)

    Try a situation

    This in-browser version uses a small logistic model with hand-set weights so it can run instantly. The real project reads these features off VCT broadcast footage and learns the weights with gradient-boosted trees.

    Homelab and Kubernetes cluster

    Sep 2025 – presentSoloRunning

    The machines behind most of my side projects: a multi-node Kubernetes cluster on Proxmox that hosts apps, media, game servers and machine-learning workloads.

    • Combined compute across several machines into one cluster for containerised workloads.
    • Runs Jellyfin, databases, reverse proxies and my own apps, with selected services exposed through Nginx, Cloudflare DNS and HTTPS.
    • Fixed storage and networking issues that took large-file transfers from about 10 MB/s to 70 MB/s.

    ProxmoxKubernetesDockerLinuxNginxCloudflare

    1. Internet
    2. Cloudflare DNS and HTTPS
    3. Nginx reverse proxy
    4. Kubernetes cluster

      • Jellyfin
      • Databases
      • Game servers
      • ML workloads
      • Local LLM chatbot
      • My own apps

      Proxmox VMs spread across several machines

    5. Multi-terabyte storage
    Large-file transfer speed, before and after I tracked down the bottleneck

    Before~10 MB/s

    After~70 MB/s

    AI email assistant

    Mar 2026 – present5-person teamIn progress

    A Chrome extension that helps people with busy inboxes triage, read and reply faster, without ever sending anything they haven't approved.

    • Built an LLM pipeline for classification, priority detection, thread summaries and reply drafts.
    • Designed a human-in-the-loop approval step so AI-written replies can't go out without confirmation.
    • Interviewed people at large organisations and turned their feedback into requirements.

    Chrome Extension APIJavaScriptNode.jsPythonOpenAI APISQLite

    From Lab Operations

    Your building access card expires this Friday

    Hi Lawrence, our records show your access card for the engineering building expires on Friday. To keep access, please renew it at the service desk before then, bringing your student ID…

    1. PriorityNeeds action this week
    2. SummaryAccess card expires Friday. Renew at the service desk with your student ID.
    3. Draft reply

    A mock of the approval step, so nothing here is actually sent. The real extension does the classifying, summarising and drafting with an LLM.

    Autonomous shopping cart

    Mar 2025UNIHACK 2025, 5-person teamFinished

    A self-driving shopping cart prototype built in 48 hours, with navigation, voice interaction and RFID item scanning.

    • Wrote the A* pathfinding that modelled the store layout and found the shortest route between items.
    • Added real-time obstacle avoidance based on the Dynamic Window Approach and Velocity Obstacles, so the cart reroutes around people.
    • Integrated motors, sensors and the Arduino with the rest of the team's software into a working prototype.

    C++ArduinoRFID

    The cart at the top of the homepage runs a smaller version of the same planner.

    • The cart
    • A shopper who wanders into aisles
    • Cells A* expanded before choosing a route
    • Cells still waiting in the open set
    • The route it chose
    • Items on the shopping list

    More things I've built

    • Discord personality clone

      A chatbot that talks like me, fine-tuned with QLoRA on an open-weight model using my own Discord data export. It runs entirely on my hardware, with no hosted AI APIs.

      PythonPyTorchHugging Face TransformersPEFTQLoRAdiscord.py

    • Smash Theater

      A searchable archive of 46,000+ Super Smash Bros. Ultimate tournament VODs. A daily GitHub Action scrapes seven YouTube channels and parses players and characters from video titles.

      ReactTypeScriptViteYouTube Data APIGitHub Actions

    • MEGA stream overlays

      Twelve OBS overlay scenes and a scoreboard app for MEGA's fighting-game weeklies, built on GORTS so the next production manager can run a stream without touching code.

      HTMLCSSJavaScriptGoTcl/TkOBS

    • This website

      The site you're on. No framework: a small Node build script, an A* shop floor in the header, a command palette, and a blog I write in a web editor.

      HTMLCSSJavaScriptNode.jsGitHub ActionsPages CMS

    All 8 projects, with their history

    Blog

    What I'm working on, and life in general. Friends and family: posts tagged Life are the ones for you.

    Go to the blog

    Get in touch

    I'm open to graduate roles and projects in machine learning and infrastructure. The fastest way to reach me is email.