show episodes
 
Loading …
show series
 
In this episode of 'APIs You Won't Hate', the Phil discusses API development with Joel Clermont, a prominent member of the Laravel PHP community. They explore different approaches to building APIs, focusing particularly on the debate between code-first and design-first methodologies. Joel shares his experiences and challenges with generating API sp…
  continue reading
 
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, how “atomic” commits can help (or hurt) reviewers, and why understanding how your teammate’s brain works is a super-power. Along the way they share practical tips for le…
  continue reading
 
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 war-stories that show how small setup shortcuts turn into big headaches later. You’ll learn a repeatable way to protect both your reputation and your client’s code base. …
  continue reading
 
Mocking is one of those things that started out as a simple idea, and has evolved to support an incredible amount of developer use cases over the years. In this episode of the Podcast, Tom from Wiremock chats with Phil about what mocking is, strategies for not littering OpenAPI doc with mocking details, and ways to keep api dev teams empowered by m…
  continue reading
 
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 layer, and why coverage metrics can double as negotiation leverage inside big organizations. Listen in for practical ways to decide what to test—and when to stop. (00:00) -…
  continue reading
 
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 tricky scenarios, and keep the client looped in without over-building a UI. If you’ve ever had to code first and document later, this one’s for you. (00:00) - Bridging tw…
  continue reading
 
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 potential security pitfall if user input isn’t properly sanitized. You’ll hear practical ways to keep your views safe without losing the API’s fluency. (00:00) - Stringabl…
  continue reading
 
Picking up where last week’s “Why ‘no time’ really means ‘no priority’” left off, Joel and Aaron tackle the next hurdle: what to do once the benefits are crystal‑clear but you (or your team) still hesitate. They unpack the hidden frictions—fear of discomfort, stakeholder pushback, or sheer inertia—that keep valuable tasks on the back burner. You’ll…
  continue reading
 
Joel and Aaron tackle the common objection, “We don’t have time,” and show why it usually hides a priority problem. They discuss how to convey the true payoff of process improvements by sharing honest before‑and‑after stories instead of vague promises. You’ll leave with practical ideas for getting buy‑in—whether you’re pitching tests, planning habi…
  continue reading
 
Joel and Aaron show how ignoring GET request validation can cause performance issues and open your application to abuse. They highlight the importance of bounding pagination and share tips for using form requests to handle unexpected user input. Now go check out the best/only Laravel validation book (00:00) - Quiz on Laravel’s default pagination li…
  continue reading
 
Joel and Aaron explore why pushing too many layers of abstraction can backfire in a Laravel application. They highlight the benefits of sticking to the framework’s conventions for long-term maintainability and simpler handoff to future developers. (00:00) - Why framework paradigms really matter (01:00) - When extra abstractions become burdens (03:0…
  continue reading
 
Joel and Aaron explore the decision-making process behind hiring or consulting an expert for technical challenges. They discuss examples like adding tests to a large codebase and understanding what questions you need to ask. They also reveal how coaching can help teams avoid common pitfalls and reach solutions faster. (00:00) - Determining why you …
  continue reading
 
Joel and Aaron discuss the benefits of having distinct databases for testing and local development. They share how this approach ensures a reliable test suite and avoids conflicts with day-to-day dev work. In the process, they reveal a simpler workflow for setting up new environments and keeping projects stable. (00:00) - Why separate dev and test …
  continue reading
 
In this episode, Joel and Aaron discuss the struggles of learning new technology on a late-night side project. They share tips for handling frustration and managing expectations. (00:00) - Late-night MicroPython struggles and revelations (02:15) - Overcoming complex hardware and language hurdles (05:15) - Balancing side projects with realistic expe…
  continue reading
 
Rich Steinmetz (https://richstone.io/meet-rich) Clickfunnels https://clickfunnels.com/ Developer portal https://developers.myclickfunnels.com/ Bullet Train for Ruby on Rails - https://bullettrain.co/docs/api SuperScaffolding - https://bullettrain.co/docs/super-scaffolding Hyrum's Law - https://www.hyrumslaw.com/ Creators & Guests Rich Steinmetz - G…
  continue reading
 
Joel and Aaron explore the value of using concise video demos instead of long emails or scattered screenshots. They discuss which clients benefit from quick visuals and when text is still best. Want to see us on camera? Join the Mastering Laravel community for our live dev calls. (00:00) - Recording brief Loom demos for updates (02:15) - Considerin…
  continue reading
 
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 the end, they reminisce about old infomercial freebies and wonder if they still exist. (00:00) - Debating authentication vs. tenant header priority (02:15) - Handling u…
  continue reading
 
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 necessary, while emphasizing the importance of not abandoning Eloquent entirely. The conversation provides practical insights into balancing framework features with performanc…
  continue reading
 
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 languages and environments, they explore whether feature flags should always be temporary or can serve permanent purposes. The discussion evolves from a simple disagreement int…
  continue reading
 
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 conversation they had along these lines on a recent client project and considering the new Flux library from the creator of Livewire. (00:00) - Discussing potential Flux ado…
  continue reading
 
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 on it, and discuss when we might use these in a Laravel project. (00:00) - What I mean by "value object" (03:00) - Nicer to do in newer PHP versions (04:00) - Main use …
  continue reading
 
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 today's episode of No Compromises, Aaron and Joel discuss what happened on a recent project and how they think about handling those kinds of difficulties while still h…
  continue reading
 
Though we've been working together for a long while, it turns out that Alexander, Phil, and Mike had never all recorded a podcast together before. We caught up to catch up on what everyone's been up to these past few months, to talk APIs, and to gab about the future of this very community. Creators & Guests Phil Sturgeon - Host Mike Bifulco - Host …
  continue reading
 
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 recent projects to talk through reasons they would and would not use a JSON field. (00:00) - Debating JSON fields in database design (03:06) - Configuration options: JSON vs…
  continue reading
 
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 talk about how we approach the tradeoffs around making a tool happy without changing how you write code. (00:00) - Our approach to static analysis in a Laravel app (01:30)…
  continue reading
 
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 few different reasons. (00:00) - Why do we like testing so much? (01:20) - Looking back at how we learned (02:30) - Making it easier to join a project (05:45) - Tests mak…
  continue reading
 
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. (00:00) - What does it mean to "know" something? (03:15) - Thinking about TypeScript vs strict types in PHP (05:30) - Are you fluent? (06:50) - Silly bit Want help with your Laravel or PHP project? We r…
  continue reading
 
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 Joel talk about times they've been wrong throughout their career and what they've learned. (00:00) - Aaron admits he was wrong (02:00) - What can I learn from this? (05…
  continue reading
 
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. (00:00) - Where do you go when you need help? (01:30) - Option 1 - search engines (03:30) - Getting the most out of search results (05:00) - Option 2 - talk to AI (07:00) - Using…
  continue reading
 
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 bug report, and a methodical approach to locate and quantify the slowness. If you'd like help setting up tools like Xdebug profiling, send us a message.…
  continue reading
 
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 and talk through a strategy of how frequently to run tests that talk to the outside world. (00:00) - Why would your tests ever talk to an external service? (02:30) - Wha…
  continue reading
 
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 (0…
  continue reading
 
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 wi…
  continue reading
 
(00:00) - Introduction and Guest Introduction (00:52) - The Future of Voice AI (01:56) - Wapi's Elevator Pitch (03:27) - Challenges and Opportunities in Voice AI (05:11) - Building Voice AI Solutions (11:00) - The Genesis of Wapi (16:39) - API Design and Developer Experience (21:23) - Docker vs Kubernetes: A Developer's Perspective (22:28) - Hello …
  continue reading
 
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…
  continue reading
 
"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…
  continue reading
 
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 M…
  continue reading
 
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…
  continue reading
 
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.…
  continue reading
 
Skyvern https://www.skyvern.com/ Skyvern is Open Source! https://github.com/Skyvern-AI/skyvern Launch on Y Combinator's site: https://www.ycombinator.com/companies/skyvern Suchintan Singh (YC S23) on LinkedIn Creators & Guests Mike Bifulco - Host Suchintan Singh - GuestBy APIs You Won't Hate
  continue reading
 
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, gi…
  continue reading
 
Robin Guldener from Nango talks to mike about building an open, unified API, the value of building on top of Open Source products, and building a growing product team on this episode of the podcast. Nango.dev - Open, Unified API Nango on GitHub Robin Guldener on LinkedIn Creators & Guests Mike Bifulco - Host Robin Guldener - Guest…
  continue reading
 
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)…
  continue reading
 
Zeno's flash->javascript demo with HTML5, Wormz https://zenorocha.github.io/wormz/ Zeno Rocha @ZenoRocha on Twitter @zenorocha on Threads Dracula theme React email Resend.com Resend Forward Broadcasts - marketing emails Batch email sending - send 100 emails with one API call Creators & Guests Mike Bifulco - Host Zeno Rocha - Guest…
  continue reading
 
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…
  continue reading
 
Quobix - Dave Shanley's site. Code is art daveshanley/vacuum on GitHub - the world's fastest OpenAPI 3, OpenAPI 2 / Swagger linter wework/speccy on GitHub - Well Spectually 🤓 Enforce quality rules on your OpenAPI 3.0.x specifications. Wire⚡️Tap - is the world’s coolest OpenAPI compliance and testing tool, from Quobix Battle of the API Ratings from …
  continue reading
 
Loading …

Quick Reference Guide

Copyright 2025 | Privacy Policy | Terms of Service | | Copyright
Listen to this show while you explore
Play