How do you test something that answers differently each time?
Build a small evaluation set for a Go model application and distinguish correctness checks from judgments about answer quality.
I’m a backend and platform engineer in Nairobi. I build APIs, developer tools, and cloud services with Go, Python, and TypeScript.
My work includes Microsoft Graph SDKs and the platforms behind Microsoft 365 and Copilot. This is where I write about what I’m building and learning. More about me.
Build a small evaluation set for a Go model application and distinguish correctness checks from judgments about answer quality.
Build a read-only API tool with application-owned credentials, fixed endpoints, and resource authorization.
Build local notes tools in Go, validate every model request, and keep file creation behind separate human approval.
Run a small model locally, inspect its requests and responses, understand JSONL, and build a Go harness with conversation history and a restricted tool.
What agents do, how skills help them, and where A2A, MCP, AG-UI and ACP fit, with practical examples.
Find more in AI Notes and Writing.
I built an asynchronous Python client for M-Pesa APIs to explore concurrent I/O and type hints. The library is open source, with usage documentation for integrating mobile payments.
I packaged Tesseract OCR for AWS Lambda to extract text from document images. The project includes the deployment setup and a function that returns English text from an image.
I turned a layout inspired by Ben Hoyt’s website into a reusable Hugo theme for my own site. It’s an open-source experiment in templates and static site generation.
Browse all projects or my code on GitHub.
I read, play football, and travel with friends. I’m also learning Kenyan Sign Language, slowly. Elsewhere has the personal lists and links.
I’m open to consultation and part-time work. Get in touch if you have a project in mind.