41554 blogs · [ { "id": "01a0e214-8430-7039-a62d-853816e2a28a", "title": "Two agents I use to stay focused", "url": "https://willhackett.com/follow-through/", "published_at": "2026-09-25T11:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a8587cd35d3", "title": "Apple's monopoly on coherence", "url": "https://willhackett.com/nowhere-to-go/", "published_at": "2026-09-02T07:00:00+00:00" }, { "id": "01a0d4c3-4739-7228-b088-9f1c2f486025", "title": "Buy tokens, rent GPUs, or own the rack?", "url": "https://willhackett.com/son-of-anton/", "published_at": "2026-07-30T16:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a8588f05499", "title": "The frontier intelligence gap is closing", "url": "https://willhackett.com/frontier/", "published_at": "2026-06-23T08:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a8588fb763a", "title": "Every worktree gets its own database", "url": "https://willhackett.com/wtdb/", "published_at": "2026-06-14T14:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a8589b1e5ec", "title": "US Gov just killed Fable (for now)", "url": "https://willhackett.com/pentagon-party/", "published_at": "2026-06-13T01:40:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a858a6c5e29", "title": "Fable 5 isn't a new Opus, it's a new ceiling", "url": "https://willhackett.com/fable-5-new-ceiling/", "published_at": "2026-06-09T22:50:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a858a9fc06b", "title": "A classifier is mostly plumbing", "url": "https://willhackett.com/classifier-hell/", "published_at": "2026-06-09T07:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a858b117386", "title": "Locking the new Siri out of the EU market is strange", "url": "https://willhackett.com/siri-eu-lockout/", "published_at": "2026-06-08T23:00:00+00:00" }, { "id": "01a0d4c3-4739-7228-b088-9f1c3352c36e", "title": "Turn a $3m AI bill into $1.9m", "url": "https://willhackett.com/opus-tax/", "published_at": "2026-06-08T14:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a858b94a6d2", "title": "Slightly coherent rant about a menu", "url": "https://willhackett.com/leave-it-alone/", "published_at": "2026-06-05T07:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a858b9fa06c", "title": "On writing", "url": "https://willhackett.com/on-writing/", "published_at": "2026-06-01T08:00:00+00:00" }, { "id": "01a0d4c3-4739-7228-b088-9f1c3436f73b", "title": "Observations on AI agent token consumption", "url": "https://willhackett.com/agent-token-consumption/", "published_at": "2026-05-16T08:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a858c5a0959", "title": "How do you tell who's thinking?", "url": "https://willhackett.com/borrowed-cognition/", "published_at": "2026-05-07T17:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a858d57c810", "title": "Peter Whitehouse – teaching over measurement", "url": "https://willhackett.com/peter-whitehouse/", "published_at": "2026-04-29T21:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a858e281d00", "title": "Some things never change", "url": "https://willhackett.com/some-things-never-change/", "published_at": "2026-04-26T21:10:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a858ec47e5c", "title": "My advice to a younger me", "url": "https://willhackett.com/lessons/", "published_at": "2026-04-15T13:50:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a858f093fb5", "title": "12 seconds to scan 3,000 rows — oops", "url": "https://willhackett.com/enable-nestloop/", "published_at": "2026-04-14T11:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a858fa49814", "title": "Workforce Engineering has always existed. We just never named it.", "url": "https://willhackett.com/workforce-engineering/", "published_at": "2026-04-11T14:35:00+00:00" }, { "id": "01a0d4c3-4739-7228-b088-9f1c37afc11b", "title": "What is Workforce Engineering, and how do you achieve flow state?", "url": "https://willhackett.com/what-is-workforce-engineering/", "published_at": "2026-04-11T08:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a8591265b0d", "title": "Boring is better: Pushing 67k telemetry events per second into Postgres", "url": "https://willhackett.com/just-use-postgres/", "published_at": "2026-03-22T07:49:00+00:00" }, { "id": "01a0d4c3-4739-7228-b088-9f1c395c7e2a", "title": "Amortising a hallucination", "url": "https://willhackett.com/amortising-a-hallucination/", "published_at": "2026-03-13T01:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859267f54e", "title": "AI agents won't kill your system of record. Your rate limits will.", "url": "https://willhackett.com/ai-sor/", "published_at": "2026-02-08T21:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85930c2735", "title": "Digital ID done right: verifiable claims without the surveillance", "url": "https://willhackett.com/age-verification-digital-id/", "published_at": "2026-02-03T21:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85940559ca", "title": "Why I moved to Microsoft 365", "url": "https://willhackett.com/fastmail-to-microsoft/", "published_at": "2026-01-12T08:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a8594374390", "title": "Digital sovereignty requires funding, not just adoption", "url": "https://willhackett.com/eu-open-source-sovereignty/", "published_at": "2026-01-10T09:00:00+00:00" }, { "id": "01a0d4c3-473a-7005-a259-74a9a6f6ceab", "title": "The best engineering teams can turn on a dime", "url": "https://willhackett.com/engineering-teams-turn-on-a-dime/", "published_at": "2026-01-05T12:00:00+00:00" }, { "id": "01a0d4c3-473a-7005-a259-74a9a7b4b43b", "title": "Agentic coding is changing the engineering workforce—just not how you think", "url": "https://willhackett.com/agentic-coding-workforce/", "published_at": "2025-12-24T09:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a8595b4e33e", "title": "Reclaiming the commons: the case for an accountable internet", "url": "https://willhackett.com/reclaiming-the-commons/", "published_at": "2025-12-21T12:00:00+00:00" }, { "id": "01a0d4c3-473a-7005-a259-74a9a856e071", "title": "Moore's Law for AI is officially dead", "url": "https://willhackett.com/cost-of-ai-inference/", "published_at": "2025-12-17T22:20:00+00:00" }, { "id": "01a0d4c3-473a-7005-a259-74a9a8e7b248", "title": "Big teams, small team energy", "url": "https://willhackett.com/big-teams-small-team-energy/", "published_at": "2025-11-25T12:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a8596f144ed", "title": "Search kind of sucks now", "url": "https://willhackett.com/ai-search-crisis/", "published_at": "2025-11-15T02:31:00+00:00" }, { "id": "01a0d4c3-473a-7005-a259-74a9a97f94d1", "title": "How do you explain the £20M engineering spend?", "url": "https://willhackett.com/making-flowstate/", "published_at": "2025-11-05T15:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a8597625a20", "title": "Fixing email spam with AI: When traditional filters aren't enough", "url": "https://willhackett.com/fixing-email-spam-with-ai/", "published_at": "2025-11-02T19:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859807b16f", "title": "Pragmatic: Lessons from building (and winding down) an AI startup", "url": "https://willhackett.com/pragmatic-sunset/", "published_at": "2025-10-17T00:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859892c85d", "title": "Analytics is fine, tracking is the problem", "url": "https://willhackett.com/analytics-fine-tracking-problem/", "published_at": "2025-10-12T11:30:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a8598ad6332", "title": "AI everywhere is AI nowhere", "url": "https://willhackett.com/ai-everywhere/", "published_at": "2025-09-30T19:50:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85995d8146", "title": "Escaping the AI cost trap", "url": "https://willhackett.com/ai-economics/", "published_at": "2025-09-26T22:52:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85997496f2", "title": "Web 4.0: The Pragmatic Internet", "url": "https://willhackett.com/web-4-0-pragmatic-internet/", "published_at": "2025-08-27T01:40:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a8599f3f362", "title": "Berlin Airport reflections: on polymaths, ownership and execution", "url": "https://willhackett.com/berlin-airport-reflections/", "published_at": "2025-08-15T00:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859a70358b", "title": "How to Not Decrypt WhatsApp Web (But Still Win)", "url": "https://willhackett.com/whatsapp-and-tonic/", "published_at": "2025-08-06T23:22:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859a8ec0ba", "title": "Teaching AI to feel – the architecture of emotional intelligence", "url": "https://willhackett.com/emotional-ai/", "published_at": "2025-08-05T11:44:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859b7f4665", "title": "Stop reinventing the wheel", "url": "https://willhackett.com/avoid-reinventing-the-wheel/", "published_at": "2025-07-10T23:45:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859b9496fc", "title": "Know your Geebos", "url": "https://willhackett.com/know-your-geebos/", "published_at": "2025-06-20T21:38:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859bdd2cd2", "title": "Don't take the cloud call - focus on your startup", "url": "https://willhackett.com/the-cloud-call/", "published_at": "2025-06-19T20:20:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859cccf0c1", "title": "Your website is pissing people off", "url": "https://willhackett.com/captcha-pissing-off-old-people/", "published_at": "2025-05-29T20:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859d1b75fb", "title": "Invest in integrations, not the platforms", "url": "https://willhackett.com/invest-in-integration/", "published_at": "2025-05-08T16:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859da18a71", "title": "How to actually get things built", "url": "https://willhackett.com/how-to-actually-get-things-built/", "published_at": "2025-05-02T16:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859dd898f4", "title": "UK Pensions just aren't as good as Australian Superannuation", "url": "https://willhackett.com/uk-vs-aus-pensions/", "published_at": "2025-03-29T09:03:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859eb95d07", "title": "Getting started today", "url": "https://willhackett.com/getting-started/", "published_at": "2025-02-28T09:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859f1a1adb", "title": "I think BunnyCDN is the first real European answer to Cloudflare", "url": "https://willhackett.com/bunny/", "published_at": "2025-02-26T20:26:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a859fc6cb34", "title": "The pitfalls of iCloud Mail - systematic failures and user hostility", "url": "https://willhackett.com/apple-email-is-not-good/", "published_at": "2025-02-25T23:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85a0903370", "title": "The cultural cost of a bad hire", "url": "https://willhackett.com/one-bad-hire/", "published_at": "2025-02-21T01:12:43+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85a153f305", "title": "Tinfoil hat moment this evening, could Cloudflare be a NSA front?", "url": "https://willhackett.com/tinfoil-hat/", "published_at": "2025-02-10T22:41:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85a1bd3c3f", "title": "I think B2C is the best way to a successful B2B product", "url": "https://willhackett.com/b2c-product-thoughts/", "published_at": "2025-02-08T20:25:26+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85a1f657d1", "title": "Friday night code sessions - a lazy CleanShot X alternative", "url": "https://willhackett.com/cloudwrap/", "published_at": "2025-02-07T22:20:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85a2a4de2e", "title": "It's 2025, and JIRA is still clunky", "url": "https://willhackett.com/jira-in-2025/", "published_at": "2025-02-03T14:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85a391291e", "title": "Operational transformation & conflict-free resolution for real-time collaboration applications", "url": "https://willhackett.com/operational-transformation/", "published_at": "2024-05-01T05:45:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85a3e652ac", "title": "Techniques to make rebasing less of a headache", "url": "https://willhackett.com/rebase-techniques/", "published_at": "2024-03-24T05:52:40+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85a4ccaa9e", "title": "I built a GPT-powered email assistant - Jamie", "url": "https://willhackett.com/jamie-ai/", "published_at": "2024-02-15T14:00:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85a52b420d", "title": "Sharing encrypted data over short-form mediums", "url": "https://willhackett.com/share-encrypted-short-form-data/", "published_at": "2023-07-24T12:02:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85a608c65e", "title": "Distributed Trust with Service-to-Service Authentication", "url": "https://willhackett.com/s2s-trust/", "published_at": "2023-07-14T22:30:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85a6a02f83", "title": "OCR on Edge Compute", "url": "https://willhackett.com/edge-ocr/", "published_at": "2023-07-02T22:30:00+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85a6dcb328", "title": "Quit nesting React providers", "url": "https://willhackett.com/react-compose/", "published_at": "2022-05-10T01:12:43+00:00" }, { "id": "01a08c62-b541-71f5-bb76-9a85a7173927", "title": "Save time importing Cloudflare DNS records", "url": "https://willhackett.com/cloudflare-bind/", "published_at": "2022-04-11T01:12:43+00:00" }, { "id": "01a08c62-b542-7201-b805-ce51b06430e3", "title": "Rebase to freshen up your branch", "url": "https://willhackett.com/git-rebase/", "published_at": "2021-07-18T01:12:43+00:00" }, { "id": "01a08c62-b542-7201-b805-ce51b0a67836", "title": "Apple could do a lot with distributed compute", "url": "https://willhackett.com/distributed-compute/", "published_at": "2021-07-09T01:12:43+00:00" }, { "id": "01a08c62-b542-7201-b805-ce51b1424621", "title": "Grocery Store coding challenge", "url": "https://willhackett.com/grocery-store/", "published_at": "2021-07-07T01:12:43+00:00" }, { "id": "01a08c62-b542-7201-b805-ce51b1ac647b", "title": "Token invalidation in distributed systems", "url": "https://willhackett.com/distributed-token-invalidation/", "published_at": "2020-02-08T01:12:43+00:00" }, { "id": "01a08c62-b542-7201-b805-ce51b2a1e390", "title": "Unit testing in Keystone JS", "url": "https://willhackett.com/unit-testing-in-keystone-js/", "published_at": "2016-06-30T11:12:43+00:00" }, { "id": "01a08c62-b542-7201-b805-ce51b34615e7", "title": "Let's Encrypt - time to get serious about TLS", "url": "https://willhackett.com/lets-encrypt/", "published_at": "2016-04-10T01:12:43+00:00" } ] posts Claim your blog
Back to willhackett.com
Blog · corpus.blog/blogs/willhackett.com/posts

willhackett.com

willhackett.com

2026

2025

2024

2023

2022

2021

2020

2016