56,966 blogs · [ { "id": "01a08785-2413-7300-bcc5-e6c52d06d4fb", "title": "The NixOS Tools That Actually Make a Difference", "url": "https://iampavel.dev/blog/best-nixos-tools", "published_at": "2026-04-20T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c52d06f468", "title": "TimescaleDB Continuous Aggregates: What I Got Wrong (and How to Fix It)", "url": "https://iampavel.dev/blog/timescaledb-continuous-aggregates-regrets", "published_at": "2026-04-18T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c52da8907b", "title": "When Exchanges Lie: Outlier Detection Across 150+ Crypto Data Sources", "url": "https://iampavel.dev/blog/when-exchanges-lie", "published_at": "2026-04-15T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c52e94b108", "title": "Twenty Years Since My First PHP Script", "url": "https://iampavel.dev/blog/twenty-years-since-my-first-php-script", "published_at": "2026-04-13T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c52ee982f4", "title": "Atomic Operations in Go", "url": "https://iampavel.dev/blog/atomic-operations-go", "published_at": "2026-04-12T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c52fe89318", "title": "Home Assistant Works Great Until It Doesn't: 10 Years of Lessons", "url": "https://iampavel.dev/blog/home-assistant-works-great-until-it-doesnt", "published_at": "2026-04-12T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c52ff7183c", "title": "The Only Prometheus Metrics I Actually Alert On", "url": "https://iampavel.dev/blog/prometheus-grafana-essential-metrics", "published_at": "2026-04-11T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c53087d3ee", "title": "The Meta Tags That Matter (And the JSON-LD That Gets You Cited)", "url": "https://iampavel.dev/blog/seo-meta-jsonld", "published_at": "2026-04-11T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c530ce326c", "title": "Go 1.26 new(expr) and the pointer problem I thought was solved", "url": "https://iampavel.dev/blog/go-1-26-new-expr", "published_at": "2026-04-09T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c531b128fe", "title": "Go Bitwise Flags and Bitmasks: Configuration Pattern Guide", "url": "https://iampavel.dev/blog/go-bitwise-flags-config", "published_at": "2026-04-09T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c531b2d77c", "title": "tmux + Neovim + AI: My tdev Workflow for AI-Powered Development Sessions", "url": "https://iampavel.dev/blog/tmux-neovim-opencode-workflow", "published_at": "2026-04-08T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c53281f168", "title": "NixOS vs Traditional Linux: Why I Made the Switch and What I Learned", "url": "https://iampavel.dev/blog/why-i-switched-to-nixos", "published_at": "2026-04-08T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c532a1c45d", "title": "Bash Essential Aliases and Functions", "url": "https://iampavel.dev/blog/bash-essential-aliases-and-functions", "published_at": "2026-04-07T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c53355feca", "title": "I Assumed SvelteKit 5 Would Just Work. I Was Wrong About the Mental Model.", "url": "https://iampavel.dev/blog/i-assumed-sveltekit-5-would-just-work", "published_at": "2026-04-07T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c53455ed40", "title": "Multi-Agent Orchestration in Go", "url": "https://iampavel.dev/blog/go-multi-agent-orchestration", "published_at": "2026-04-06T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c53476c381", "title": "How to Actually Read Nix Error Messages (Without Crying)", "url": "https://iampavel.dev/blog/how-to-read-nix-error", "published_at": "2026-04-06T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c53573e6b1", "title": "Reproducible Dev Environments with Nix and direnv", "url": "https://iampavel.dev/blog/nix-direnv-dev-environments", "published_at": "2026-04-06T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c535ded2d7", "title": "Notes on My First Factorio Mod: Why I Stopped Trusting the Shift-Click Dance", "url": "https://iampavel.dev/blog/first-factorio-mod", "published_at": "2026-04-05T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c53601b6fe", "title": "How I Organized over 100 NixOS Modules Without Going Crazy", "url": "https://iampavel.dev/blog/nixos-module-organization", "published_at": "2026-04-05T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c536328b53", "title": "Deploying SvelteKit to Cloudflare Workers for Free", "url": "https://iampavel.dev/blog/sveltekit-cloudflare-workers-free", "published_at": "2026-04-05T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c5370c2f0a", "title": "AI-Built Apps Are Breaking Businesses", "url": "https://iampavel.dev/blog/ai-apps-breaking-businesses", "published_at": "2026-04-04T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c5376e72af", "title": "How I Built a Factorio 'Auto Mall' Generator in Go", "url": "https://iampavel.dev/blog/factorio-automall", "published_at": "2026-04-01T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c537d87382", "title": "Cloudflare Workers: What I Learned Building With Them", "url": "https://iampavel.dev/blog/cloudflare-workers-insights", "published_at": "2026-03-29T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c537dedb4b", "title": "Notes on Rolling Checksums: A Weekend with rsync's Adler32", "url": "https://iampavel.dev/blog/rsync-rollsum-weekend", "published_at": "2026-03-28T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c5382037d0", "title": "Notes on Testing: Why I Prefer Testcontainers Over Mocks", "url": "https://iampavel.dev/blog/testcontainers-testing", "published_at": "2026-03-26T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c5386d4611", "title": "Practical Notes on DRY: Why I'm Okay with a Little Duplication", "url": "https://iampavel.dev/blog/dry-principle-notes", "published_at": "2026-03-25T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c53929bd40", "title": "Building Tool-Using AI Agents in Go with LangChainGo", "url": "https://iampavel.dev/blog/go-ai-agents-langchaingo-ollama", "published_at": "2026-03-25T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c539cb9266", "title": "How I Actually Structure My Go Services", "url": "https://iampavel.dev/blog/go-project-structure", "published_at": "2026-03-24T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c53a7dc244", "title": "Notes on My Blog's 'Self-Publishing' Pipeline", "url": "https://iampavel.dev/blog/automating-my-blog", "published_at": "2026-03-22T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c53b093b75", "title": "SSH Config: From Spaghetti to Sanity", "url": "https://iampavel.dev/blog/ssh-config-sanity", "published_at": "2026-03-20T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c53b7d2837", "title": "GitHub PR Checkout: Two Methods That Actually Work", "url": "https://iampavel.dev/blog/checkout-gitHub-pull-request", "published_at": "2023-11-09T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c53baae105", "title": "Bash Shortcuts I Use Every Day", "url": "https://iampavel.dev/blog/bash-shortcuts", "published_at": "2023-10-14T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c53c9cfc87", "title": "Building My First Custom Mechanical Keyboard", "url": "https://iampavel.dev/blog/first-custom-keyboard", "published_at": "2023-10-08T00:00:00+00:00" }, { "id": "01a08785-2413-7300-bcc5-e6c53cb8612a", "title": "Neovim Keybindings and My Workflow", "url": "https://iampavel.dev/blog/neovim-unlocking-efficiency", "published_at": "2023-09-18T00:00:00+00:00" } ] posts Claim your blog
Back to iampavel.dev
Blog · corpus.blog/blogs/iampavel.dev/posts

iampavel.dev

iampavel.dev

2026

2023