~/blog
Writing.
$ ls -la ./posts | wc -l→ 15 posts, new writing soon
Evals first: what I learned teaching my agent RAG
Hand-building retrieval for a production support agent — golden sets before code, baselines before fixes, and the measurements that kept proving my assumptions wrong.
Designing an agentic support system
How we built an agentic support system for a regulated pharmacy operation — and the trust architecture that makes it safe to run.
Six years at Crowdcast
A retrospective on six years at a live video startup: COVID hypergrowth, a full platform rewrite, the AI shift, and moving on.
Fullstack types with Postgres, Hasura GraphQL and Typescript
How using types helped us to accelerate developer productivity
Typescript: Bang operator considered harmful
Oh no, a runtime error
Authentication in Next.js apps
Concepts for isomorphic authentication
JWT Authorization for serverless APIs on AWS Lambda
How to protect your serverless API routes
Accessing Authorization headers in Apollo GraphQL client
Afterware is the new middleware
Upload images to AWS S3 with React and Apollo GraphQL
Simple file uploads with react-dropzone
Serverless GraphQL with Apollo on AWS Lambda
Run your Apollo as a Lambda
Traits of good developers
My personal observation
Running Cypress on an Amazon Linux AMI with Docker and Jenkins
Get cypress working together with AWS Linux on your CI
Building a fullscreen overlay with React 16s portal
React 16 is here and it has portals
Getting started with crosswalk for Ionic Framework
How to use the drop in replacement for the Android webview
Improving scroll performance for lists in Ionic Framework
Prevent your users from a laggy scrolling experience