Writing
Writing from production work
Lessons from systems I've shipped: what moved the numbers, what broke, and what I'd do again. Each post links to the case study it came from.
-
AI Chatbot for Your Website: What Actually Works
What it takes to add an AI chatbot to a website: grounding answers in your content, prompt injection, human handoff, cost control and measuring results.
AI · Chatbot · LLM · RAG · Security
-
AI Search Visibility: SSR, Schema and llms.txt
How to get your site cited in Google AI Overviews, ChatGPT and Perplexity: server-rendered HTML, answer-first content, schema, crawler access and llms.txt.
AI · SEO · AI search · SSR · Structured data
-
How to Choose an LLM for a Product Feature
Choose between OpenAI, Claude, Gemini and open models for a feature: build an eval set, then compare quality, latency, cost, context and data policy.
AI · LLM · OpenAI · Claude · Gemini · Architecture
-
Hangfire vs Sidekiq: .NET vs Rails Background Jobs
Hangfire vs Sidekiq from someone who shipped both in production: storage, retries, scheduling, reliability, and when each one is the right call.
Hangfire · Sidekiq · .NET · Rails · Background jobs · Architecture
-
How to Hire a Next.js Developer in Pakistan (2026)
A practical guide to hiring a senior Next.js developer in Pakistan: time zones, typical rates, contracts, payments, and how to vet for production experience.
Hiring · Next.js · Pakistan · Remote work
-
Designing Human-in-the-Loop AI Review Interfaces
How to design human-in-the-loop review UIs for AI: show confidence, sort by uncertainty, make corrections fast, and turn reviews into training data.
AI · Human-in-the-loop · UX · Machine learning · Product design
-
LLM Features in Rails and .NET With Background Jobs
Add LLM features to Rails or ASP.NET Core without slow requests or surprise bills: background jobs, rate-limit retries, streaming, caching and cost tracking.
AI · LLM · Rails · .NET · Background jobs · Architecture
-
How to Integrate an LLM API in Next.js Safely
Integrate OpenAI, Claude or Gemini into Next.js safely: server-only API keys, Route Handlers, streaming, rate limits, input caps and cost control.
AI · LLM · Next.js · OpenAI · API integration
-
RAG With PostgreSQL and pgvector: Architecture
How retrieval-augmented generation (RAG) works and how to build it on PostgreSQL with pgvector: chunking, embeddings, HNSW indexes, retrieval and evaluation.
AI · RAG · PostgreSQL · pgvector · LLM · Architecture
-
Building Real-Time AI Vision UIs in Vue.js
How to build AI vision interfaces in Vue.js that keep up with a live model stream: overlays, heatmaps, state management, and the lag that ruins review accuracy.
AI · Computer vision · Vue.js · Frontend performance · Vuex
-
SSR for Marketplace SEO: A Practical Playbook
How server-rendered galleries, Elasticsearch proximity search, and city + style routes grew organic traffic 45% on the Yatty tattoo artist marketplace.
SEO · SSR · Elasticsearch · Marketplaces
-
How SSR + Stripe Cut Cart Abandonment 30%
What actually moved cart abandonment 30% on the Cercle marketplace: server-rendered routes, a shorter Stripe checkout path, and less JavaScript before pay.
Next.js · Stripe · SSR · Performance · E-commerce
-
Adding Vue to Legacy Rails Views Without a Rewrite
How to layer Vue.js onto server-rendered Rails views one screen at a time, keep releases safe with RSpec and Cypress, and avoid a big-bang rewrite.
Vue.js · Rails · Legacy modernization · Testing · Cypress