About
Hi, I'm Ian.
I'm a software engineer working across backend development and AI. My work involves building APIs, working with data, integrating language models, and developing systems that solve practical problems.
I approach AI from a software engineering perspective. Models can generate convincing answers, but that doesn't automatically make those answers correct. When applications deal with money or private information, I believe important decisions should be backed by reliable code, clear rules, and proper human oversight.
I'm also interested in understanding how things work beneath the surface. I enjoy taking ideas from research papers and implementing them myself, from attention mechanisms and backpropagation to LoRA and small language models. I want to understand the underlying mathematics, not just know how to use a library.
Outside of building applications, I'm interested in system design, machine learning, and the engineering decisions that make software reliable in the real world.
What I use
- LLMs & agents
- AgentsTool callingMCPStructured outputsPrompt engineeringAzure OpenAIGeminiOllama / Qwen
- Fine-tuning
- LoRAFull fine-tuningDistillationQuantisation (INT8)ONNX RuntimePyTorch
- Evaluation & safety
- Held-out examsCalibration (ECE)Red-teamingGuardrailsPrompt-injection defenceGolden sets in CI
- Retrieval
- RAGEmbeddingsBM25Hybrid searchRerankingFAISSpgvectorTypesensePermission-aware retrieval
- Serving
- vLLMKV cache sizingLoad testingLatency (p50 / p99)FastAPI streaming
- ML & data
- scikit-learnNumPypandasDuckDBParquetPostgreSQL
- Languages
- PythonTypeScriptSQLC#
- Backend & cloud
- FastAPINode.js.NETKafkaDockerAzureGitHub ActionsLinux