<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Learn Elixir with Expert Training &amp; Courses</title><description>Learn from Bruce Tate, author of &apos;Designing Elixir Systems with OTP&apos; and 10+ foundational Elixir books. Self-paced courses, live team training, and 1:1 mentoring to help you build reliable systems with confidence.</description><link>https://grox.io/</link><item><title>Pay Your Own Way: What We Ask of AI, and of Ourselves</title><link>https://grox.io/blog/42-pay-your-own-way-what-we-ask-of-ai-and-of-ourselves/</link><guid isPermaLink="true">https://grox.io/blog/42-pay-your-own-way-what-we-ask-of-ai-and-of-ourselves/</guid><description>Bruce Tate lays out Groxio&apos;s position on AI: use it where it strengthens human judgment, pay the full costs it creates, compensate the people whose work trained it, and reinvest the dividend in juniors and craft.</description><pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Why Elixir Is Built for AI-Assisted Development</title><link>https://grox.io/blog/41-why-elixir-is-built-for-ai-assisted-development/</link><guid isPermaLink="true">https://grox.io/blog/41-why-elixir-is-built-for-ai-assisted-development/</guid><description>Why Elixir&apos;s functional core, process isolation, OTP recovery, and runtime metadata make it a strong language for AI-assisted development without losing architecture decisions.</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Three Ways to Consume Code</title><link>https://grox.io/blog/40-three-ways-to-consume-code/</link><guid isPermaLink="true">https://grox.io/blog/40-three-ways-to-consume-code/</guid><description>Elixir has three module directives for consuming code: require, import, and alias. Learn what each one means, when to use it, and how each choice affects readability.</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Coding Is Training Now. So Teaching Has to Be.</title><link>https://grox.io/blog/39-coding-is-training-now-so-teaching-has-to-be/</link><guid isPermaLink="true">https://grox.io/blog/39-coding-is-training-now-so-teaching-has-to-be/</guid><description>Bruce Tate argues that AI has not removed coding from junior development. It has made every keystroke an act of teaching, making planning, review, prompt discipline, and mentorship the new training ground.</description><pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Managing the Conveyor Belt: Context Windows and Layered Elixir Architecture</title><link>https://grox.io/blog/38-managing-the-conveyor-belt-context-windows-and-layered-elixir-architecture/</link><guid isPermaLink="true">https://grox.io/blog/38-managing-the-conveyor-belt-context-windows-and-layered-elixir-architecture/</guid><description>Learn how Bruce Tate manages Claude context windows with compacting, clearing, and priming while preserving layered Elixir architecture and one source of truth per layer.</description><pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate></item><item><title>The Junior Developer Isn&apos;t Dead. The Job Just Moved.</title><link>https://grox.io/blog/37-the-junior-developer-isnt-dead-the-job-just-moved/</link><guid isPermaLink="true">https://grox.io/blog/37-the-junior-developer-isnt-dead-the-job-just-moved/</guid><description>Bruce Tate argues that AI did not eliminate junior developers. It moved their work toward judgment, verification, architecture boundaries, and training that grows future seniors.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Design for AI: Why Pure Functions Make Better AI Partners</title><link>https://grox.io/blog/36-design-for-ai-why-pure-functions-make-better-ai-partners/</link><guid isPermaLink="true">https://grox.io/blog/36-design-for-ai-why-pure-functions-make-better-ai-partners/</guid><description>Bruce Tate shows why pure functions and the CRC pattern (construct, reduce, convert) don&apos;t just help humans reason about code — they help Claude generate, verify, and stay correct with fewer tokens.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Your Code Should Explain Itself</title><link>https://grox.io/blog/35-your-code-should-explain-itself/</link><guid isPermaLink="true">https://grox.io/blog/35-your-code-should-explain-itself/</guid><description>Elixir documentation is not a stale comment beside your code. Learn how module attributes, IEx help, ExDoc, and doctests keep explanations close to the behavior they describe.</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The Architect in the Loop: Critical Planning and the Limits of Vibing</title><link>https://grox.io/blog/33-the-architect-in-the-loop-critical-planning-and-the-limits-of-vibing/</link><guid isPermaLink="true">https://grox.io/blog/33-the-architect-in-the-loop-critical-planning-and-the-limits-of-vibing/</guid><description>AI can produce a convincing architecture plan, but production systems need structured review. Bruce Tate shows how an Elixir architect catches security and design mistakes before implementation begins.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate></item><item><title>How Juniors Become Seniors</title><link>https://grox.io/blog/32-how-juniors-become-seniors/</link><guid isPermaLink="true">https://grox.io/blog/32-how-juniors-become-seniors/</guid><description>Bruce Tate argues that code is no longer the core asset – judgment is. The organizations that win will protect senior craft, measure mentorship, and reinvest AI&apos;s dividend in training juniors into future seniors.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Mix Tasks Are Just Elixir</title><link>https://grox.io/blog/34-mix-tasks-are-just-elixir/</link><guid isPermaLink="true">https://grox.io/blog/34-mix-tasks-are-just-elixir/</guid><description>Mix tasks are not separate from your Elixir application. They are ordinary modules that implement Mix.Task, giving you a clean boundary around reusable project tooling.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The Trainable Things</title><link>https://grox.io/blog/31-the-trainable-things/</link><guid isPermaLink="true">https://grox.io/blog/31-the-trainable-things/</guid><description>Bruce Tate argues the AI coding crisis is not a junior talent problem but a training failure, and outlines the concrete skills teams need to teach explicitly now.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate></item><item><title>How Better Tools Can Make Things Worse</title><link>https://grox.io/blog/30-how-better-tools-can-make-things-worse/</link><guid isPermaLink="true">https://grox.io/blog/30-how-better-tools-can-make-things-worse/</guid><description>Bruce Tate traces how AI coding tools moved from helpful completion to unchecked delegation, leaving teams with faster output, weaker design, and less room for judgment to grow.</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The Sludge on the Wall</title><link>https://grox.io/blog/28-the-sludge-on-the-wall/</link><guid isPermaLink="true">https://grox.io/blog/28-the-sludge-on-the-wall/</guid><description>AI coding tools are increasing output while hiding codebase drift, review overload, and lost mentorship. Bruce Tate argues teams should reinvest the time AI gives them in training and craft.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate></item><item><title>Building in Layers</title><link>https://grox.io/blog/29-building-in-layers/</link><guid isPermaLink="true">https://grox.io/blog/29-building-in-layers/</guid><description>Learn how Elixir programs stay easier to test and change by separating pure logic, IO boundaries, and API coordination into distinct layers.</description><pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate></item><item><title>Prompts That Write Prompts: Meta Workflow Generation</title><link>https://grox.io/blog/27-prompts-that-write-prompts-meta-workflow-generation/</link><guid isPermaLink="true">https://grox.io/blog/27-prompts-that-write-prompts-meta-workflow-generation/</guid><description>Learn how meta workflow generation turns prompts into reusable project commands, making AI development workflows durable, repeatable, and reviewable.</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate></item><item><title>Recursion as a Design Pattern</title><link>https://grox.io/blog/26-recursion-as-a-design-pattern/</link><guid isPermaLink="true">https://grox.io/blog/26-recursion-as-a-design-pattern/</guid><description>Learn how recursion works as a natural Elixir design pattern, why accumulators make list processing stack-safe, and how this mental model leads directly to Enum.reduce.</description><pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate></item><item><title>Your AI Tooling Has a Home: Project vs. Global Infrastructure</title><link>https://grox.io/blog/25-your-ai-tooling-has-a-home-project-vs-global-infrastructure/</link><guid isPermaLink="true">https://grox.io/blog/25-your-ai-tooling-has-a-home-project-vs-global-infrastructure/</guid><description>Learn when AI tooling should live globally versus in the project so shared workflows stay versioned, visible, and aligned with the codebase.</description><pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Lists Are Not Arrays</title><link>https://grox.io/blog/24-lists-are-not-arrays/</link><guid isPermaLink="true">https://grox.io/blog/24-lists-are-not-arrays/</guid><description>Learn why Elixir lists are linked structures, how `[head | tail]` reveals their shape, and why building left then reversing once leads to clearer, faster code.</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Building Your AI Toolchain: Rules, Skills, Sub-Agents, and Slash Commands</title><link>https://grox.io/blog/23-building-your-ai-toolchain-rules-skills-sub-agents-and-slash-commands/</link><guid isPermaLink="true">https://grox.io/blog/23-building-your-ai-toolchain-rules-skills-sub-agents-and-slash-commands/</guid><description>Learn when to use rules, skills, sub-agents, and slash commands so your AI workflow scales with structured oversight instead of context-heavy repetition.</description><pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Control Flow: Truth, Conditions, and Pattern-Based Decisions</title><link>https://grox.io/blog/22-control-flow-truth-conditions-and-pattern-based-decisions/</link><guid isPermaLink="true">https://grox.io/blog/22-control-flow-truth-conditions-and-pattern-based-decisions/</guid><description>Learn how Elixir control flow works with expressions, truthy checks, and pattern matching so you can choose the right tool and avoid hidden runtime failures.</description><pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Stop Repeating Yourself: How to Architect AI Workflows Like Code</title><link>https://grox.io/blog/21-stop-repeating-yourself-how-to-architect-ai-workflows-like-code/</link><guid isPermaLink="true">https://grox.io/blog/21-stop-repeating-yourself-how-to-architect-ai-workflows-like-code/</guid><description>If you keep retyping the same AI instructions, you do not have a workflow. Learn a practical three-layer structure to keep coding agents consistent.</description><pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate></item><item><title>When the Shape Is the Contract: Tuples, Tagged Tuples, and Keywords</title><link>https://grox.io/blog/20-when-the-shape-is-the-contract-tuples-tagged-tuples-and-keywords/</link><guid isPermaLink="true">https://grox.io/blog/20-when-the-shape-is-the-contract-tuples-tagged-tuples-and-keywords/</guid><description>Learn when to use tuples, tagged tuples, and keyword lists in Elixir, and why designing return values as contracts leads to clearer, more maintainable code.</description><pubDate>Mon, 16 Mar 2026 00:00:00 GMT</pubDate></item><item><title>The Morning After: What That 30-Minute Phoenix App Actually Costs</title><link>https://grox.io/blog/19-the-morning-after-what-that-30-minute-phoenix-app-actually-costs/</link><guid isPermaLink="true">https://grox.io/blog/19-the-morning-after-what-that-30-minute-phoenix-app-actually-costs/</guid><description>A fast Phoenix LiveView build can look impressive, but hidden structural debt appears when you inspect what AI generated under speed pressure.</description><pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Scope (Visibility and Isolation)</title><link>https://grox.io/blog/18-scope-visibility-and-isolation/</link><guid isPermaLink="true">https://grox.io/blog/18-scope-visibility-and-isolation/</guid><description>Learn how Elixir scope boundaries reinforce immutability, prevent hidden state changes, and make code behavior predictable.</description><pubDate>Mon, 02 Mar 2026 00:00:00 GMT</pubDate></item><item><title>The Illusion of Speed: When AI Builds a Phoenix App in 30 Minutes</title><link>https://grox.io/blog/17-the-illusion-of-speed-when-ai-builds-a-phoenix-app-in-30-minutes/</link><guid isPermaLink="true">https://grox.io/blog/17-the-illusion-of-speed-when-ai-builds-a-phoenix-app-in-30-minutes/</guid><description>A 30‑minute Phoenix LiveView demo looks magical – until you see how the yes loop creates hidden scope and long‑term maintenance cost.</description><pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Pattern Matching: Matching, Not Assigning</title><link>https://grox.io/blog/16-pattern-matching-matching-not-assigning/</link><guid isPermaLink="true">https://grox.io/blog/16-pattern-matching-matching-not-assigning/</guid><description>Pattern matching in Elixir is about selecting structure, not storing values. Learn destructuring, pinning, and how match failure guides control flow.</description><pubDate>Mon, 16 Feb 2026 00:00:00 GMT</pubDate></item><item><title>The Editor Is the Agent</title><link>https://grox.io/blog/15-the-editor-is-the-agent/</link><guid isPermaLink="true">https://grox.io/blog/15-the-editor-is-the-agent/</guid><description>Learn the Ask → Plan → Agent workflow, a two-level safety net, and context discipline for checkpoint-based AI coding in Elixir.</description><pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Learning Elixir? Data Shape Is a Design Decision</title><link>https://grox.io/blog/14-data-shape-is-a-design-decision/</link><guid isPermaLink="true">https://grox.io/blog/14-data-shape-is-a-design-decision/</guid><description>In Elixir, data shape determines how code behaves and reads. Learn when to use atoms, tuples, lists, and maps to make your intent explicit.</description><pubDate>Mon, 02 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Learning Elixir? Function Heads Are Chosen by Shape</title><link>https://grox.io/blog/13-function-heads-are-chosen-by-shape/</link><guid isPermaLink="true">https://grox.io/blog/13-function-heads-are-chosen-by-shape/</guid><description>Elixir selects a function head by pattern matching the shape of your arguments, which is why the language feels declarative before you touch OTP.</description><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Stop Prompting. Start Anchoring.</title><link>https://grox.io/blog/12-stop-prompting-start-anchoring/</link><guid isPermaLink="true">https://grox.io/blog/12-stop-prompting-start-anchoring/</guid><description>The model didn&apos;t forget your architecture—it just never lived anywhere durable. Learn how to anchor decisions in structure instead of prompts.</description><pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Variables Don&apos;t Change, They Get Rebound</title><link>https://grox.io/blog/11-variables-dont-change-they-get-rebound/</link><guid isPermaLink="true">https://grox.io/blog/11-variables-dont-change-they-get-rebound/</guid><description>Variables aren&apos;t containers you mutate, they&apos;re names that point at values. Learn why this distinction matters more than immutability alone.</description><pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Stop Writing Statements, Start Writing Expressions</title><link>https://grox.io/blog/10-stop-writing-statements-start-writing-expressions/</link><guid isPermaLink="true">https://grox.io/blog/10-stop-writing-statements-start-writing-expressions/</guid><description>In Elixir, if statements aren&apos;t control flow—they&apos;re expressions that return values. Learn how this eliminates state management and changes how you read code.</description><pubDate>Mon, 29 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Learning Elixir? Align Your Mental Model</title><link>https://grox.io/blog/09-learning-elixir---align-your-mental-model/</link><guid isPermaLink="true">https://grox.io/blog/09-learning-elixir---align-your-mental-model/</guid><description>The syntax is easy. The mental model is hard. Learn the one shift that makes Elixir stop feeling sideways and start feeling natural.</description><pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Which AI Agent Should You Actually Use?</title><link>https://grox.io/blog/08-which-ai-agent-should-you-actually-use/</link><guid isPermaLink="true">https://grox.io/blog/08-which-ai-agent-should-you-actually-use/</guid><description>Stop comparing features and benchmarks. Learn to match AI agents to your workflow with a practical decide-vs-execute rule you can use today.</description><pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Why AI &quot;Forgets&quot; (and How to Work With It Instead of Fighting It)</title><link>https://grox.io/blog/07-why-ai-forgets-and-how-to-work-with-it-instead-of-fighting-it/</link><guid isPermaLink="true">https://grox.io/blog/07-why-ai-forgets-and-how-to-work-with-it-instead-of-fighting-it/</guid><description>Why AI agents lose context, how the conveyor belt model explains it, and a practical habit Elixir developers can use immediately to get better results.</description><pubDate>Mon, 08 Dec 2025 00:00:00 GMT</pubDate></item><item><title>How I Work With AI Coding Agents in Elixir (And Why &quot;Vibing&quot; Is a Trap)</title><link>https://grox.io/blog/06-how-i-work-with-ai-coding-agents-in-elixir-and-why-vibing-is-a-trap/</link><guid isPermaLink="true">https://grox.io/blog/06-how-i-work-with-ai-coding-agents-in-elixir-and-why-vibing-is-a-trap/</guid><description>Explore the five modes of collaborating with AI coding agents in Elixir — and why &apos;vibing&apos; creates fragile systems.</description><pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Why Is This Hard?</title><link>https://grox.io/blog/05-why-is-this-hard/</link><guid isPermaLink="true">https://grox.io/blog/05-why-is-this-hard/</guid><description>Learn to recognize when complexity is hindering your Elixir development team&apos;s productivity, with practical frameworks for addressing technical debt before it becomes critical.</description><pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate></item><item><title>What Will It Cost to Carry and Remove This Dependency?</title><link>https://grox.io/blog/04-what-will-it-cost/</link><guid isPermaLink="true">https://grox.io/blog/04-what-will-it-cost/</guid><description>Learn how dependency analysis transforms Elixir development decisions, with practical frameworks for evaluating long-term costs in Phoenix applications and OTP systems.</description><pubDate>Wed, 22 Oct 2025 00:00:00 GMT</pubDate></item><item><title>What Are We Afraid Of?</title><link>https://grox.io/blog/03-what-are-we-afraid-of/</link><guid isPermaLink="true">https://grox.io/blog/03-what-are-we-afraid-of/</guid><description>Discover how one simple question transforms Elixir development teams by creating psychological safety, enabling better collaboration, and preventing costly technical mistakes.</description><pubDate>Wed, 08 Oct 2025 00:00:00 GMT</pubDate></item><item><title>How Will We Know It Works?</title><link>https://grox.io/blog/02-how-will-we-know-it-works/</link><guid isPermaLink="true">https://grox.io/blog/02-how-will-we-know-it-works/</guid><description>Learn how asking &apos;How will we know it works?&apos; transforms Elixir development from feature delivery to business impact, with practical observability strategies.</description><pubDate>Wed, 24 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Essential Questions Every Elixir Development Team Should Ask</title><link>https://grox.io/blog/01-james-questions/</link><guid isPermaLink="true">https://grox.io/blog/01-james-questions/</guid><description>Learn the 3 critical questions that transform Elixir development teams from code producers to business problem solvers, based on 20+ years of consulting experience.</description><pubDate>Mon, 01 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Astro Sphere</title><link>https://grox.io/projects/project-1/</link><guid isPermaLink="true">https://grox.io/projects/project-1/</guid><description>Portfolio and blog build with astro.</description><pubDate>Mon, 18 Mar 2024 00:00:00 GMT</pubDate></item></channel></rss>