Who I am

I'm Justin Ahinon. I'm a senior product engineer, and I've been building things for the web for more than seven years.

I work across the stack: product interfaces, APIs, databases, AI and retrieval pipelines, infrastructure, performance, and analytics. I also spent four years contributing to WordPress Core, sponsored by Yoast for much of that time. The products I've worked on have reached anywhere from 10,000 to 800,000 monthly users.

What I'm doing now

Right now I run Okupter, a one-person studio, and build and operate a portfolio of products. Most of the recent ones use AI in some practical way: embeddings-powered search, natural language to SQL, research agents, semantic retrieval, and developer tooling.

The interesting part of applied AI is rarely just the model call. I spend most of my time on the system around it: context, evals, safety boundaries, interfaces for uncertain output, analytics, and the infrastructure that keeps everything running. I write about that work, including the upgrades an eval rejected and letting an LLM write SQL against a production database.

Before this, I spent a year as a senior engineer at Fabric Blockchain Labs, building real-time DeFi trading features, a shared package system across a Bun monorepo, and a customer support system with LLM-powered streaming chat.

Prior to Fabric, I was at Cyfrin, where I was the main engineer on Updraft, an education platform for Web3 developers. About 100,000 users a month, over 2 million lessons completed every month. I owned the stack there: the REST API, the database, the SvelteKit frontend.

I've run Okupter alongside those roles since 2022. It started as a development studio focused on Svelte, SvelteKit, and TypeScript, and has grown into the umbrella for both client work and my own products.

What I care about

Web performance and accessibility. Fast websites that work for everyone, regardless of their device or connection. I wrote about this in the obsession of optimization. It sounds obvious, but a lot of the web still doesn't work this way.

Internationalization. I speak French and English, and I've done i18n work on several projects. A lot of the web assumes English by default. I don't think it should.

Learning. That's most of why I spend so much time on AI tooling. I test ideas against real users and measurable evals, and I try to write honestly about what fails as well as what works.

Let's connect

If you're building something difficult and think I could help, read more about working with me. You can email me at [email protected], or find me on LinkedIn.