# Mike Zornek > Personal website of Mike Zornek, a developer and teacher from the suburbs of Philadelphia. Personal blog, running since 2012. The bulk of the writing is about Elixir and Phoenix, software craft, and the working life of an independent developer. Written and maintained by one person; every post is first-hand experience rather than aggregated content. ## Start Here Hand-picked, hand-ranked. If you only read a few things, read these. - [My Notes on Three Years of Coding with AI](https://mikezornek.com/posts/2026/7/three-years-coding-with-ai/): A non-hype version of what daily AI-assisted coding actually looks like after three years, written like a conversation over coffee. - [Personal Elixir Code Aesthetics](https://mikezornek.com/posts/2024/9/elixir-code-aesthetic/): A tour of some small personal choices behind clean, readable Elixir code I strive for. - [Phoenix LiveView: Presenting DateTime in User's Time Zone](https://mikezornek.com/posts/2025/1/presenting-datetime-in-user-time-zone-phoenix-live-view/): A concrete walk through a real Phoenix problem: showing timestamps in each reader's own time zone. - [What is Local-first Software?](https://mikezornek.com/posts/2025/2/what-is-local-first-software/): Why data ownership and offline-friendly software matter to me, and where local-first is heading. It's a problem space I'm digging into right now. - [My Standup Format](https://mikezornek.com/posts/2022/11/my-standup-format/): The simple async standup format I've leaned on for years to keep a team honest, human, and unblocked. ## Recent posts - [When a Pull Request Balloons, Extract](https://mikezornek.com/posts/2026/9/when-a-pull-request-balloons-extract/): My refund feature's pull request grew past 3,000 lines. Instead of shipping it whole, I've been pulling out the bug fixes and tests into their own PRs. - [PhillyCocoa Local-first Podcast](https://mikezornek.com/posts/2026/9/phillycocoa-local-first-podcast/): I recorded a podcast with my friends from PhillyCocoa. We talked about my transition from iOS to Elixir and more so my recent interest in local-first software. - [ElixirConf US 2026 Recap](https://mikezornek.com/posts/2026/9/elixir-conf-us-2026-recap/): Notes from watching ElixirConf US 2026 on a virtual ticket, and some talks I'd point you to first. - [Finding Your Broken Glass: A Flaky Test Prompt for GitHub Actions](https://mikezornek.com/posts/2026/9/finding-flaky-tests/): Your CI history already knows which tests flake. This prompt pulls the evidence, names the tests, and works out what the re-runs cost. - [One Pipe, One User Story: The Case for phoenix_test](https://mikezornek.com/posts/2026/9/phoenix-test/): Why phoenix_test makes Phoenix feature tests read better and fail more usefully. - [Building LocalCents: A Local-first Expense Tracker with Automerge CRDTs](https://mikezornek.com/posts/2026/8/local-cents/): An educational side project: a local-first expense tracker built with Automerge CRDTs in Elixir, Phoenix, and Tauri, plus how I surface sync conflicts. - [Who Fills the Sprint? My 45/45/10 Split](https://mikezornek.com/posts/2026/8/who-fills-the-sprint/): Every sprint is a tug-of-war between the roadmap and the work that keeps the lights on. Here is the 45/45/10 split I plan against, and why. - [Celebrating New Journaling Habits](https://mikezornek.com/posts/2026/8/celebrating-new-journaling-habits/): A couple of new habits have stuck: weekly planning, and a signal log to track where my consulting outreach lands. - [An Agent Skill for Updating Elixir Dependencies](https://mikezornek.com/posts/2026/8/elixir-dependency-update-skill/): What agent skills are, and a walkthrough of the one I lean on to update Elixir dependencies and open a documented pull request. - [Shimming Your Way Off a Dead Elixir Dependency](https://mikezornek.com/posts/2026/7/shim-off-a-dead-elixir-dependency/): An abandoned dependency was blocking a major upgrade I needed. Here are the two ways I retire one, and when a shim beats a big-bang rewrite. - [Guarding Against AI Drift: My Automated Elixir Quality Checks](https://mikezornek.com/posts/2026/7/guarding-against-ai-drift/): I have hardened LocalCents with more automated Elixir quality checks than I have ever run. The whole guardrail setup, wired in a real repo. - [My Notes on Three Years of Coding with AI](https://mikezornek.com/posts/2026/7/three-years-coding-with-ai/): Notes on how my use of AI has changed over three years, and what's working and what isn't inside LocalCents. - [What Is Good Code?](https://mikezornek.com/posts/2026/7/what-is-good-code/): We all nod along to "good code" but rarely define it. Here are the four attributes I look for, and the practices that protect each one. - [A Place for Everything: How I Track Work](https://mikezornek.com/posts/2026/7/a-place-for-everything/): How I track work, from issue statuses and types to pull request conventions, with sample PR templates you can copy. - [Decision Records, Playbooks, and Other Acts of Kindness](https://mikezornek.com/posts/2026/7/decision-records-and-playbooks/): You open a project you did not write, hit a wall, and find no one left to ask. The habits that spare the next developer that moment. - [Stabilizing Inherited Software: My First-Week Checklist](https://mikezornek.com/posts/2026/7/inherited-software-checklist/): Inherited a live codebase with no one left who built it? Here's the checklist I run through in week one — before touching a single feature. - [Fresh Eyes on a Cucumbered Team](https://mikezornek.com/posts/2026/6/fresh-eyes-on-a-cucumbered-team/): There is a term for being on a team so long you stop noticing its quirks. What fresh eyes can, and cannot responsibly, do about it. - [The Moral Struggles of AI Coding](https://mikezornek.com/posts/2026/5/moral-struggles-of-ai-coding/): A journal documenting my use of and personal ethics around AI coding as a programmer. - [GitHub Copilot and Unhonored Branch Protection](https://mikezornek.com/posts/2025/10/github-copilot-and-unhonored-branch-protection/): GitHub Copilot commits directly to `main` and ruins my night. - [Becoming an Accessibility Ally: My Early Journey and Resources](https://mikezornek.com/posts/2025/6/becoming-an-accessibility-ally/): What I learned from a Website Accessibility course, plus the tools and resources worth a look if you want to level up too. ## About and contact - [All posts](https://mikezornek.com/posts/): the full archive, 456 posts. - [Contact](https://mikezornek.com/contact/): Ways to reach me: email, Mastodon, Bluesky, or grab a slot on my calendar for a chat. - [Elixir Consulting](https://mikezornek.com/elixir-consulting/): Elixir and Phoenix consulting. Fixed-price two-week sprints at $6,000, or ongoing hourly work, for teams that need upgrades, stability, and senior review. - [Follow](https://mikezornek.com/follow/): RSS feeds and platform accounts where you can follow my writing and videos, including Mastodon, Bluesky, YouTube, and GitHub. - [Newsletter](https://mikezornek.com/newsletter/): Sign up for my personal newsletter, a monthly-ish email of links worth your time, recent posts, and a personal update. - [Now](https://mikezornek.com/now/): What I would tell an old friend who asked what is going on. What I am working on, what I am excited about, what has my attention. - [Talks](https://mikezornek.com/talks/): A record of the conferences and meetups I have spoken at and attended over the years, with links to the talks I gave. - [Values](https://mikezornek.com/values/): The values I align with regarding my work in product design and software development. ## Optional - [RSS feed](https://mikezornek.com/index.xml): every post, full text. - [Sitemap](https://mikezornek.com/sitemap.xml): every URL on the site.