Joel Clermont

Joel Clermont


Appears in 147 Episodes

Examining test layering in multi-tenant requests

Examining test layering in multi-tenant requests

Episode 118 · · 13:32

Joel and Aaron debate how to structure multi-tenant API requests and tests. They explore the interplay between authentication, tenant headers, and different levels of validation. In ...

When to step outside of Eloquent's comfort zone

When to step outside of Eloquent's comfort zone

Episode 117 · · 12:28

Joel and Aaron explore the nuances of when to venture beyond Eloquent in Laravel applications. They discuss specific scenarios where using lower-level database tools might be necessa...

Feature flags: Temporary tool or permanent solution?

Feature flags: Temporary tool or permanent solution?

Episode 116 · · 10:13

Joel and Aaron dive into a friendly debate about the true nature of feature flags in software development. Drawing from their varied experiences across different programming language...

Deciding when to use a new piece of technology

Deciding when to use a new piece of technology

Episode 115 · · 14:26

Ooh, something new was just announced. And I have this project coming up. It could be perfect! But should I use it?On today's episode of No Compromises, Aaron and Joel share a conver...

Taking liberties with value objects

Taking liberties with value objects

Episode 114 · · 12:23

Programmers love geeking out and creating specialized terms and vocabulary. Well I can do that too. In today's episode, we talk about "value objects", put our own special definition ...

How to deal with things outside your control on a dev project

How to deal with things outside your control on a dev project

Episode 113 · · 10:26

Have you ever struggled working with a third party on one of your developer projects? How do you handle that, keeping it professional and also still able to meet your commitments?In ...

Should we use a JSON field for this?

Should we use a JSON field for this?

Episode 112 · · 14:20

JSON fields can be very useful, but when is a good time to include them in your database design? In today's episode of No Compromises, Aaron and Joel use a couple examples from recen...

A balanced approach to static analysis in Laravel apps

A balanced approach to static analysis in Laravel apps

Episode 111 · · 11:59

Static types and tooling have increased the quality of our apps, but sometimes certain features in your Laravel app don't play nicely with static analysis. In today's episode, we tal...

Why do we like testing so much?

Why do we like testing so much?

Episode 110 · · 12:09

I write a lot about testing in the Mastering Laravel newsletter. Ever wonder why it's a topic I care so much about? In today's episode, we discuss that question and come up with a fe...

What does it mean to "know" something?

What does it mean to "know" something?

Episode 109 · · 09:37

What does it really mean when you say you know a particular technology? On today's episode, we discuss this using TypeScript as a specific example.Want help with your Laravel or PHP ...

How to approach being wrong

How to approach being wrong

Episode 108 · · 12:16

Programmers are not shy about telling other programmers when they're wrong. But what can we learn in a situation like his? How can we be wrong with style? In this episode, Aaron and ...

Where do you go when you need help?

Where do you go when you need help?

Episode 107 · · 14:14

We can't know everything, so throughout each day we inevitably have questions. On today's episode, we discuss different approaches we have used when we need a little help.Looking for...

What does it mean if someone says your app is slow?

What does it mean if someone says your app is slow?

Episode 106 · · 13:42

The dreaded bug report: this app is slow. Ok, but what is slow? I have so many questions!In today's episode, we discuss our approach to getting more information out of that initial b...

Why we have a separate test suite for external services

Why we have a separate test suite for external services

Episode 105 · · 18:03

Writing tests that communicate with a third party can be a little tricky, but we've found an approach that balances speed and confidence.In today's episode, we share that approach an...

API specs aren't just for giant teams

API specs aren't just for giant teams

Episode 104 · · 14:41

I don't have time to write an API spec. We're not a giant team. We don't have external users of our API.I've said all these things in the past, but in today's episode, we discuss why...

Slowly introducing static analysis without changing everything

Slowly introducing static analysis without changing everything

Episode 103 · · 15:13

Maybe you've tried to add static analysis to your Laravel app and got scared away by all the errors. In this episode we discuss how we like to introduce PHPStan to large, long-lived ...

Troubleshooting an empty session

Troubleshooting an empty session

Episode 102 · · 12:29

Why isn't this working? It can be frustrating when something doesn't work as expected!In this episode, we talk through a recent issue Joel had with sessions and oauth flows. There ar...

Magic methods are okay in the right context

Magic methods are okay in the right context

Episode 101 · · 12:06

"Magic" methods and properties show up several places in Laravel, as well as third-party packages. They can make certain things easier and less verbose, but there is a trade off. In ...

Should you let your admin do that?

Should you let your admin do that?

Episode 100 · · 10:49

Admins can do everything in the app, right? Today we discuss a couple reasons why you may want to consider not letting an admin have access to every single feature in your app.🎉️ Epi...

Don't get overwhelmed by errors in your application

Don't get overwhelmed by errors in your application

Episode 99 · · 11:55

Have you ever turned on error tracking in a long-lived app and then got overwhelmed by all the errors happening? We talk through some strategies to not get overwhelmed and make a cas...

Does it matter how your code looks?

Does it matter how your code looks?

Episode 98 · · 11:49

We've talked about coding standards before, but this time we approach it from a slightly different angle. Does the way you're code is formatted affect your ability to understand it? ...

The life cycle of database hosting

The life cycle of database hosting

Episode 97 · · 16:21

You launched a hobby project and then it starts to get some traction. What next? How do you get a more solid foundation under your app when it comes to database hosting? In this epis...

Are you really going to need that abstraction?

Are you really going to need that abstraction?

Episode 96 · · 11:59

Interfaces are a great tool for writing maintainable applications, but it is possible to go "too far" with abstraction. Or maybe, it's a bad use of time to write an abstraction up fr...

Should you change application code to support a test?

Should you change application code to support a test?

Episode 95 · · 11:32

When you're writing a test it can be so tempting to just "tweak" some app code to make it easier to write that test, but we discuss why that might not be a good idea. We also talk ab...

What is the point of design patterns?

What is the point of design patterns?

Episode 94 · · 11:38

Do your eyes glaze over when someone mentions singletons or factories? We'll try to not to be boring as we explain the benefits of design patterns.Sign up for our free Laravel newsle...

Move that logic out of your view

Move that logic out of your view

Episode 93 · · 10:16

Ever feel like your Blade views are getting too logic-heavy? What logic belongs in the view, and what logic would be better somewhere else? We use a recent PR discussion to talk thro...

Is it worth switching to another tool?

Is it worth switching to another tool?

Episode 92 · · 19:59

When new tools and packages come out, there is usually some buzz around the launch, and how it solves all the problems of the old tool. Should you switch? How do you know when it's w...

How we use seeders in our applications

How we use seeders in our applications

Episode 91 · · 15:15

Seeders seem pretty straightforward. It's a way to generate data. But how should you use them in your app and what different purposes do they serve? We talk through our approach to s...

Don't just get mad at some tech, dig in and learn!

Don't just get mad at some tech, dig in and learn!

Episode 90 · · 15:27

Is there some particular tool or technology that just makes you mad? Maybe it's the way CSS behaves or how some browsers work. Don't just get mad, dig in and learn it thoroughly. We ...

Making a case for consistency

Making a case for consistency

Episode 89 · · 13:25

We see a lot of different projects, but it's pretty rare to find one that's well-documented and internally consistent. Why does that matter? And how can you make things more consiste...