エピソード

  • Your codebase is not a museum for old code
    2026/05/23

    Have you ever opened a file to make a quick change, only to find dozens of lines of commented-out code making it nearly impossible to understand what's actually running?

    In the latest episode of the No Compromises podcast, we discuss why keeping dead code around is slowing your whole team down.

    We make the case that commented-out or unused code creates real confusion when searching a codebase, whether you are a new developer, a consultant, or even an AI agent trying to understand what is actually in use.

    We also cover why Git is all the safety net you need, how Git bisect can recover deleted code you thought you might need someday, and why the fear of deleting code is almost always unfounded.

    • (00:00) - Why commented-out code slows everyone down
    • (02:03) - How dead code creates false search results
    • (05:10) - Dead code costs you more with AI agents too
    • (05:55) - How Git bisect helps you recover deleted code
    • (10:08) - When commenting out code is actually fine
    • (11:45) - Silly bit

    Join the conversation and share how your team handles dead code in our No Compromises community
    続きを読む 一部表示
    14 分
  • Do you actually own the code you ship?
    2026/05/09

    When a tool hands you a working solution, how much do you really need to understand about why it works?

    In the latest episode of the No Compromises podcast, we discuss whether developers still care about understanding the code they ship, or whether that expectation is becoming a relic of the past.

    We explore why knowing the "why" behind a solution isn't just about curiosity. It's about having enough domain knowledge to ask better questions, push back on bad answers, and ultimately produce better work.

    We also walk through a real code review example involving a tricky Eloquent query, talk through the pressures that pull developers away from digging deeper, and consider what separates a line cook from a chef in how we approach our craft.

    • (00:16) - Are developers losing the habit of asking why
    • (02:16) - How AI changes the copy-paste-and-move-on cycle
    • (05:25) - Learning by accident while reading the manual
    • (06:24) - The Eloquent query neither of us could explain
    • (12:16) - Silly bit

    Join a community of developers who still care about understanding the code they ship.
    続きを読む 一部表示
    15 分
  • Do you actually need a multi-tenancy package?
    2026/04/25

    Ever feel like a project requirement says "we need multi-tenancy," and you're not even sure what that means in your specific context?

    In the latest episode of the No Compromises podcast, we discuss how to evaluate multi-tenancy needs before committing to an architectural approach.

    We break down what multi-tenancy actually means, from separate databases to custom domains and per-tenant configuration, and why the real question isn't which package to use, but whether you need one at all.

    We also explore when hand-rolling a simple solution beats adopting a full package, what legal and compliance requirements can force your hand, and why this is one of those decisions that's genuinely hard to undo later.

    00:00 Defining what multi-tenancy actually means
    02:11 Different ways to structure multi-tenant systems
    03:44 When separate databases are truly necessary
    04:57 Questions to ask before choosing an approach
    08:25 Package vs. rolling your own trade-offs
    11:30 Silly bit

    If you want guidance on decisions like these, check out our code review service to get expert eyes on your architecture.

    続きを読む 一部表示
    14 分
  • Local and production should match even for Laravel tools
    2026/04/11

    Ever installed a Laravel package locally and immediately accessed it, only to wonder later whether your access controls are actually working in production?

    In the latest episode of the No Compromises podcast, we discuss why tools like Telescope and Horizon behave differently in local environments versus production, and why that inconsistency is a problem worth solving.

    We make the case that developer convenience should never come at the cost of security confidence. If your gate logic cannot be exercised locally, you cannot truly trust it is protecting your production environment.

    We also dig into how Aaron worked around the issue by overriding the package's service provider logic, and why Laravel has since made this easier to handle cleanly.

    • (00:00) - Why local and production environments should match
    • (01:42) - How Telescope's gate logic behaves differently locally
    • (03:01) - The risk of untestable access control logic
    • (07:53) - How Aaron overrode the service provider to fix it
    • (10:23) - Silly bit

    (00:00) Why local and production environments should match
    (01:42) How Telescope's gate logic behaves differently locally
    (03:01) The risk of untestable access control logic
    (07:53) How Aaron overrode the service provider to fix it
    (10:23) Silly bit

    Our courses took the production hits so your app doesn't have to.

    続きを読む 一部表示
    13 分
  • When weird code needs to explain itself
    2026/03/28

    Have you ever looked at a colleague's code and thought, "This is clearly wrong," only to find out it was actually a well-reasoned workaround for a tricky bug?

    In the latest episode of the No Compromises podcast, we discuss what happened when Aaron reviewed Joel's code and couldn't make sense of a pattern spread across multiple Livewire components.

    The code wasn't bad, it was solving a real UX flicker bug in an older version of Mary UI. But without context, it looked like a mistake and nearly got rejected. The fix wasn't just refactoring; it was giving the workaround a proper home: a trait with a descriptive name, clear method names, and thorough documentation explaining the bug, the reason for the pattern, and when it can eventually be removed.

    We also talk about why "the explanation is in the PR note" isn't good enough, how AI coding agents can unknowingly propagate patterns they don't understand, and why strange code deserves to look strange, on purpose.

    Explore Mastering Laravel resources to deepen your understanding of patterns like these.

    00:00 The confusing code review that started this
    01:15 Flagging the unclear pattern across components
    03:54 The Mary UI toast flicker bug explained
    05:45 Naming, documentation, and protecting the whole team
    09:30 Silly bit

    続きを読む 一部表示
    11 分
  • Are you testing your app or just the framework?
    2026/03/14

    Do you ever finish writing a test and wonder if it is actually proving anything about your code or just confirming that Laravel works?

    In the latest episode of the No Compromises podcast, we discuss how to tell the difference between tests that validate your logic and tests that merely exercise the framework.

    We share a practical gut check: if you cannot make a test fail by changing something in your own application code, it probably should not be in your test suite. We also look at this idea from the other direction, asking whether the code being tested is something we actually wrote.

    We also dig into why testing validation rules is worth the effort even when they feel boilerplate, how feature versus unit test style shapes these decisions, and why the real goal is simply getting to a place where your tests help you ask the right questions.

    Join the Mastering Laravel community at https://masteringlaravel.io/community

    00:00 Are we testing code or framework
    02:00 Joel metric for framework-only tests
    05:15 Bottom-up testing perspective by test type
    07:36 Why validation rules still deserve tests
    10:40 Silly bit

    続きを読む 一部表示
    13 分
  • Being anti-hype does not mean being anti-AI
    2026/02/28

    Does everyone need to have an AI hot take right now, or is there value in waiting until you actually know what you're talking about?


    In the latest episode of the No Compromises podcast, we discuss why it took us 147 episodes to finally tackle the topic of AI.


    We dig into the tension between wanting to speak with authority and feeling pressure to share before you're ready. Aaron makes the case for building deep knowledge first, while acknowledging that people at every stage of the learning curve play an important role in moving the community forward.


    We also talk about how fast the AI landscape is shifting, why zooming out matters more than memorizing details, and why being a slower mover isn't something to apologize for.

    • (00:00) - Why we haven't talked about AI yet
    • (01:00) - Building deep knowledge before sharing opinions
    • (02:30) - AI moves faster than JavaScript frameworks
    • (04:30) - Zoom out before sweating the details
    • (06:15) - Every stage of the learning cycle matters
    • (07:45) - Silly bit

    Want to get that new AI tip we mentioned? Sign up for the Mastering Laravel newsletter.
    続きを読む 一部表示
    10 分
  • Three ways to plan an upgrade when your codebase is a patchwork
    2026/02/14

    When your project has the same thing done three different ways, how do you bring everything up to date with a consistent approach?

    In the latest episode of the No Compromises podcast, we discuss different strategies for tackling upgrades when parts of your codebase are multiple versions behind.

    We walk through two main approaches and weigh the tradeoffs for both the developer doing the work and the person reviewing it.

    • (00:00) - Setting up the upgrade scenario
    • (02:15) - Approach one: upgrade each area to current
    • (04:00) - Why the reviewer's experience matters too
    • (07:30) - A third approach neither one expected
    • (09:00) - Silly bit

    Want help upgrading your Laravel project?
    続きを読む 一部表示
    10 分