41554 blogs · [ { "id": "01a0d4e6-9ed7-7398-b7d1-ec43b25848e6", "title": "TypeSafe's Jev in production: thresholds and two bugs", "url": "https://zeybek.dev/blog/typesafe-jev-in-production", "published_at": "2026-09-21T09:00:00+00:00" }, { "id": "01a0d4e6-9ed7-7398-b7d1-ec43b2ae4674", "title": "How I turn any handful of colours into a readable theme", "url": "https://zeybek.dev/blog/how-i-turn-any-handful-of-colours-into-a-readable-theme", "published_at": "2026-09-17T09:00:00+00:00" }, { "id": "01a0d4e6-9ed7-7398-b7d1-ec43b2f16075", "title": "How camouflage.nvim masks secrets in Neovim without leaking a frame", "url": "https://zeybek.dev/blog/how-camouflage-nvim-masks-secrets-in-neovim", "published_at": "2026-09-16T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a25587bc", "title": "Upgrading PostgreSQL 16 to 18 with zero downtime: the whole runbook", "url": "https://zeybek.dev/blog/zero-downtime-postgres-upgrade-runbook", "published_at": "2026-09-07T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a291bf5b", "title": "Selling a blog post with x402, and everything the quickstart leaves out", "url": "https://zeybek.dev/blog/selling-a-blog-post-with-x402", "published_at": "2026-09-06T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a301a1fb", "title": "The outbox pattern without a relay", "url": "https://zeybek.dev/blog/the-outbox-pattern-without-a-relay", "published_at": "2026-09-03T10:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a31fdd1f", "title": "Letting an agent touch production", "url": "https://zeybek.dev/blog/letting-an-agent-touch-production", "published_at": "2026-08-25T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a3e6db49", "title": "The npm worm playbook for a small team", "url": "https://zeybek.dev/blog/the-npm-worm-playbook-for-a-small-team", "published_at": "2026-08-18T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a46dbdff", "title": "Just use Postgres, until it actually hurts", "url": "https://zeybek.dev/blog/just-use-postgres-until-it-actually-hurts", "published_at": "2026-08-11T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a4f2eaad", "title": "The code nobody read", "url": "https://zeybek.dev/blog/the-code-nobody-read", "published_at": "2026-08-04T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a591c81e", "title": "The JavaScript toolchain got rewritten and you should let it", "url": "https://zeybek.dev/blog/the-javascript-toolchain-got-rewritten-and-you-should-let-it", "published_at": "2026-07-28T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a5fe528e", "title": "TypeScript 7 migration notes from a monorepo", "url": "https://zeybek.dev/blog/typescript-7-migration-notes-from-a-monorepo", "published_at": "2026-07-21T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a66e98b1", "title": "Hiring engineers when everyone has an agent", "url": "https://zeybek.dev/blog/hiring-engineers-when-everyone-has-an-agent", "published_at": "2026-07-14T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a744a8e9", "title": "Context engineering is cache management", "url": "https://zeybek.dev/blog/context-engineering-is-cache-management", "published_at": "2026-07-07T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a7bb3fb0", "title": "How we review pull requests that an agent wrote", "url": "https://zeybek.dev/blog/how-we-review-pull-requests-that-an-agent-wrote", "published_at": "2026-06-23T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a8b68be0", "title": "Every LLM feature needs a kill switch", "url": "https://zeybek.dev/blog/every-llm-feature-needs-a-kill-switch", "published_at": "2026-06-16T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a9b36c65", "title": "Cache Components changed how I think about a page", "url": "https://zeybek.dev/blog/cache-components-changed-how-i-think-about-a-page", "published_at": "2026-06-09T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24a9e2a371", "title": "Who is the agent acting as?", "url": "https://zeybek.dev/blog/who-is-the-agent-acting-as", "published_at": "2026-06-02T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24aaaa904f", "title": "A local model is good enough for most of my tooling", "url": "https://zeybek.dev/blog/a-local-model-is-good-enough-for-most-of-my-tooling", "published_at": "2026-05-26T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24aad49e29", "title": "Tracing an agent like a distributed system", "url": "https://zeybek.dev/blog/tracing-an-agent-like-a-distributed-system", "published_at": "2026-05-19T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24ab17bff4", "title": "The observability bill is a design problem", "url": "https://zeybek.dev/blog/the-observability-bill-is-a-design-problem", "published_at": "2026-05-12T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24ab4d0991", "title": "Skills are not tools", "url": "https://zeybek.dev/blog/skills-are-not-tools", "published_at": "2026-05-05T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24abb27794", "title": "UUIDv7 and the end of the random primary key", "url": "https://zeybek.dev/blog/uuidv7-and-the-end-of-the-random-primary-key", "published_at": "2026-04-28T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24ac3f49c6", "title": "Picking a JavaScript runtime in 2026", "url": "https://zeybek.dev/blog/picking-a-javascript-runtime-in-2026", "published_at": "2026-04-21T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24ad013be0", "title": "Prompt injection is a data plane problem", "url": "https://zeybek.dev/blog/prompt-injection-is-a-data-plane-problem", "published_at": "2026-04-14T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24ad84acac", "title": "Write the eval before the prompt", "url": "https://zeybek.dev/blog/write-the-eval-before-the-prompt", "published_at": "2026-04-07T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24ad86dd6c", "title": "RAG is a search problem wearing a costume", "url": "https://zeybek.dev/blog/rag-is-a-search-problem-wearing-a-costume", "published_at": "2026-03-31T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24addf46f3", "title": "Free-threaded Python in production: what actually broke", "url": "https://zeybek.dev/blog/free-threaded-python-in-production-what-actually-broke", "published_at": "2026-03-24T09:00:00+00:00" }, { "id": "01a08c66-e329-70a7-bf02-9f24ae0eb2b6", "title": "I deleted every useMemo and nothing happened", "url": "https://zeybek.dev/blog/i-deleted-every-usememo-and-nothing-happened", "published_at": "2026-03-10T09:00:00+00:00" } ] posts Claim your blog
Back to zeybek.dev
Blog · corpus.blog/blogs/zeybek.dev/posts

zeybek.dev

zeybek.dev

2026