41554 blogs · [ { "id": "01a087b0-e8cd-7317-9d90-3a6b74e4f433", "title": "On naming events", "url": "https://noahc.net/zuihitsu/on-naming-events/", "published_at": "2026-04-08T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b7452f2cf", "title": "From Hardcoded to Data-Driven: Loading YAML in Elixir", "url": "https://noahc.net/series/herb-wars/08-external-data-yaml/", "published_at": "2026-03-22T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b7579d7d8", "title": "ETS tables at 3am", "url": "https://noahc.net/zuihitsu/ets-tables-at-3am/", "published_at": "2026-03-22T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b7384fa5a", "title": "Game Mechanics: Random Events and Herb Effects", "url": "https://noahc.net/series/herb-wars/07-events-and-effects/", "published_at": "2026-03-15T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b76158759", "title": "Capturing PostHog Events in Rails Without the Footguns", "url": "https://noahc.net/posts/posthog-events-rails/", "published_at": "2026-03-15T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b76c4981e", "title": "Cover crops and dead code", "url": "https://noahc.net/zuihitsu/cover-crops/", "published_at": "2026-03-10T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b728db6f1", "title": "Time Travel Debugging: Why Immutable State is a Superpower", "url": "https://noahc.net/series/herb-wars/06-state-history-and-time-travel/", "published_at": "2026-03-08T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b720a4153", "title": "Recursion Without the Headache: Managing Game State in Elixir", "url": "https://noahc.net/series/herb-wars/05-recursion-and-state/", "published_at": "2026-03-01T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b71dabb9b", "title": "Organizing Your Elixir Code: Modules, Separation, and the Art of Not Making a Mess", "url": "https://noahc.net/series/herb-wars/04-modules-and-organization/", "published_at": "2026-02-22T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b77a56ef0", "title": "ETS Beyond the Cache: Three Patterns That Survived Production", "url": "https://noahc.net/posts/ets-beyond-cache/", "published_at": "2026-02-20T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b78a1e25a", "title": "The Sidekiq queue is a promise", "url": "https://noahc.net/zuihitsu/the-sidekiq-queue/", "published_at": "2026-02-18T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b71c7fa83", "title": "Map, Filter, Reduce: The Enum Module is Your New Best Friend", "url": "https://noahc.net/series/herb-wars/03-enums-and-lists/", "published_at": "2026-02-15T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b71524176", "title": "Immutability Isn't Scary: Building Your First Elixir Data Structures", "url": "https://noahc.net/series/herb-wars/02-data-structures/", "published_at": "2026-02-08T00:00:00+00:00" }, { "id": "01a087b0-e8cc-730a-81c0-4d5da1a8667d", "title": "Your First Day with Elixir: Building Something Beautiful from Scratch", "url": "https://noahc.net/series/herb-wars/01-getting-started/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b7956df0f", "title": "The Math Behind Sidekiq Retries", "url": "https://noahc.net/posts/sidekiq-retry-math/", "published_at": "2026-01-28T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b795c48c8", "title": "A Naming Convention for Analytics Events", "url": "https://noahc.net/posts/event-naming-conventions/", "published_at": "2026-01-10T00:00:00+00:00" }, { "id": "01a087b0-e8cd-7317-9d90-3a6b799c39aa", "title": "GenServer Timeouts Are Not What You Think", "url": "https://noahc.net/posts/genserver-timeouts/", "published_at": "2025-12-15T00:00:00+00:00" } ] posts Claim your blog
Back to noahc.net
Blog · corpus.blog/blogs/noahc.net/posts

noahc.net

noahc.net

2026

2025