JH← Back to portfolio

Writing

Blog

Posts written from real projects — Next.js, Supabase, AI features, Shopify apps — and from getting paid as a remote developer.

October 10, 20267 min read

How to Vet a Freelance Developer When You Can't Read Code

You can't judge code you can't read, so check what you can see: a live app, a paid first milestone, accounts in your name and an outside review. Six checks, in order.

September 24, 20265 min read

Anima vs Locofy vs Hiring a Developer for Figma to React

What Figma-to-code tools like Anima, Locofy and Builder.io get right, where their output stops, and when paying a developer is the cheaper option.

September 24, 20266 min read

Your Developer Disappeared Mid-Project. Do These Things First.

A checklist for founders whose developer stopped replying: secure your accounts, get the code, avoid the panic rewrite, and get an honest audit.

August 16, 20268 min read

React 20 Is Coming — Here's What's Actually Worth Preparing For (and What Isn't)

React 20 previews deeper React Compiler integration, refined Server Components, and better concurrent rendering. Here's what frontend teams should actually plan for ahead of release.

August 14, 20268 min read

Tailwind CSS 4.3 Quietly Fixes the Scrollbar Styling Problem Everyone's Been Hacking Around

Tailwind CSS v4.3 adds first-party scrollbar styling utilities, expanded logical properties, and new zoom and tab-size utilities. Here's what changes for teams maintaining custom CSS workarounds.

July 30, 20269 min read

Chrome 151 Just Deleted the Last of Manifest V2 — and Quietly Shipped Four APIs Worth Your Attention

Chrome 151, released July 28, removes the AllowLegacyMV2Extensions developer override — the last way to load an MV2 extension at all — and ships Declarative Shadow DOM slot assignment, Soft Navigations metrics, and a new usermedia capability element.

July 8, 20265 min read

Deel vs Wise vs Payoneer: Which Platform European Clients Actually Prefer

European companies paying contractors increasingly pick Deel over Wise or Payoneer for compliance, not cost. What that means for the contractor.

July 8, 20266 min read

Deel vs Wise vs Payoneer: How to Pay Overseas Freelance Developers Without Overpaying in Fees

Deel, Wise and Payoneer compared for businesses paying international freelance developers: real 2026 costs, compliance, and fit by team size.

July 8, 20264 min read

Hiring Freelance Developers in Canada from the US: What Compliance Actually Requires

The CRA presumes a worker is an employee unless you prove otherwise. What US companies must get right when hiring Canadian freelance developers.

July 8, 20264 min read

Mollie vs Adyen vs Stripe for European SaaS Founders in 2026

Stripe, Adyen and Mollie differ for European SaaS founders on fees, local payment methods and VAT handling. What decides the choice at each stage.

July 8, 20264 min read

What US Startups Actually Pay Offshore Full-Stack Developers in 2026

Offshore full-stack rates span $15 to $180 an hour for the same job title. What drives the difference, and why the quoted rate isn't your real cost.

July 8, 20264 min read

Stripe vs Paddle vs Lemon Squeezy for US Indie SaaS Founders in 2026

Stripe's 2.9% + 30 cents looks cheaper than Paddle or Lemon Squeezy's 5% + 50 cents until you price in sales tax nexus. The real comparison.

July 8, 20264 min read

Stripe vs Wise Business for Canadian SaaS Founders: The FX Spread Nobody Itemizes

Canadian SaaS founders billing in USD lose revenue to Stripe's currency conversion spread. How Stripe and Wise Business compare on FX cost in 2026.

July 8, 20264 min read

What US and European Clients Actually Look for When Hiring Offshore Developers

Offshore developers competing on rate alone are in the most crowded part of the market. What gets US and European clients to pay above the bottom tier.

July 6, 20268 min read

Angular 21 Finally Kills Zone.js. Signal Forms Are the Bigger Story.

Angular 21 ships Signal Forms, stable zoneless change detection, and Angular Aria. Here's what actually changed, who should upgrade first, and a phased migration plan that isn't a rewrite.

July 1, 20263 min read

Mastra Is Betting That TypeScript Teams Don't Want to Learn Python for AI Agents

Mastra went from launch to 300,000+ weekly npm downloads and production use at PayPal and SoftBank by building AI agent tooling natively in TypeScript. Here's what it actually gives you and where it fits.

July 1, 20263 min read

Vue's Vapor Mode Is Feature-Complete. It's Still Not Ready for Your Production App.

Vue 3.6's Vapor Mode ditches the virtual DOM for compiler-generated direct DOM updates, with benchmarks showing up to 97% faster renders. Here's what's real, what's not stable yet, and how to plan for it.

June 30, 20264 min read

Headless Architecture in 2026 — The Future of Web Development is Already Here

Headless architecture is now mainstream in web development. Learn what it is, why enterprises are adopting it at scale, and how to decide if it's right for your next project.

June 29, 20265 min read

n8n vs Make vs Zapier for Developers: Which Automation Tool Actually Fits

n8n, Make and Zapier compared for developers: self-hosting, code escape hatches, pricing at scale, and when each is the right automation tool.

June 29, 20266 min read

Next.js 15 Server Components: What Actually Changed and What to Do About It

What Next.js 15 changed in Server Components, async request APIs, caching defaults and Turbopack: what breaks, what's better, how to migrate.

June 29, 20267 min read

Supabase pgvector for RAG: The Complete Production Setup

Setting up Supabase pgvector for a production RAG pipeline: embedding storage, similarity search, indexing, chunking, and the Postgres functions.

June 29, 20267 min read

Multi-Tenant SaaS with Supabase Row-Level Security: The Complete Pattern

Multi-tenancy in a Supabase SaaS with Row-Level Security: RLS policies, org-scoped data isolation, invitation flows, and the gotchas that break production.

June 29, 20267 min read

How to Hire a Developer From Pakistan on Upwork Without Getting Burned in 2026

For teams hiring Pakistani developers on Upwork: how to read profiles and proposals, what fair 2026 rates look like, and red flags that predict a bad hire.

June 28, 20265 min read

BYOK Multi-Provider LLM Architecture: How HireOS Routes Across Five AI Providers

How I built HireOS to route AI inference across five providers with bring-your-own-key: the tradeoffs, edge key handling, and fallback design.