Logo

    No Compromises

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

    People also ask

    What is the main theme of the podcast?
    Who are some of the popular guests the podcast?
    Were there any controversial topics discussed in the podcast?
    Were any current trending topics addressed in the podcast?
    What popular books were mentioned in the podcast?

    Episodes (95)

    Should you change application code to support a test?

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

    Move that logic out of your view

    Move 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
    No Compromises
    enFebruary 06, 2024

    Is it worth switching to another tool?

    Is 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 decisions


    Want to see what our coding standard looks like?

    Toss a coin in the jar if you enjoyed this episode. We really appreciate it!

    No Compromises
    enJanuary 23, 2024

    How we use seeders in our applications

    How 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!

    No Compromises
    enJanuary 09, 2024

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

    Don'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!

    No Compromises
    enDecember 26, 2023

    Making a case for consistency

    Making 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!
    No Compromises
    enDecember 12, 2023

    Maybe you don't need to write code this time

    Maybe 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.
    No Compromises
    enNovember 14, 2023

    Should you manage roles and permissions with a UI?

    Should 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

    Check out the validation worksheet at masteringlaravel.io
    No Compromises
    enOctober 31, 2023

    The changing value of books throughout your career

    The 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 resource
    01:59 Changing perspectives as you gain experience
    03:05 Recognizing real-world applications of what you read
    05:45 Balancing enthusiasm with experience
    07:20 You don't need to learn everything
    09:35 Silly bit

    You could spend a few thousand dollars on books, but maybe that money is better spent working with us.

    No Compromises
    enOctober 17, 2023

    Some reasons to write a down method in your migrations

    Some 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.
    No Compromises
    enOctober 03, 2023

    Managing a micro-manager

    Managing 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.
    No Compromises
    enSeptember 19, 2023

    Tools should work for you, not boss you around

    Tools 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!

    Harnessing that post-conference excitement

    Harnessing 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?

    No Compromises
    enAugust 08, 2023

    How do you tell a teammate they might be wrong?

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

    Lots of different ways to test record creation

    Lots 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

    How do you avoid distractions?

    How 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

    When should you use final classes or private properties?

    When 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