Find partners
No Compromises

No Compromises

Hosted by Joel Clermont and Aaron Saray

Episodes

159

Latest episode

Aug 2026

Language

EN

About the show

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

Listen to episodes

60 recent
August 15, 2026Episode 15911 min

Which layer of caching does your slow app actually need?

When someone says your app is slow and you need caching, do you actually know which layer of caching they are talking about? In the latest episode of the No Compromises podcast, we discuss the many different forms caching takes in a Laravel application and why reaching for the cache facade is not always the answer. We walk through caching from the outside in, starting with edge caching via Cloudflare, moving into Laravel's cache facade for third-party API calls, and all the way down to memoization with the Once helper for expensive in-request calculations. We also make the case that storing data in a database table can be a perfectly valid caching strategy, and that the right question to ask is not whether to cache but what kind of caching actually fits the problem. (00:17) - Why caching means different things to different people (02:04) - Edge caching with Cloudflare explained (05:33) - When a database table beats the cache facade (07:45) - Memoization with the Laravel Once helper (09:19) - Silly bit We have seen every caching mistake in the book. Our code review will find yours. Get practical Laravel tips like these delivered to your inbox every day by subscribing to our newsletter .

August 1, 2026Episode 1589 min

Where do credentials end and configuration begin in your env file?

Have you ever fixed a failing test by adding a variable to phpunit.xml and moved on, not thinking twice about whether that was actually the right call? In the latest episode of the No Compromises podcast, we discuss a real pull request disagreement about where environment variables belong and why it actually matters. We draw an important distinction between credentials and workflow configuration in your env file, and why that difference should determine exactly what goes into phpunit.xml and what stays out. We also get into why zeroing out API keys and hostnames in your test environment is not optional, and how a small oversight in one PR can quietly expose your tests to real third-party services. (00:00) - A real PR disagreement about phpunit.xml (01:07) - Credentials vs workflow config in your env file (03:17) - Why Aaron is glad his tests failed (04:49) - How to properly isolate third-party test keys (07:25) - Silly bit Come talk through decisions like these with developers who care in the No Compromises community .

July 18, 2026Episode 15715 min

Running AI agents on your production server is the new FTP

Have you ever let an AI agent run commands on your production server because you were stuck, telling yourself it would be fine? In the latest episode of the No Compromises podcast, we discuss why giving AI agents access to your production environment is as reckless as the bad old days of FTPing code straight to your server. We make the case that AI agents are non-deterministic and carry no responsibility, which makes them far more dangerous than a developer making a manual mistake on a live server. We also cover why you should never blindly run complex chained commands that an agent suggests, how to verify what your agent is actually doing, and why a little friction in your workflow is worth the safety it buys you. (00:00) - FTPing to production is still wrong in 2026 (01:50) - Running Tinker on production is no better (02:28) - AI agents on production servers is even worse (07:11) - How to verify what your agent is actually doing (move from 07:00) (11:03) - Silly bit Stop letting non-deterministic tools make deterministic mistakes in your codebase. Get a code review . Subscribe to our newsletter and get practical Laravel tips delivered to your inbox every day.

July 4, 2026Episode 15613 min

Why having a human partner still beats relying on AI alone

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 never surfaced, and connects it to a bigger point about the value of having a trusted person to work through problems with in real time. We also get into why video calls beat text, why knowledge sharing still matters even when AI seems to know everything, and why pushing back on a partner often leads to better code than just agreeing. (00:00) - A thunderstorm almost killed the podcast (02:58) - Why Aaron called Joel instead of AI (06:16) - The value of a real human work partner (08:01) - Why video calls change everything (09:15) - Human knowledge sharing still beats AI (11:47) - Silly bit Come find your people in the No Compromises community .

June 20, 2026Episode 15513 min

What is really inside the AI tools you blindly install

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 your agent thinks and can introduce security vulnerabilities or opinions you would never have agreed to if you had just taken 10 minutes to read them. We also look at the flip side, where reading those skills can make you a better developer, expose you to approaches you did not know existed, and help you guide your agents more intentionally across every project. (00:00) - Do developers actually read package source code (02:19) - Why AI skills are riskier than packages (05:07) - Security risks hiding in unread skill files (09:30) - Reading skills as a learning opportunity (11:49) - Silly bit Want a second set of eyes on the tools and packages your team is trusting? Find out how our code review service can help

June 6, 2026Episode 15413 min

How much logic is too much logic in a PHP enum

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 cover when label methods and data structure helpers belong on an enum, why Eloquent queries cross a line, and how to avoid turning a simple enum into a bloated helper class. (00:00) - Why magic strings and constants fall short (01:43) - How PHP enums replaced interface constants (02:26) - What methods belong on an enum (06:58) - The rule for keeping enum methods focused (10:44) - Silly bit Join developers who think carefully about clean code decisions in the No Compromises community .

May 23, 2026Episode 15313 min

Your codebase is not a museum for old code

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

May 9, 2026Episode 15214 min

Do you actually own the code you ship?

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.

April 25, 2026Episode 15114 min

Do you actually need a multi-tenancy package?

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.

April 11, 2026Episode 15013 min

Local and production should match even for Laravel tools

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.

Is this your show?

Claim this listing to keep it up to date, reach guests who want to pitch you, and manage bookings with Guestify.

Claim this listing

More Technology podcasts