PLAY PODCASTS
No Compromises

No Compromises

154 episodes — Page 2 of 4

Ep 104API specs aren't just for giant teams

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 you should still consider writing a specification for your Laravel API.(00:00) - Should you write a spec for your API? (01:37) - Thinking through the requirements (04:07) - What's in a spec? (06:20) - Balancing detail with moving forward (08:15) - Who is consuming the spec? (09:30) - The spec keeps you honest Would you like to see what over 4,000 Laravel developers like about the Mastering Laravel newsletter? It's free to sign up.

Jul 9, 202414 min

Ep 103Slowly introducing static analysis without changing everything

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 projects in a way that doesn't introduce a lot of risk or change.Would you like help introducing Larastan to your project? That's one of many things we can help you with!This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at MAILTRAP.IO

Jun 25, 202415 min

Ep 102Troubleshooting an empty session

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 are a couple principles that apply more broadly.Next time you're stuck on something, let us help!This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at MAILTRAP.IO

Jun 11, 202412 min

Ep 101Magic methods are okay in the right context

"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 this episode, we discuss a few different contexts where we like and avoid magic accessors.We'd really appreciate it if you share the show with other Laravel devs.This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at MAILTRAP.IO

May 28, 202412 min

Ep 100Should you let your admin do that?

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.🎉️ Episode 100 is a huge milestone for us. Thank you for listening!This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at MAILTRAP.IO

May 14, 202410 min

Ep 99Don't get overwhelmed by errors in your application

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 case that you really should be monitoring this in production.Would you like help with your legacy app? We have a ton of experience making legacy apps a joy to work within.(00:00) - Your app should be tracking errors (02:30) - Better than just parsing logs (05:15) - Don't get overwhelmed when you first turn it on (06:00) - How to triage and prioritize (07:30) - Know about performance issues (10:30) - Silly bit

Apr 30, 202411 min

Ep 98Does it matter how your code looks?

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? Brains are interesting things.Is your code slower than you'd like? We specialize in Laravel performance optimization and we can help! Contact us to discuss.

Apr 16, 202411 min

Ep 97The life cycle of database hosting

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 episode, we discuss the common phases we see a database go through during an app's life.And if you'd love some help moving your database or tackling performance issues, give us a call!

Apr 2, 202416 min

Ep 96Are you really going to need that abstraction?

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 front before you really know you need it. We discuss some trade-offs and examples.(00:00) - Life before interfaces in PHP (02:30) - Going too far with interfaces (04:45) - A discussion with payment gateways (07:30) - Abstracting the database as another trap (09:15) - Laravel makes good use of interfaces (10:05) - Silly bit Need some perspective on your Laravel project? We offer a code review service. Get in touch to learn more.

Mar 19, 202411 min

Ep 95Should you change application code to support a test?

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 about some app changes while writing tests that are beneficial to the overall project.(00:00) - Sometimes changing code makes testing easier (01:30) - Different types of code changes (02:45) - An example with Laravel jobs (04:30) - A time when it's okay to change code while testing (08:50) - Avoid problems by writing tests earlier (09:30) - Silly bit Don't "compromise" on testing. See how we can help level up your Laravel project.

Mar 5, 202411 min

Ep 94What is the point of design patterns?

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 newsletter and learn something new in 2 minutes or less.

Feb 20, 202411 min

Ep 93Move that logic out of your view

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 through these points.(00:00) - Trying to keep logic out of the Blade view (02:00) - Using the simplest form of logic (03:45) - Business logic doesn't belong in the view layer (04:15) - Condition moved into the controller (05:20) - Secondary benefit of testing Check out the Mastering Laravel YouTube channel

Feb 6, 202410 min

Ep 92Is it worth switching to another tool?

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 worth it? What are the potential downsides of switching? We talk through a couple examples and share how we approach these decisionsWant to see what our coding standard looks like?Toss a coin in the jar if you enjoyed this episode. We really appreciate it!

Jan 23, 202419 min

Ep 91How we use seeders in our applications

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 seeders and how we use them in a few different contexts.(00:00) - Diving into how we use seeders in our applications (01:40) - Should a seeder create users? (04:30) - Using seeders in multiple contexts (09:50) - The one time we might use seeders with tests (11:50) - Silly bit Would you like some expert help on your Laravel application?Toss a coin in the jar if you enjoyed this episode. We really appreciate it!

Jan 9, 202415 min

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

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 talk about how we've done that and how it helped.(00:00) - Once again, Aaron reads the docs (02:30) - Recognizing when you don't know something (03:30) - Approaches for learning Javascript and CSS (04:20) - What is the manual for Javascript/CSS? (07:13) - Joel learning CSS hands-on (09:55) - Learning through repetition (12:00) - Keep an eye on tech that makes you annoyed (13:23) - Silly bit Wow, 90 episodes in a row. Never missed one! Want to hire some super reliable Laravel developers?Toss a coin in the jar if you enjoyed this episode. We really appreciate it!

Dec 26, 202315 min

Ep 89Making a case for consistency

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 consistent without spending a lot of time on it?(00:00) - We like keeping things tidy in our projects (01:20) - Have a README, please (03:30) - Is there a business case for consistency across projects? (05:30) - An example with Docker build speeds in CI (06:50) - Consistency in naming business concepts (09:45) - Silly bit Short, practical Laravel tips delivered fresh to your inbox. Sign up today!

Dec 12, 202313 min

Ep 88Different approaches to upgrading to a new major Laravel version

How do you like to upgrade your app when the next new major version of Laravel comes out? Aaron and Joel share two different approaches they've used, and what added benefits you get from doing a version upgrade.Need help getting tests on your Laravel app before upgrading?

Nov 28, 202316 min

Ep 87Maybe you don't need to write code this time

We're developers, we write code! But sometimes it's worth thinking if we really need to fire up our editor, or if a better solution exists. We talk through some "behind the scenes" podcast workflow, and how we decided we didn't need to write code this time.(00:00) - Considering better ways to track topics (01:00) - The developer brain kicks in (03:05) - Building it in Slack without any code (05:15) - Feeling empathy for the non-devs out there (06:45) - Deciding not to automate everything (09:15) - Another example with a stats dashboard (11:25) - Silly bit Need help with your Laravel app? We've seen it all and can get things done faster than you're used to.

Nov 14, 202315 min

Ep 86Should you manage roles and permissions with a UI?

Just about every application needs the concept of roles and permissions. Often, there's a desire to allow non-developers to manage roles and permissions in the application interface, but is that a good idea?(00:00) - Roles and permissions landscape (01:45) - A UI for managing permissions? (04:14) - Rolling out new permissions via migrations (06:45) - What about managing roles in a UI? (09:00) - Covering permissions in tests (10:30) - Maybe a read only UI? (10:55) - Silly bit The validation worksheet has been retired, but check out our validation book.

Oct 31, 202312 min

Ep 85The changing value of books throughout your career

You might have a book that really shaped how you write code today. Some books make more sense if you read them later in your career. We discuss the changing value of books as a learning resource as you gain experience.00:00 Using books as a resource01:59 Changing perspectives as you gain experience03:05 Recognizing real-world applications of what you read05:45 Balancing enthusiasm with experience07:20 You don't need to learn everything09:35 Silly bitYou could spend a few thousand dollars on books, but maybe that money is better spent working with us.

Oct 17, 202312 min

Ep 84Some reasons to write a down method in your migrations

This is a surprisingly controversial topic. In this episode, we share why we write down migration methods, and it's probably not the reason you're thinking of.(00:00) - Is writing down migration methods just a weird habit? (02:30) - A deploy that goes horribly wrong immediately (03:45) - Rolling forward due to database engine limitations (05:00) - How long is too long to rollback? (06:30) - Another use case: switching branches (08:30) - A mental unit test for your logic (12:35) - Silly bit No call to action on this episode, just go enjoy some quiet time to yourself.

Oct 3, 202314 min

Ep 83Managing a micro-manager

It's frustrating to have a client, boss, or even co-worker attempt to micro-manage you. We share some tips on how to make the working relationship better.(00:00) - Uncomfortable projects and clients (02:45) - Ask them directly "what's up" (05:00) - Understand what they want from you (07:00) - Let's role play (10:30) - The extra work is worth it (11:42) - Silly bit Need help building your Laravel product? Hire two expert Laravel developers for less than you might think.

Sep 19, 202314 min

Ep 82A couple handy features in PHPStorm

Developers spend a large part of their day inside an editor. For a full-featured editor like PHPStorm, there may be some useful features you've never noticed. We discuss a few of those.

Sep 5, 202310 min

Ep 81Tools should work for you, not boss you around

PHPStan is a great tool, but if you're not careful it might push you to write code in a way you wouldn't normally write it. How can you balance a tool's strengths with your team's style of writing code?(00:00) - We really like PHPStan (01:30) - Can you go too far with a tool, though? (03:40) - Things to consider if you're newer to Laravel or PHP (05:30) - PHPStan has helped us find bugs (06:25) - Accessing route parameters in a type-safe way (09:22) - Know how the tool works, to make it work for you (11:13) - Return types on controller actions (14:22) - Silly bit Need help getting unstuck with a Laravel issue? We can help!

Aug 22, 202315 min

Ep 80Harnessing that post-conference excitement

It is so exciting to watch a conference talk announcing some new tool or feature. Now you're back at work and your fingers are itching to type `composer install` - What do you do?(00:00) - Post-conference excitement is a real thing (01:11) - The reality of how conferences are structured (03:50) - Talks share things you could do not things you should do (05:00) - How to apply new ideas in your daily work (06:08) - Specific challenges within a team (11:40) - Silly bit Want to see the musical conference talk Joel mentioned?You like short things, that's why you listen to this podcast. How about a short Laravel tip in your inbox?

Aug 8, 202313 min

Ep 79How do you tell a teammate they might be wrong?

Programmers have opinions on things. Shocking, I know! How can we tell someone we think there's a better way to do something, without being counterproductive and causing needless confrontation?(00:00) - Programmers have opinions on a lot of topics (02:25) - Start by asking questions (03:45) - Get smart with leading questions (05:25) - Do you always have to call out something you think is wrong? (07:15) - Conflict doesn't mean confrontation Need help from some seasoned Laravel devs? Don't be shy. We don't bite.

Jul 25, 20239 min

Ep 78Lots of different ways to test record creation

We get a bit nerdy here and dive deep on a few different ways to test record creation.(00:00) - We like testing (01:20) - One way to test creating a record (03:00) - Limitations of fetch the record with first() (05:30) - Considerations when using latest() in tests (07:00) - An approach for using auto-increment IDs (08:05) - Silly bit Read more of our thoughts at masteringlaravel.io

Jul 11, 202310 min

Ep 77How do you avoid distractions?

Do you maintain laser focus when you work, or are you a normal human being? How do you balance use of email and social media for legitimate work reasons without going down the rabbit hole of distraction? Stop your work and listen to this episode for answers. It's not a distraction, it's an investment.(00:00) - Feeling the pull of distraction when trying to focus on work (01:30) - Email - the biggest distraction (03:00) - The world won't end if you keep email closed (06:00) - Setting expectations with others (07:45) - Being a hero might actually be unfair to others (08:20) - Productivity is really about well-being, not cranking out work (09:00) - Be realistic when planning (10:00) - Experiment and find what works for you (11:30) - Social media as a distraction (13:00) - Silly bit

Jun 27, 202315 min

Ep 76When should you use final classes or private properties?

The discussion of final classes was a hot topic recently. We had planned on discussing this even before it came up on Twitter, but here is our unsolicited opinion.Is there some use case we missed? Aaron wants to hear about it.Show notes(00:00) - Final classes, the hot topic on Twitter (01:00) - Aaron's opinion has evolved over the years (03:15) - Packages vs applications (04:00) - What about making PHPStan happy? (06:45) - What about reducing support burden on package maintainers? (10:05) - What about private properties? (11:15) - Aaron wants to be wrong (11:45) - Silly bit Want to hire us and argue about it? Book a call

Jun 13, 202313 min

Ep 75Is it ever ok to delay writing tests?

We always write tests, and can't imagine working without them. But is there ever a time where it might make sense to delay writing some tests until later in the project? Let us tell you a story about a recent project where we made that decision.(00:00) - Our secret podcast agenda (01:00) - Project setup (02:30) - Tests are good, but they do add time (03:15) - Some ambiguity on "is this what the user needs/wants?" (06:00) - Discussing the decision to delay tests as a team (07:15) - Conclusion - it's the audience, not the timeline (08:10) - Side benefit of knowledge sharing (09:15) - Silly bit Become a more confident Laravel developer. Sign up for practical tips at masteringlaravel.io

May 30, 202312 min

Ep 74Should an Eloquent relationship include soft-deleted records?

Show notes:(00:00) - Relationships and trashed records (02:00) - One-to-one relationship (02:39) - Are soft-deletes bad then? (03:30) - Balancing end user and developer experience (05:00) - One-to-many relationships are even more problematic (08:00) - Does the specific domain matter? (10:15) - Agree on the rule as a team (10:50) - Silly bit Get a free ebook of Laravel security tips

May 16, 202313 min

Ep 73Interviewing other developers like a human

Some interviewing techniques can be pretty disrespectful of the applicant's time or humanity. On today's episode we talk about some ways of approaching an interview to put the person at ease and help them to do their best.Show notes:00:00 Our different work backgrounds01:00 How to kick off a technical discussion in an interview03:45 How to leverage their existing experience04:50 Learn about their communication style06:00 Figuring out how someone thinks about a problem09:30 Don't code review actual company code11:50 Silly bit

May 2, 202315 min

Ep 72The benefits of working with other developers

Maybe you're a solo dev or working on a small team. What benefits are there in widening your circle of developers? We talk through our own personal experiences in this episode.Show notes:(00:00) - Topic intro: the benefits of working with someone else (02:46) - Code review can actually be nice (04:45) - The benefits of being "challenged" (06:20) - Picking up tips just seeing how someone else works (06:53) - Human skills are important too

Apr 18, 202312 min

Ep 71Changing our mind about queues in testing

We'll admit it: sometimes we change our mind. In this episode, we discuss how we used to setup queues in Laravel tests, and why we changed it.Show Notes00:00 Sometimes we change our mind over time02:00 Changing queue from sync to null in tests03:45 Feature versus integration tests04:40 Where do you test job logic?05:30 White box versus black box testing07:15 Laravel queue drivers and how faking works08:55 Why use events at all?09:30 The new approach is faster too11:15 Silly bitWant to make us happy with a random email? Check out our free and paid books on masteringlaravel.io

Apr 4, 202313 min

Ep 70Too many rules?

Rules in programming can be extremely helpful, especially on a team. But is it possible to go too far with rules? We discuss a couple recent scenarios where we could have made a rule, but decided not to.00:00 I like rules01:20 Maybe going too far with rules - the scenario03:05 Bug explanation05:03 A tangent on test setup06:30 A possible rule to prevent this bug07:17 Why this rule went too far08:50 We still want to fix it, just not now09:45 Another example with syntax and code standards12:53 Silly bitNeed help to set up or improve your team's coding standards?

Mar 21, 202315 min

Ep 69Keeping an open mind with other languages and tools

Before you vent some frustration on another tool or programming community, take a deep breath and think about why you're irritated? We talk about our own reactions to some technologies and how it's good to keep an open mind or, at a minimum, to not be a jerk.00:00 It's easy to hate on tools you don't use01:02 Why are there different kinds of tools?03:30 Is it "bad" because we don't understand it?04:42 Learn from other communities07:10 Don't be a jerk07:55 Silly bitNeed some help with your Laravel application?

Mar 7, 202311 min

Ep 68What we look for in a package

We have such a rich ecosystem of packages in the Laravel and PHP community. But can there be too much of a good thing? What do we consider before adding a small package to our projects?00:00 A healthy ecosystem of packages01:02 Too much of a good thing?02:48 Risks to consider04:13 Other ways to share05:34 Think before you promote08:02 Consider the friction08:39 Silly bitWould you like help auditing the packages in your Laravel application?

Feb 21, 202310 min

Ep 67Blogging versus tweeting

Laravel has a vibrant community of people teaching and sharing what they've learned. What makes a good tip? Should you tweet or blog or both?00:00 Why blogging is beneficial02:43 Slowing down before you publish04:30 Tips that provide value08:11 Platforms can go away09:36 Silly bitCheck out the new articles section on masteringlaravel.io

Feb 7, 202311 min

Ep 66Knowing when to use new language or framework features

New PHP version! New Laravel version! So exciting! But when does it make sense to upgrade, and when does it make sense to start using new language or framework features?PHP marches forward (00:00)Upgrade strategy depends on team size (01:20)Considerations for new language features (02:33)Performance gains (03:27)Readability (04:56)How to adopt new features (06:16)Depends on the project's maturity (08:14)Upgrading for security (09:30)Silly bit (11:17)If you enjoy this podcast, we'd really appreciate help spreading the word. Share it with your fellow PHP and Laravel developers.

Jan 24, 202314 min

Ep 65Going on a bug hunt

How can a bug be fun, and not frustrating? When you treat it like a puzzle. Let's walk through a recent bug with CSV mime type validation and go deep down the rabbit hole.Think of a bug like a fun code puzzle (00:00)Don't get stuck for too long (01:22)The confusing CSV bug (02:35)Diffing the files (06:05)Digging deeper into Symfony and PHP (08:07)Getting stubborn about fixing this (11:29)Silly bit (12:26)Why would you validate your MIME types? Learn that and a whole lot more with our validation book: Mastering Laravel Validation Rules

Jan 10, 202313 min

Ep 64Thinking about the user, even in the details

User experience is a term we hear a lot as developers, but it can mean different things depending on the context. We discuss a recent project where decisions around which HTTP status code to return was focused on improving the user's experience and trust in the application.00:16 Why do we write code?01:39 The importance of user experience02:54 A specific example of user-focused thinking04:34 Choosing the most helpful HTTP status code05:44 What if it’s an API response?07:17 How much detail in an error is useful to a user?08:35 Silly bitMove from competent to confident - become a better Laravel developer with the free resources available at masteringlaravel.io

Dec 27, 202212 min

Ep 63Why do you write your tests like that?

We discuss two "interesting" patterns we've observed in a number of Laravel projects. Let's take a step back and think about why we write tests the way we do.1:06 - One weird pattern we’ve seen in Laravel project tests2:23 - Can you explain why you’re doing this?3:50 - “It’s more readable”5:55 - Principle: learn a thing, do a thing, dissect a thing6:30 - Is it okay to have code duplication in tests?8:20 - How tests are different from application code11:16 - Don’t add application code just for your tests13:06 - Silly bitNeed help building a test suite for your Laravel app or making your existing tests more reliable? Click the link and book a free call to see how we can help.

Dec 13, 202214 min

Ep 62Avoid painting yourself into a corner

We've all been there: a thorny piece of code works, but it seems like there must be a better way to simplify it or make it more readable. We share one example when this happened to us, and how code review led to a better solution. Want another set of eyes on your code? We can help! Visit our site and schedule a free call with us today.00:16 The problem: this code works, but I don't like it01:17 What we mean by "I don't like this code"02:22 A specific example of code I didn't like03:52 Code review sparks a discussion, and a solution05:20 Principle: don't get locked in to your first approach06:03 Principle: the benefits of code review07:22 Don't be defensive, and the code reviewer isn't always right08:03 Silly bit

Nov 29, 202210 min

Ep 61Look before you leap

Hear about some cool new tool or coding technique on Twitter? Great, jump right in and use it on your biggest production app! Or . . . maybe don't. We share some thoughts on how to evaluate things critically for your particular circumstances.Do you want to blindly take our advice? Great idea! Check out our book on Laravel validation rules.

Nov 15, 202210 min

Ep 60Don't plan to do too much

Do you always finish everything you plan on doing? Probably not, very few developers do. The problem isn't always how you work. Some of it is how you plan. We discuss several tips on how to plan for a more successful week.Want to get notified when we release new tools, books, and articles? Sign up for our newsletter!

Nov 1, 202215 min

Ep 59Isolate the problem

What do you do when you're stuck? Aaron shares a tip on how he breaks down a problem when he's feeling stuck.Are you stuck with your Laravel/PHP project? We can help! Book a free call.

Oct 18, 202210 min

Ep 58What should I test?

We all know we should write tests, but what should we test? Is there anything it doesn't make sense to test? We talk through a high-level approach to how we do feature testing in Laravel.Need some help or advice on your Laravel project? We can help!

Oct 4, 202215 min

Ep 57Picking a strategy for translation in Laravel

There are different ways to structure your translation assets in Laravel. We discuss how we approached this on a recent project, and why we chose the method we did.Check out the validation worksheet we built. It may help jump start your Laravel validation rules.

Sep 20, 202214 min

Ep 56Should a factory follow all business rules?

Factories are really useful in tests, but could they give you a false sense of security if they don't generate models exactly like a user of your application would? We talk through some benefits and cautions to think about as you're designing your factories and factory states.Share the love! Tell people on Twitter about the podcast.

Sep 6, 202213 min

Ep 55Understanding different learning styles

What a surprise, Joel and Aaron have a different learning style. We talk through our different approaches to learning, and what we've found useful.Did you like this? We'd appreciate a review or share of the podcast

Aug 23, 202215 min