Aaron Saray

Aaron Saray


Appears in 145 Episodes

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

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

Episode 146 · · 09:59

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

Stop doing math in your config files

Stop doing math in your config files

Episode 145 · · 09:20

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

What could be worse than having no tests?

What could be worse than having no tests?

Episode 144 · · 09:25

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

Why I changed my mind about down migrations

Why I changed my mind about down migrations

Episode 143 · · 16:35

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

Why senior developers feel wrong more often

Why senior developers feel wrong more often

Episode 142 · · 10:23

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

Should you ever hand-format code?

Should you ever hand-format code?

Episode 141 · · 07:43

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

Discussing different ways to model data

Discussing different ways to model data

Episode 140 · · 11:50

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

Read outside tech to expand your horizons

Read outside tech to expand your horizons

Episode 139 · · 09:44

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

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

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

Episode 138 · · 11:53

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

A composable, versioned toolkit for Laravel projects

A composable, versioned toolkit for Laravel projects

Episode 137 · · 13:55

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

Should you use DTOs in Laravel?

Should you use DTOs in Laravel?

Episode 136 · · 10:10

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

Sunsetting a company app without loose ends

Sunsetting a company app without loose ends

Episode 135 · · 13:55

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

When building a UI makes more sense than bloating your seeders

When building a UI makes more sense than bloating your seeders

Episode 134 · · 11:49

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

Blade includes vs components: how we decide

Blade includes vs components: how we decide

Episode 133 · · 15:55

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

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

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

Episode 132 · · 11:02

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

Finding a code-review style that fits your brain

Finding a code-review style that fits your brain

Episode 131 · · 16:20

Joel and Aaron compare two very different ways to tackle pull-requests—reviewing them commit-by-commit or scanning the whole thing at once. They dig into when each approach shines, h...

Never take hostages: give clients control from day one

Never take hostages: give clients control from day one

Episode 130 · · 10:55

Joel and Aaron explain why every project should start in the client’s own GitHub organization—even when the client has never heard of Git. They share scripts, onboarding tips, and wa...

Balancing test coverage without chasing 100 percent

Balancing test coverage without chasing 100 percent

Episode 129 · · 15:41

Joel and Aaron unpack how they use code-coverage numbers as a starting signal rather than a finish line. They discuss realistic thresholds, choosing the right tool for each test laye...

Exploratory coding when requirements are fuzzy

Exploratory coding when requirements are fuzzy

Episode 128 · · 15:19

Joel and Aaron unpack a recent client project where the only spec was “make these two systems talk.” They share how console-level prototypes helped them clarify data mapping, test tr...

Understanding how Stringable works inside Blade views

Understanding how Stringable works inside Blade views

Episode 127 · · 10:58

Joel and Aaron dig into Laravel’s `Stringable` class and uncover how it can silently skip Blade’s automatic HTML escaping. They explain why that’s both a convenient feature and a pot...