41554 blogs · [ { "id": "01a08725-7ecc-708e-b729-6fedd5d41393", "title": "Dopamine, Debugging, and the Dopamine-Loss of AI-Assisted Coding", "url": "https://allanmacgregor.com/posts/how-ai-assisted-coding-changes-the-feedback-loop", "published_at": "2026-09-02T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44743e102ce5", "title": "Ten Years Later: Rebuilding My 2016 Neural Network in Nx and Axon", "url": "https://allanmacgregor.com/posts/rebuilding-2016-neural-network-nx-axon", "published_at": "2026-09-02T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44743eccccee", "title": "Rules of Engagement for Black-Box Product Audits", "url": "https://allanmacgregor.com/posts/rules-of-engagement-auditing-ai-built-products", "published_at": "2026-09-02T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44743f19c79e", "title": "Vibecode Rescue: Auditing Vibecoded Apps for Common Mistakes and Failures", "url": "https://allanmacgregor.com/posts/vibecode-rescue-auditing-vibecoded-apps", "published_at": "2026-08-04T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44743f7635cd", "title": "'No X, but Y' and Other Tells: Wiring an LLM to Write in Your Voice", "url": "https://allanmacgregor.com/posts/make-an-llm-write-in-your-voice", "published_at": "2026-08-01T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-4474405b3135", "title": "The Stability Tax: Why Elixir's Boring Versioning Is a Better AI Target", "url": "https://allanmacgregor.com/posts/the-stability-tax-elixir-versioning-ai", "published_at": "2026-07-13T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447440e6b9d8", "title": "Embedding Python in Elixir with Pythonx", "url": "https://allanmacgregor.com/posts/embedding-python-in-elixir-with-pythonx", "published_at": "2026-06-24T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447441c6d689", "title": "Reading the Supervision Tree Contract, Key by Key", "url": "https://allanmacgregor.com/posts/otp-supervision-trees-child-specs-and-strategies", "published_at": "2026-06-19T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-4474426658cf", "title": "Deploying Elixir with Kamal 2", "url": "https://allanmacgregor.com/posts/deploying-elixir-with-kamal", "published_at": "2026-06-12T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744268b49e", "title": "Optimizing Claude Code Workflows for Token Usage", "url": "https://allanmacgregor.com/posts/claude-code-workflow-token-optimization", "published_at": "2026-06-05T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447442c87ccb", "title": "Observability for Elixir Applications", "url": "https://allanmacgregor.com/posts/observability-for-elixir-applications", "published_at": "2026-05-15T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-4474433ec7df", "title": "Phoenix Contexts Done Right", "url": "https://allanmacgregor.com/posts/phoenix-contexts-done-right", "published_at": "2026-05-08T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447443d92790", "title": "LiveView Patterns for Complex UIs", "url": "https://allanmacgregor.com/posts/liveview-patterns-for-complex-uis", "published_at": "2026-05-01T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-4474445ab88c", "title": "The Ash Framework: A Practical Introduction", "url": "https://allanmacgregor.com/posts/the-ash-framework-a-practical-introduction", "published_at": "2026-04-24T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447445039ff7", "title": "Zero Trust Authentication in Phoenix", "url": "https://allanmacgregor.com/posts/zero-trust-authentication-in-phoenix", "published_at": "2026-04-24T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447445cd6710", "title": "Property-Based Testing with StreamData", "url": "https://allanmacgregor.com/posts/property-based-testing-with-streamdata", "published_at": "2026-04-17T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447446299e1c", "title": "Distributed Elixir: Beyond the Basics", "url": "https://allanmacgregor.com/posts/distributed-elixir-beyond-the-basics", "published_at": "2026-04-03T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447447209b11", "title": "Writing Elixir for AI Agents: Patterns That Help (and Hurt)", "url": "https://allanmacgregor.com/posts/writing-elixir-for-ai-agents", "published_at": "2026-03-27T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-4474473f1197", "title": "Why AI Coding Agents Love Elixir (And You Should Too)", "url": "https://allanmacgregor.com/posts/why-ai-coding-agents-love-elixir", "published_at": "2026-03-20T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447447f76ab6", "title": "Elixir and AI: Building LLM-Powered Features", "url": "https://allanmacgregor.com/posts/elixir-and-ai-building-llm-powered-features", "published_at": "2026-03-13T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447448062f0e", "title": "The AI-Native Elixir Project: What Changes When the Agent is Your Pair", "url": "https://allanmacgregor.com/posts/the-ai-native-elixir-project", "published_at": "2026-03-06T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447448844c32", "title": "Testing LiveView Components in Isolation", "url": "https://allanmacgregor.com/posts/testing-liveview-components-in-isolation", "published_at": "2026-02-27T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447448871e11", "title": "Building Real-Time Dashboards with LiveView", "url": "https://allanmacgregor.com/posts/building-real-time-dashboards-with-liveview", "published_at": "2026-02-26T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-4474488984f8", "title": "Debugging Production Elixir with Observer and Recon", "url": "https://allanmacgregor.com/posts/debugging-production-elixir-with-observer-and-recon", "published_at": "2026-02-25T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-4474497e5cc9", "title": "Building APIs with Absinthe GraphQL", "url": "https://allanmacgregor.com/posts/building-apis-with-absinthe-graphql", "published_at": "2026-02-24T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447449ab6e14", "title": "Event Sourcing with Elixir", "url": "https://allanmacgregor.com/posts/event-sourcing-with-elixir", "published_at": "2026-02-23T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447449d51eb0", "title": "Elixir Fundamentals - Introduction to Elixir: Syntax, Basic Constructs", "url": "https://allanmacgregor.com/posts/elixir-fundamentals-introduction-to-elixir-syntax-basic-constructs", "published_at": "2026-02-21T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744a449d54", "title": "Using Elixir Meta Programming To Write Expressive And Flexible Code", "url": "https://allanmacgregor.com/posts/using-elixir-meta-programming-to-write-expressive-and-flexible-code", "published_at": "2026-02-14T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744a9d514f", "title": "Building Resilient Systems with OTP Supervisors", "url": "https://allanmacgregor.com/posts/building-resilient-systems-with-otp-supervisors", "published_at": "2026-02-10T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744b627fe3", "title": "Advanced Ecto Queries: Window Functions and CTEs", "url": "https://allanmacgregor.com/posts/advanced-ecto-queries-window-functions-and-ctes", "published_at": "2026-02-09T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744b714f70", "title": "Setting Up Tidewave: BEAM Introspection for Agentic Workflows", "url": "https://allanmacgregor.com/posts/setting-up-tidewave-beam-introspection", "published_at": "2026-02-09T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744ba162a8", "title": "Using Elixir Nif To Integrate With Rust", "url": "https://allanmacgregor.com/posts/using-elixir-nif-to-integrate-with-rust", "published_at": "2026-02-09T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744bd1b2e6", "title": "GenServer Patterns You Should Know", "url": "https://allanmacgregor.com/posts/genserver-patterns-you-should-know", "published_at": "2026-02-08T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744c72f858", "title": "Multi-Tenancy Patterns in Ecto", "url": "https://allanmacgregor.com/posts/multi-tenancy-patterns-in-ecto", "published_at": "2026-02-08T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744cafc11f", "title": "Understanding BEAM Memory Management", "url": "https://allanmacgregor.com/posts/understanding-beam-memory-management", "published_at": "2026-02-08T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744d869537", "title": "Flow Based Programming With Elixir", "url": "https://allanmacgregor.com/posts/flow-based-programming-with-elixir", "published_at": "2026-02-07T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744dd9f3ca", "title": "N 1 Issues With Ecto And Elixir", "url": "https://allanmacgregor.com/posts/n-1-issues-with-ecto-and-elixir", "published_at": "2026-02-05T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744e54ae88", "title": "Simple versioning for your Elixir project", "url": "https://allanmacgregor.com/posts/simple_versioning_for_your_elixir_project", "published_at": "2025-12-11T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744e7af9fd", "title": "Founder Mode is Bulls**t", "url": "https://allanmacgregor.com/posts/founder_mode_is_bullshit", "published_at": "2025-08-08T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744f4c0ed2", "title": "Elixir for Fintech: Why It’s the Best Choice for Modern Financial Apps", "url": "https://allanmacgregor.com/posts/from_transactions_to_trust_why_elixir_is_the_future_of_fintech", "published_at": "2024-12-28T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744f4f21fb", "title": "Mastering Elixir in 2024: A study path", "url": "https://allanmacgregor.com/posts/mastering-elixir-in-2024-a-study-path", "published_at": "2024-01-10T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744faabf4a", "title": "Getting Started With Backstage.io", "url": "https://allanmacgregor.com/posts/getting-started-with-backstageio", "published_at": "2023-07-28T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44744fe28cc2", "title": "Creating A Project Generator Template For Phoenix", "url": "https://allanmacgregor.com/posts/creating-a-project-generator-template-for-phoenix", "published_at": "2022-09-10T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-4474506a6724", "title": "Blog Update 2022/2023", "url": "https://allanmacgregor.com/posts/blog-update-2022-2023", "published_at": "2022-08-24T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447450d635b2", "title": "Using Abbreviations instead of Aliases", "url": "https://allanmacgregor.com/posts/using-abbreviations-instead-of-aliases", "published_at": "2020-11-08T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447451d5bb13", "title": "Circuit Breaker Pattern in Elixir", "url": "https://allanmacgregor.com/posts/circuit-breaker-pattern-in-elixir", "published_at": "2020-11-02T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-4474526b5d5e", "title": "5 Reasons to love Elixir", "url": "https://allanmacgregor.com/posts/5-reasons-to-love-elixir", "published_at": "2020-11-01T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447452ff2715", "title": "Exploring Headless Commerce", "url": "https://allanmacgregor.com/posts/exploring-headless-commerce", "published_at": "2020-11-01T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-4474532c8374", "title": "The Thing Most Developers Get Wrong On Interviews", "url": "https://allanmacgregor.com/posts/the-thing-most-developers-get-wrong-on-interviews", "published_at": "2020-04-13T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-4474535308ea", "title": "WTF is Flow-Based Programming", "url": "https://allanmacgregor.com/posts/wtf-is-flow-based-programming", "published_at": "2019-10-20T04:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-447453be0c7d", "title": "Ethereum Zero to Hero: Developing Our First Contract", "url": "https://allanmacgregor.com/posts/ethereum-zero-to-hero-developing-our-first-contract", "published_at": "2017-12-24T05:00:00+00:00" }, { "id": "01a08725-7ecd-726b-a999-44745471ba8d", "title": "Ethereum Zero to Hero: Introduction", "url": "https://allanmacgregor.com/posts/ethereum-zero-to-hero-introduction", "published_at": "2017-12-24T05:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fb9f35899e", "title": "Ethereum Zero to Hero: Setting a Development Environment", "url": "https://allanmacgregor.com/posts/ethereum-zero-to-hero-setting-a-development-environment", "published_at": "2017-12-24T05:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fb9faf441b", "title": "5 Trends To Watch Out On 2018", "url": "https://allanmacgregor.com/posts/5-trends-to-watchout-in-2018", "published_at": "2017-12-18T05:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba0658a97", "title": "You Should Learn Functional Programming in 2017", "url": "https://allanmacgregor.com/posts/you-should-learn-functional-programming-in-2017", "published_at": "2017-04-23T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba1100569", "title": "Neural Networks Without a PhD: Topologies", "url": "https://allanmacgregor.com/posts/neural-networks-without-a-phd-part3", "published_at": "2017-04-16T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba1a49462", "title": "Vim Is The Perfect IDE", "url": "https://allanmacgregor.com/posts/vim-the-perfect-ide", "published_at": "2017-04-16T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba26dfe78", "title": "Neural Networks Without a PhD: Introduction", "url": "https://allanmacgregor.com/posts/neural-networks-without-a-phd-part1", "published_at": "2017-03-26T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba35f34d0", "title": "Neural Networks Without a PhD: Components of a Neural Network", "url": "https://allanmacgregor.com/posts/neural-networks-without-a-phd-part2", "published_at": "2017-03-26T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba360d806", "title": "Machine Learning: A Simple Neural Network", "url": "https://allanmacgregor.com/posts/machine-learning-a-simple-neural-network", "published_at": "2016-06-06T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba3e5f960", "title": "Functional Programming: The Paradigm for the Next Generation", "url": "https://allanmacgregor.com/posts/functional-programming-the-paradigm-for-the-next-generation", "published_at": "2016-05-02T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba3ec6d64", "title": "On Codes on Conduct", "url": "https://allanmacgregor.com/posts/on-codes-on-conduct", "published_at": "2016-01-24T05:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba4352f9f", "title": "Exploring Elixir Recursion and Lists", "url": "https://allanmacgregor.com/posts/exploring-elixir-recursion-and-lists", "published_at": "2016-01-17T05:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba463df8f", "title": "2016 the Year of Quantified Self", "url": "https://allanmacgregor.com/posts/2016-the-year-of-quantified-self", "published_at": "2016-01-03T05:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba49906fc", "title": "TDD is not Dead", "url": "https://allanmacgregor.com/posts/tdd-is-not-dead", "published_at": "2015-09-03T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba58247d2", "title": "Manfred Macx and the Problem of Information Overload", "url": "https://allanmacgregor.com/posts/manfred-macx-and-the-problem-of-information-overload", "published_at": "2015-07-17T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba6331eac", "title": "On Encrypting Magento Extensions", "url": "https://allanmacgregor.com/posts/on-encrypting-magento-extensions", "published_at": "2015-07-09T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba722d5ce", "title": "Git Tips and Tricks", "url": "https://allanmacgregor.com/posts/git-tips-and-tricks", "published_at": "2015-04-04T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba7eec277", "title": "Getting Started With Magento and Docker for Development", "url": "https://allanmacgregor.com/posts/getting-started-with-magento-and-docker", "published_at": "2015-03-05T05:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba87c6d20", "title": "Design Patterns in PHP: Adapters", "url": "https://allanmacgregor.com/posts/design-patterns-in-php-adapters", "published_at": "2015-01-25T05:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba9056680", "title": "WTF are: Service Contracts (Magento 2 Edition)", "url": "https://allanmacgregor.com/posts/wtf-are-service-contracts", "published_at": "2015-01-12T05:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba90656e5", "title": "The Async Software Development Manifesto Revised", "url": "https://allanmacgregor.com/posts/async-office", "published_at": "2014-09-29T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fba938e66a", "title": "Exploring Hack: Building a MicroFramework", "url": "https://allanmacgregor.com/posts/exploring-hack-part1", "published_at": "2014-08-06T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fbaa2dc999", "title": "Swiss Army Knife Syndrome", "url": "https://allanmacgregor.com/posts/swiss-knife-syndrome", "published_at": "2014-05-20T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fbaa2dd577", "title": "Flexible PHP Development with PHPFarm", "url": "https://allanmacgregor.com/posts/flexible-php-development-phpfarm", "published_at": "2014-04-18T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fbaa42f857", "title": "Is HHVM/Hack the new face of PHP?", "url": "https://allanmacgregor.com/posts/hhvm-hack-new-php", "published_at": "2014-04-08T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fbab130f5c", "title": "Working with Psysh", "url": "https://allanmacgregor.com/posts/working-with-psysh", "published_at": "2014-04-03T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fbabfc03c1", "title": "Hello Hack", "url": "https://allanmacgregor.com/posts/hello-hack", "published_at": "2014-03-23T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fbac275b6b", "title": "HHVM In The Wild", "url": "https://allanmacgregor.com/posts/hhvm-in-the-wild", "published_at": "2014-03-22T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fbad16194f", "title": "Exploring Traits", "url": "https://allanmacgregor.com/posts/exploring-traits", "published_at": "2014-03-17T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fbad9034f1", "title": "Laravel Learning Resources", "url": "https://allanmacgregor.com/posts/laravel-learning-resources", "published_at": "2014-03-15T04:00:00+00:00" }, { "id": "01a08725-7ece-705f-8d27-b4fbae6753d6", "title": "Boris The Missing PHP REPL", "url": "https://allanmacgregor.com/posts/boris-php-repl", "published_at": "2014-03-13T04:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e3ba85cfd", "title": "Magento Online Hackathon 2014", "url": "https://allanmacgregor.com/posts/magento-hackathon-2014", "published_at": "2014-03-08T05:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e3bb99b49", "title": "Magento and HHVM", "url": "https://allanmacgregor.com/posts/magento-hhvm", "published_at": "2014-02-17T05:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e3bce6c17", "title": "Design Patterns in PHP: Singletons", "url": "https://allanmacgregor.com/posts/design-patterns-php-singletons", "published_at": "2014-01-27T05:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e3c424c1c", "title": "Design Patterns in PHP: Using Factories", "url": "https://allanmacgregor.com/posts/design-patterns-php-factories", "published_at": "2014-01-19T05:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e3d09ddf2", "title": "Playing with dependency injection in PHP", "url": "https://allanmacgregor.com/posts/dependency-injection-php", "published_at": "2014-01-06T05:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e3d3014e0", "title": "Technical Debt", "url": "https://allanmacgregor.com/posts/technical-debt", "published_at": "2013-11-04T05:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e3dca7aa1", "title": "We are consuming data the wrong way", "url": "https://allanmacgregor.com/posts/making-the-web-smarter", "published_at": "2013-10-28T04:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e3e17a56c", "title": "Stop Disrupting Everything", "url": "https://allanmacgregor.com/posts/stop-disrupting-everything", "published_at": "2013-09-14T04:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e3e1bd291", "title": "5 Rules for Writing Great Commits", "url": "https://allanmacgregor.com/posts/making-good-commits", "published_at": "2013-09-05T04:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e3e72de9f", "title": "Fitbit Flex and the Quantified Self Movement", "url": "https://allanmacgregor.com/posts/fitbit-flex", "published_at": "2013-08-29T04:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e3ed342da", "title": "Burnout", "url": "https://allanmacgregor.com/posts/fighting-burnout", "published_at": "2013-08-02T04:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e3f6ca65c", "title": "Week 1: 500 Words a day", "url": "https://allanmacgregor.com/posts/500-a-day-week1", "published_at": "2013-07-30T04:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e40402f79", "title": "First steps on HHVM", "url": "https://allanmacgregor.com/posts/first-steps-on-hhvm", "published_at": "2013-07-27T04:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e407c5ab5", "title": "An Introduction to HHVM", "url": "https://allanmacgregor.com/posts/introduction-hhvm", "published_at": "2013-07-24T04:00:00+00:00" }, { "id": "01a08725-7ecf-727a-94e9-0a2e410323b9", "title": "More than human", "url": "https://allanmacgregor.com/posts/more-than-human", "published_at": "2013-07-21T04:00:00+00:00" } ] posts Claim your blog
Back to allanmacgregor.com
Blog · corpus.blog/blogs/allanmacgregor.com/posts

allanmacgregor.com

allanmacgregor.com

2026

2025

2024

2023

2022

2020

2019

2017

2016

2015

2014

2013