41554 blogs · [ { "id": "01a08789-7e63-70d2-bf78-aac1637aa285", "title": "Leading By Example", "url": "https://www.jackmarchant.com/leading-by-example", "published_at": "2026-06-03T09:48:44+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf76189f30", "title": "Agentic coding habits to accelerate your engineering workflow", "url": "https://www.jackmarchant.com/agentic-coding-habits-to-accelerate-your-engineering-workflow", "published_at": "2026-04-19T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf764fbf1d", "title": "Will AI replace software engineers?", "url": "https://www.jackmarchant.com/will-ai-replace-software-engineers", "published_at": "2026-04-08T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf76ba56fa", "title": "engineering the loop", "url": "https://www.jackmarchant.com/engineering-the-loop", "published_at": "2026-03-16T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf771809c0", "title": "Using coding agents in my workflow in 2025", "url": "https://www.jackmarchant.com/using-coding-agents-in-my-workflow-in-2025", "published_at": "2025-12-05T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf773c65d6", "title": "Beyond Autocomplete: A practical guide to AI-Assisted Development", "url": "https://www.jackmarchant.com/beyond-autocomplete-a-practical-guide-to-ai-assisted-development", "published_at": "2025-09-19T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf77ad8a33", "title": "How does a relational database index really work?", "url": "https://www.jackmarchant.com/how-does-a-relational-database-index-really-work", "published_at": "2024-02-29T06:22:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7898057b", "title": "Refactoring for Performance", "url": "https://www.jackmarchant.com/refactoring-for-performance", "published_at": "2024-02-12T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf791506f5", "title": "Exploring Async PHP", "url": "https://www.jackmarchant.com/exploring-async-php", "published_at": "2023-05-31T18:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf799ad576", "title": "Maintaining feature flags in a product engineering team", "url": "https://www.jackmarchant.com/maintaining-feature-flags-in-a-product-engineering-team", "published_at": "2022-04-01T18:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf79a154f3", "title": "What I've learned doing technical interviews", "url": "https://www.jackmarchant.com/technical-interviewing", "published_at": "2022-03-18T18:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7a7737b5", "title": "Using a Dependency Injection (DI) Container to decouple your code", "url": "https://www.jackmarchant.com/using-a-dependency-injection-container-to-decouple-code", "published_at": "2020-06-03T00:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7a7e1b6c", "title": "3 simple tips to get better at working from home", "url": "https://www.jackmarchant.com/3-tips-to-help-with-working-from-home", "published_at": "2020-04-17T18:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7aafa802", "title": "Making Software - a three step process", "url": "https://www.jackmarchant.com/making-software-a-three-step-process", "published_at": "2020-04-14T08:22:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7ab550af", "title": "Help me, help you - Code Review", "url": "https://www.jackmarchant.com/help-me-help-you-code-review", "published_at": "2019-10-24T12:18:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7ba6a433", "title": "A practical guide to Test Driven Development", "url": "https://www.jackmarchant.com/a-pratical-guide-to-test-driven-development", "published_at": "2019-09-12T12:18:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7be73122", "title": "The Facade Pattern", "url": "https://www.jackmarchant.com/facade-pattern", "published_at": "2019-07-05T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7c4d0cec", "title": "The problem with Elixir Umbrella Apps", "url": "https://www.jackmarchant.com/the-problem-with-elixir-umbrella-apps", "published_at": "2019-05-03T18:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7caefa29", "title": "Building Software with Broken Windows", "url": "https://www.jackmarchant.com/broken-windows", "published_at": "2019-04-14T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7d08d7c7", "title": "Lonestar ElixirConf 2019 Highlights", "url": "https://www.jackmarchant.com/lonestar-elixir-2019", "published_at": "2019-03-04T08:22:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7d806e21", "title": "Using a GenServer to handle asynchronous and concurrent tasks", "url": "https://www.jackmarchant.com/genserver-async-concurrent-tasks", "published_at": "2019-02-01T18:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7dc70f7f", "title": "Best practices for integrating with third-party libraries in Elixir", "url": "https://www.jackmarchant.com/best-practices-third-party-integrations", "published_at": "2018-12-19T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7e3c0f5c", "title": "You might not need a GenServer", "url": "https://www.jackmarchant.com/you-might-not-need-a-genserver", "published_at": "2018-11-20T18:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7eb103f4", "title": "Offset and Cursor Pagination explained", "url": "https://www.jackmarchant.com/offset-cursor-pagination", "published_at": "2018-10-30T08:22:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7f7a11ae", "title": "Using Protocols to decouple implementation details", "url": "https://www.jackmarchant.com/protocols", "published_at": "2018-09-26T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf7fd76f69", "title": "Add Docker to Elixir/Phoenix projects in one command", "url": "https://www.jackmarchant.com/exdocker", "published_at": "2018-08-23T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf80beda20", "title": "Working with Tasks", "url": "https://www.jackmarchant.com/working-with-tasks", "published_at": "2018-07-26T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf814f2eee", "title": "Understanding concurrency in Elixir", "url": "https://www.jackmarchant.com/understanding-concurrency", "published_at": "2018-07-14T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf8161b3f7", "title": "Composing Ecto Queries", "url": "https://www.jackmarchant.com/composing-ecto-queries", "published_at": "2018-07-06T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf8212da17", "title": "Streaming large datasets in Elixir", "url": "https://www.jackmarchant.com/streaming-datasets", "published_at": "2018-06-27T21:34:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf827b36dd", "title": "A Queue is just a Q with 4 silent letters", "url": "https://www.jackmarchant.com/elixir-queues", "published_at": "2018-06-06T09:20:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf82a8ec9f", "title": "Composing Elixir Plugs in a Phoenix application", "url": "https://www.jackmarchant.com/composing-plugs", "published_at": "2018-03-23T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf838515c6", "title": "A Comparison of Elixir Supervision Trees and React Component Trees", "url": "https://www.jackmarchant.com/elixir-supervision-trees", "published_at": "2018-02-06T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf83e8da53", "title": "Surviving technical debt in the real world", "url": "https://www.jackmarchant.com/surviving-tech-debt", "published_at": "2017-12-21T12:18:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf848c6ed7", "title": "Elixir Pattern Matching in a nutshell", "url": "https://www.jackmarchant.com/pattern-matching-elixir", "published_at": "2017-08-15T20:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf858288bc", "title": "First Impressions of Elixir", "url": "https://www.jackmarchant.com/first-impressions-elixir", "published_at": "2017-01-06T09:00:00+00:00" }, { "id": "01a08789-7e64-7268-9b2c-eacf85d15939", "title": "No excuses, write unit tests", "url": "https://www.jackmarchant.com/write-unit-tests", "published_at": "2016-11-29T12:22:00+00:00" } ] posts Claim your blog
Back to jackmarchant.com
Blog · corpus.blog/blogs/jackmarchant.com/posts

jackmarchant.com

jackmarchant.com

2026

2025

2024

2023

2022

2020

2019

2018

2017

2016