Joel Clermont and Aaron Saray

No Compromises

Two seasoned salty programming veterans talk best practices based on years of working with Laravel SaaS teams.

Author

Joel Clermont and Aaron Saray

Category

Technology

Podcast website

show.nocompromises.io

Latest episode

Jul 4, 2026

Where to listen?

Podcasts in the app Replaio Radio Coming soon

Podcasts are coming to the app soon. Install now and be the first to see a whole new take on podcasts

Get it on Google Play Install for free Android 5M+ downloads · 4.8 rating iOS soon

Episodes

Why having a human partner still beats relying on AI alone 04.07.2026

Have you ever been stuck on a problem and instinctively reached out to a real person instead of an AI, and found that was exactly the right call? In the latest episode of the No Compromises podcast, we discuss why human collaboration still matters in a world where AI seems to have all the answers. Aaron shares a late-night hardware crisis that a blog post from a real human solved, something AI nev...

What is really inside the AI tools you blindly install 20.06.2026

When you install a package, you probably skip the source code. But what about the AI skills and CLAUDE.md files you are feeding directly into your agent? In the latest episode of the No Compromises podcast, we discuss whether developers are reading the AI skills they install and why it actually matters. We make the case that unread skills are riskier than unread packages because they quietly shape...

How much logic is too much logic in a PHP enum 06.06.2026

Have you ever added a method to an enum and then wondered if you just turned it into something it was never meant to be? In the latest episode of the No Compromises podcast, we discuss where to draw the line when adding methods and logic to PHP enums. We trace the evolution from magic strings to constants to interfaces, and explain why enums were the missing piece PHP needed all along. We also cov...

Your codebase is not a museum for old code 23.05.2026

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, whe...

Do you actually own the code you ship? 09.05.2026

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 enou...

Do you actually need a multi-tenancy package? 25.04.2026

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 configuratio...

Local and production should match even for Laravel tools 11.04.2026

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 develo...

When weird code needs to explain itself 28.03.2026

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 flic...

Are you testing your app or just the framework? 14.03.2026

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 y...

Being anti-hype does not mean being anti-AI 28.02.2026

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...

Three ways to plan an upgrade when your codebase is a patchwork 14.02.2026

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 th...

Stop doing math in your config files 31.01.2026

Ever feel the urge to write out calculations in your code to make them "self-documenting"? In the latest episode of the No Compromises podcast, we discuss why inline math in configuration values is a habit worth breaking. Aaron argues that if a value never changes, there's no reason to calculate it every time. A well-placed comment can explain how you got the number without the unnecessary overhea...

What could be worse than having no tests? 17.01.2026

Found a cool package on Laravel News? But how do you know if it's actually worth installing? In the latest episode of the No Compromises podcast, we discuss what we look for when evaluating third-party packages before bringing them into a project. Aaron makes the case that what he finds in the tests folder is essentially a deal-breaker: no tests means no trust, but leaving default example tests be...

Why I changed my mind about down migrations 04.01.2026

Have you ever built a strong case for something, only to realize later you were solving the wrong problem? In the latest episode of the No Compromises podcast, we discuss Aaron's surprising reversal on down migrations, a topic we've publicly discussed on this podcast. We walk through the original arguments for writing down migrations and deconstruct each one. (00:00) - The original case for down m...

Why senior developers feel wrong more often 20.12.2025

Ever catch yourself second-guessing decisions you were confident about just months ago? Does that mean you're getting worse at your job? In the latest episode of the No Compromises podcast, we explore why senior developers often feel "wrong" more frequently than they did earlier in their careers. Aaron makes the case that this isn't a sign of declining skill—it's evidence of a richer mental model...

Should you ever hand-format code? 06.12.2025

Ever feel like you're wasting your time tweaking a section of code to get it just right? We have tools for that, don't we?   In the latest episode of the No Compromises podcast, we discuss when to trust auto-formatters and when to nudge code by hand. Aaron makes the case that a few mindful minutes of “prettying up” can unblock harder thinking, without surrendering judgment to tools. We set limits...

Discussing different ways to model data 22.11.2025

It's easy to overcomplicate data modeling, especially when enums, relationships, and future requirements are in play.    In the latest episode of the No Compromises podcast, Joel brings Aaron a real-world technical dilemma: how to model a relationship between two models when types are stored as enums, not models.    We discuss the pros and cons of pivot tables versus JSON columns, the importance o...

Read outside tech to expand your horizons 08.11.2025

It's easy to get so laser-focused on programming and tech, that you close yourself off to other avenues of learning. In the latest episode of the No Compromises podcast, Aaron argues that non-tech reading can sharpen your engineering thinking. We discuss balancing breadth without diluting focus, and how to turn casual reading into active learning with quick capture habits. (00:00) - An example fro...

Rewriting without a map: shipping an MVP from a legacy app 25.10.2025

Multiple times we have encountered the messy reality of rebuilding a decade-old system: stale specs, missing specs, and stakeholders who want "the same… but better." In the latest episode of the No Compromises podcast, we share a lightweight framework for agreeing on an MVP, tagging "post-MVP" ideas, and negotiating trade-offs while still making progress. We walk through practical tactics for para...

A composable, versioned toolkit for Laravel projects 11.10.2025

We join a fair number of projects, and we often help teams bring their project up to our standard. This means bringing a lot of the same small pieces from project to project. In the latest episode of the No Compromises podcast, we rethink our “project standard” repo. Instead of a full Laravel skeleton, we propose a composable library of tool-specific, versioned configs (PHPUnit, Docker, etc.). We...

Should you use DTOs in Laravel? 27.09.2025

DTOs (Data Transfer Objects) aren't mentioned anywhere in the Laravel docs, but some devs use them heavily in their applications, whereas other devs never use them at all. In the latest episode of the No Compromises podcast, we weigh the pros and cons of DTOs in everyday Laravel apps, comparing them to form requests, PHPDoc-typed arrays, and service-layer boundaries, and share one area where DTOs...

Sunsetting a company app without loose ends 13.09.2025

Business change and projects end, but how do you wrap up and sunset an app, especially one you've worked on for years? In the latest episode of the No Compromises podcast, we share a practical checklist for winding down an app when the whole company is closing. From documenting services and dependencies to deciding what data to retain, we cover backups, credentials, and why deleting local copies m...

When building a UI makes more sense than bloating your seeders 30.08.2025

What do you do when you need to create some data but you haven't built out the UI for that data yet? A seeder is a great approach, but is it always the right one? In the latest episode of the No Compromises podcast, we dive into a real project where starting with the most complex feature made test data management painful. Instead of exploding the complexity of our seeders, we built a minimal UI to...

Blade includes vs components: how we decide 16.08.2025

Blade gives you two big levers for keeping views maintainable: @include and Blade components. When should you use one versus the other? Does it matter? In the latest episode of the No Compromises podcast, we lay out a clear heuristic for when to extract markup for organization (includes) versus when to encapsulate and reuse with controlled scope (components). We also touch on scope pitfalls, “pass...

Changing your mind about when() and unless() in Eloquent 02.08.2025

Aaron admits he used to wrap every query in plain old if-statements—until Laravel’s when()/unless() helpers (and arrow functions) won him over. He and Joel compare their journeys, debate readability trade-offs, and share guidelines for deciding which style to use. Along the way they discuss false assumptions, evolving “code grammar,” and how tools such as Rector can automate the switch. (00:00) -...

Listen to the No Compromises podcast in Replaio

Radio and podcasts in one app - free, with no sign-up. Install today and do not miss the launch

Get it on Google Play

Replaio is not a podcast publisher; show names, artwork and audio belong to their authors and are distributed through public RSS feeds.