Blog · AI · LLM · · Trevor Heshka
How I approach custom LLM development
I build and fine-tune custom LLM models for my own apps, and my latest projects run on them. Here is where that work sits alongside the other AI tools I build.
I build and fine-tune custom LLM models for my own apps, and my latest projects run on them. Here is where that work sits alongside the other AI tools I build.
AI projects I've built
- AnnotatorIQ: a data annotation app published on this site, the kind of tool used to prepare AI training data
- MeshCode: my local-first AI coding IDE, which runs an agent pipeline in isolated git worktrees with a sandboxed shell and keeps API keys in the OS vault
- BC Real Estate Market Pulse: AI-written summaries over public market data
Hosted models still have a place
Not everything needs a custom model. HeshBot, the assistant on this site, calls an AI model and is grounded in a knowledge file built from the site's own pages, which keeps it simple to run.
Where a model runs matters as much as the model
A model is only useful once it is deployed somewhere people can reach it. I deploy and maintain apps with Firebase authentication, Cloudflare Workers and R2, IIS and GitHub Actions. On BC Real Estate Market Pulse, for example, the "ask a question" bar sends questions to a separate Cloudflare Worker, so the AI calls run outside the web host and the page itself stays static.
What 25 years of help desk work taught me about AI assistants
I started in technical support in 1998 at Videon Cable Systems (later Shaw, now Rogers). At Microsoft MSN Support I went from Tier 1 to Tier 3 and then supervisor, and at Shaw I resolved 30 to 40 help desk tickets a day using ticketing, keyword search and a knowledge base. That is the same job a good AI assistant does: find the right answer in a known body of knowledge, and say so plainly when the answer isn't there.
So the assistants I build are grounded in a defined set of sources and are told to admit when they don't know. HeshBot on this site works this way: it answers only from a knowledge file built from the site's public pages and points people to email instead of guessing (how I built it).
Choosing between a custom model and a hosted one
- Hosted model plus grounding (like HeshBot): quickest to ship, simplest to run, and the right choice when the answers come from a fixed set of documents.
- Custom or fine-tuned model: what my latest projects run on, used when an app needs behaviour that a general hosted model doesn't give out of the box.
- Either way: the surrounding work (data preparation, annotation tools such as AnnotatorIQ, hosting, sign-in and API key handling) is most of the job.
Working with me
I build AI assistants into websites and web apps and handle the hosting, sign-in and API keys around them. See AI development or email trevor@trevorheshka.com.