<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheet.xsl" type="text/xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:podcast="https://podcastindex.org/namespace/1.0">
  <channel>
    <atom:link rel="self" type="application/rss+xml" href="https://feeds.transistor.fm/no-compromises" title="MP3 Audio"/>
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com/"/>
    <podcast:podping usesPodping="true"/>
    <title>No Compromises</title>
    <generator>Transistor (https://transistor.fm)</generator>
    <itunes:new-feed-url>https://feeds.transistor.fm/no-compromises</itunes:new-feed-url>
    <description>Two seasoned salty programming veterans talk best practices based on years of working with Laravel SaaS teams.</description>
    <copyright>No Compromises, LLC</copyright>
    <podcast:guid>3b2f3ff2-4b15-5d1f-8081-0408b571c728</podcast:guid>
    <podcast:locked>yes</podcast:locked>
    <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
    <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
    <language>en</language>
    <pubDate>Sat, 09 May 2026 00:00:11 -0500</pubDate>
    <lastBuildDate>Sat, 09 May 2026 00:01:02 -0500</lastBuildDate>
    <link>https://show.nocompromises.io</link>
    <image>
      <url>https://img.transistorcdn.com/z6cTh6hcjDJiOBZWkONVdabUkSvSMha6ir6ZU7zqiNs/rs:fill:0:0:1/w:1400/h:1400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9zaG93/LzIzMDM3LzE2Mjc1/MjExMTAtYXJ0d29y/ay5qcGc.jpg</url>
      <title>No Compromises</title>
      <link>https://show.nocompromises.io</link>
    </image>
    <itunes:category text="Technology"/>
    <itunes:type>episodic</itunes:type>
    <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
    <itunes:image href="https://img.transistorcdn.com/z6cTh6hcjDJiOBZWkONVdabUkSvSMha6ir6ZU7zqiNs/rs:fill:0:0:1/w:1400/h:1400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9zaG93/LzIzMDM3LzE2Mjc1/MjExMTAtYXJ0d29y/ay5qcGc.jpg"/>
    <itunes:summary>Two seasoned salty programming veterans talk best practices based on years of working with Laravel SaaS teams.</itunes:summary>
    <itunes:subtitle>Two seasoned salty programming veterans talk best practices based on years of working with Laravel SaaS teams..</itunes:subtitle>
    <itunes:keywords></itunes:keywords>
    <itunes:owner>
      <itunes:name>Joel Clermont</itunes:name>
    </itunes:owner>
    <itunes:complete>No</itunes:complete>
    <itunes:explicit>No</itunes:explicit>
    <item>
      <title>Do you actually own the code you ship?</title>
      <itunes:episode>152</itunes:episode>
      <podcast:episode>152</podcast:episode>
      <itunes:title>Do you actually own the code you ship?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">b6913d49-4ca0-4f0b-94ac-56829f402f28</guid>
      <link>https://share.transistor.fm/s/f38cd91e</link>
      <description>
        <![CDATA[<p>When a tool hands you a working solution, how much do you really need to understand about why it works?</p><p>In the latest episode of the No Compromises podcast, we discuss whether developers still care about understanding the code they ship, or whether that expectation is becoming a relic of the past.</p><p>We explore why knowing the "why" behind a solution isn't just about curiosity. It's about having enough domain knowledge to ask better questions, push back on bad answers, and ultimately produce better work.</p><p>We also walk through a real code review example involving a tricky Eloquent query, talk through the pressures that pull developers away from digging deeper, and consider what separates a line cook from a chef in how we approach our craft.</p><p></p><ul><li>(00:16) - Are developers losing the habit of asking why</li>
<li>(02:16) - How AI changes the copy-paste-and-move-on cycle</li>
<li>(05:25) - Learning by accident while reading the manual</li>
<li>(06:24) - The Eloquent query neither of us could explain</li>
<li>(12:16) - Silly bit</li>
</ul><br>Join a<a href="https://masteringlaravel.io/community"> community of developers</a> who still care about understanding the code they ship.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>When a tool hands you a working solution, how much do you really need to understand about why it works?</p><p>In the latest episode of the No Compromises podcast, we discuss whether developers still care about understanding the code they ship, or whether that expectation is becoming a relic of the past.</p><p>We explore why knowing the "why" behind a solution isn't just about curiosity. It's about having enough domain knowledge to ask better questions, push back on bad answers, and ultimately produce better work.</p><p>We also walk through a real code review example involving a tricky Eloquent query, talk through the pressures that pull developers away from digging deeper, and consider what separates a line cook from a chef in how we approach our craft.</p><p></p><ul><li>(00:16) - Are developers losing the habit of asking why</li>
<li>(02:16) - How AI changes the copy-paste-and-move-on cycle</li>
<li>(05:25) - Learning by accident while reading the manual</li>
<li>(06:24) - The Eloquent query neither of us could explain</li>
<li>(12:16) - Silly bit</li>
</ul><br>Join a<a href="https://masteringlaravel.io/community"> community of developers</a> who still care about understanding the code they ship.]]>
      </content:encoded>
      <pubDate>Sat, 09 May 2026 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/f38cd91e/db6334fc.mp3" length="34454590" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>894</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>When a tool hands you a working solution, how much do you really need to understand about why it works?</p><p>In the latest episode of the No Compromises podcast, we discuss whether developers still care about understanding the code they ship, or whether that expectation is becoming a relic of the past.</p><p>We explore why knowing the "why" behind a solution isn't just about curiosity. It's about having enough domain knowledge to ask better questions, push back on bad answers, and ultimately produce better work.</p><p>We also walk through a real code review example involving a tricky Eloquent query, talk through the pressures that pull developers away from digging deeper, and consider what separates a line cook from a chef in how we approach our craft.</p><p></p><ul><li>(00:16) - Are developers losing the habit of asking why</li>
<li>(02:16) - How AI changes the copy-paste-and-move-on cycle</li>
<li>(05:25) - Learning by accident while reading the manual</li>
<li>(06:24) - The Eloquent query neither of us could explain</li>
<li>(12:16) - Silly bit</li>
</ul><br>Join a<a href="https://masteringlaravel.io/community"> community of developers</a> who still care about understanding the code they ship.]]>
      </itunes:summary>
      <itunes:keywords>laravel, php, ai, code review, code quality</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/f38cd91e/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/f38cd91e/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Do you actually need a multi-tenancy package?</title>
      <itunes:episode>151</itunes:episode>
      <podcast:episode>151</podcast:episode>
      <itunes:title>Do you actually need a multi-tenancy package?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">924252e9-b98d-4236-a111-7493c2f771eb</guid>
      <link>https://share.transistor.fm/s/9ea352fe</link>
      <description>
        <![CDATA[<p>Ever feel like a project requirement says "we need multi-tenancy," and you're not even sure what that means in your specific context?</p><p>In the latest episode of the No Compromises podcast, we discuss how to evaluate multi-tenancy needs before committing to an architectural approach.</p><p>We break down what multi-tenancy actually means, from separate databases to custom domains and per-tenant configuration, and why the real question isn't which package to use, but whether you need one at all.</p><p>We also explore when hand-rolling a simple solution beats adopting a full package, what legal and compliance requirements can force your hand, and why this is one of those decisions that's genuinely hard to undo later.</p><p>00:00 Defining what multi-tenancy actually means<br>02:11 Different ways to structure multi-tenant systems<br>03:44 When separate databases are truly necessary<br>04:57 Questions to ask before choosing an approach<br>08:25 Package vs. rolling your own trade-offs<br>11:30 Silly bit</p><p>If you want guidance on decisions like these, check out our <a href="https://masteringlaravel.io/courses">code review service</a> to get expert eyes on your architecture.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Ever feel like a project requirement says "we need multi-tenancy," and you're not even sure what that means in your specific context?</p><p>In the latest episode of the No Compromises podcast, we discuss how to evaluate multi-tenancy needs before committing to an architectural approach.</p><p>We break down what multi-tenancy actually means, from separate databases to custom domains and per-tenant configuration, and why the real question isn't which package to use, but whether you need one at all.</p><p>We also explore when hand-rolling a simple solution beats adopting a full package, what legal and compliance requirements can force your hand, and why this is one of those decisions that's genuinely hard to undo later.</p><p>00:00 Defining what multi-tenancy actually means<br>02:11 Different ways to structure multi-tenant systems<br>03:44 When separate databases are truly necessary<br>04:57 Questions to ask before choosing an approach<br>08:25 Package vs. rolling your own trade-offs<br>11:30 Silly bit</p><p>If you want guidance on decisions like these, check out our <a href="https://masteringlaravel.io/courses">code review service</a> to get expert eyes on your architecture.</p>]]>
      </content:encoded>
      <pubDate>Sat, 25 Apr 2026 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/9ea352fe/7b83beef.mp3" length="32750815" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:image href="https://img.transistorcdn.com/v4OLDYed7o9fvTQI1ZDu2SfWOd3_y-dv4hlT1Ldmotc/rs:fill:0:0:1/w:1400/h:1400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9kYWQ3/MmE5Yzg2ZDlmNGVk/NWI1NGI2ODhmY2U0/MjQ2MC5qcGc.jpg"/>
      <itunes:duration>846</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Ever feel like a project requirement says "we need multi-tenancy," and you're not even sure what that means in your specific context?</p><p>In the latest episode of the No Compromises podcast, we discuss how to evaluate multi-tenancy needs before committing to an architectural approach.</p><p>We break down what multi-tenancy actually means, from separate databases to custom domains and per-tenant configuration, and why the real question isn't which package to use, but whether you need one at all.</p><p>We also explore when hand-rolling a simple solution beats adopting a full package, what legal and compliance requirements can force your hand, and why this is one of those decisions that's genuinely hard to undo later.</p><p>00:00 Defining what multi-tenancy actually means<br>02:11 Different ways to structure multi-tenant systems<br>03:44 When separate databases are truly necessary<br>04:57 Questions to ask before choosing an approach<br>08:25 Package vs. rolling your own trade-offs<br>11:30 Silly bit</p><p>If you want guidance on decisions like these, check out our <a href="https://masteringlaravel.io/courses">code review service</a> to get expert eyes on your architecture.</p>]]>
      </itunes:summary>
      <itunes:keywords>laravel multi-tenancy, tenant isolation, SaaS architecture, </itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/9ea352fe/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/9ea352fe/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Local and production should match even for Laravel tools</title>
      <itunes:episode>150</itunes:episode>
      <podcast:episode>150</podcast:episode>
      <itunes:title>Local and production should match even for Laravel tools</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">1fc33f1d-262c-40d7-ae1d-52aa93657182</guid>
      <link>https://share.transistor.fm/s/f02a08d9</link>
      <description>
        <![CDATA[<p>Ever installed a Laravel package locally and immediately accessed it, only to wonder later whether your access controls are actually working in production?</p><p>In the latest episode of the No Compromises podcast, we discuss why tools like Telescope and Horizon behave differently in local environments versus production, and why that inconsistency is a problem worth solving.</p><p>We make the case that developer convenience should never come at the cost of security confidence. If your gate logic cannot be exercised locally, you cannot truly trust it is protecting your production environment.</p><p>We also dig into how Aaron worked around the issue by overriding the package's service provider logic, and why Laravel has since made this easier to handle cleanly.</p><p></p><ul><li>(00:00) - Why local and production environments should match</li>
<li>(01:42) - How Telescope's gate logic behaves differently locally</li>
<li>(03:01) - The risk of untestable access control logic</li>
<li>(07:53) - How Aaron overrode the service provider to fix it</li>
<li>(10:23) - Silly bit</li>
</ul><br>(00:00) Why local and production environments should match<br>(01:42) How Telescope's gate logic behaves differently locally<br>(03:01) The risk of untestable access control logic<br>(07:53) How Aaron overrode the service provider to fix it<br>(10:23) Silly bit<p>Our <a href="https://masteringlaravel.io/courses">courses</a> took the production hits so your app doesn't have to.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Ever installed a Laravel package locally and immediately accessed it, only to wonder later whether your access controls are actually working in production?</p><p>In the latest episode of the No Compromises podcast, we discuss why tools like Telescope and Horizon behave differently in local environments versus production, and why that inconsistency is a problem worth solving.</p><p>We make the case that developer convenience should never come at the cost of security confidence. If your gate logic cannot be exercised locally, you cannot truly trust it is protecting your production environment.</p><p>We also dig into how Aaron worked around the issue by overriding the package's service provider logic, and why Laravel has since made this easier to handle cleanly.</p><p></p><ul><li>(00:00) - Why local and production environments should match</li>
<li>(01:42) - How Telescope's gate logic behaves differently locally</li>
<li>(03:01) - The risk of untestable access control logic</li>
<li>(07:53) - How Aaron overrode the service provider to fix it</li>
<li>(10:23) - Silly bit</li>
</ul><br>(00:00) Why local and production environments should match<br>(01:42) How Telescope's gate logic behaves differently locally<br>(03:01) The risk of untestable access control logic<br>(07:53) How Aaron overrode the service provider to fix it<br>(10:23) Silly bit<p>Our <a href="https://masteringlaravel.io/courses">courses</a> took the production hits so your app doesn't have to.</p>]]>
      </content:encoded>
      <pubDate>Sat, 11 Apr 2026 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/f02a08d9/f6867a84.mp3" length="30564714" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>795</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Ever installed a Laravel package locally and immediately accessed it, only to wonder later whether your access controls are actually working in production?</p><p>In the latest episode of the No Compromises podcast, we discuss why tools like Telescope and Horizon behave differently in local environments versus production, and why that inconsistency is a problem worth solving.</p><p>We make the case that developer convenience should never come at the cost of security confidence. If your gate logic cannot be exercised locally, you cannot truly trust it is protecting your production environment.</p><p>We also dig into how Aaron worked around the issue by overriding the package's service provider logic, and why Laravel has since made this easier to handle cleanly.</p><p></p><ul><li>(00:00) - Why local and production environments should match</li>
<li>(01:42) - How Telescope's gate logic behaves differently locally</li>
<li>(03:01) - The risk of untestable access control logic</li>
<li>(07:53) - How Aaron overrode the service provider to fix it</li>
<li>(10:23) - Silly bit</li>
</ul><br>(00:00) Why local and production environments should match<br>(01:42) How Telescope's gate logic behaves differently locally<br>(03:01) The risk of untestable access control logic<br>(07:53) How Aaron overrode the service provider to fix it<br>(10:23) Silly bit<p>Our <a href="https://masteringlaravel.io/courses">courses</a> took the production hits so your app doesn't have to.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP, web development, software development, Laravel Telescope, access control, testing practices, local vs production, debugging Laravel, backend development, developer workflow</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/f02a08d9/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/f02a08d9/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>When weird code needs to explain itself</title>
      <itunes:episode>149</itunes:episode>
      <podcast:episode>149</podcast:episode>
      <itunes:title>When weird code needs to explain itself</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">09f74368-b03c-425c-bf9d-9755e8c42ab3</guid>
      <link>https://share.transistor.fm/s/3051d3a3</link>
      <description>
        <![CDATA[<p>Have you ever looked at a colleague's code and thought, "This is clearly wrong," only to find out it was actually a well-reasoned workaround for a tricky bug?</p><p>In the latest episode of the No Compromises podcast, we discuss what happened when Aaron reviewed Joel's code and couldn't make sense of a pattern spread across multiple Livewire components.</p><p>The code wasn't bad, it was solving a real UX flicker bug in an older version of Mary UI. But without context, it looked like a mistake and nearly got rejected. The fix wasn't just refactoring; it was giving the workaround a proper home: a trait with a descriptive name, clear method names, and thorough documentation explaining the bug, the reason for the pattern, and when it can eventually be removed.</p><p>We also talk about why "the explanation is in the PR note" isn't good enough, how AI coding agents can unknowingly propagate patterns they don't understand, and why strange code deserves to look strange, on purpose.</p><p>Explore <a href="https://masteringlaravel.io/courses">Mastering Laravel resources</a> to deepen your understanding of patterns like these.</p><p>00:00 The confusing code review that started this<br>01:15 Flagging the unclear pattern across components<br>03:54 The Mary UI toast flicker bug explained<br>05:45 Naming, documentation, and protecting the whole team<br>09:30 Silly bit</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Have you ever looked at a colleague's code and thought, "This is clearly wrong," only to find out it was actually a well-reasoned workaround for a tricky bug?</p><p>In the latest episode of the No Compromises podcast, we discuss what happened when Aaron reviewed Joel's code and couldn't make sense of a pattern spread across multiple Livewire components.</p><p>The code wasn't bad, it was solving a real UX flicker bug in an older version of Mary UI. But without context, it looked like a mistake and nearly got rejected. The fix wasn't just refactoring; it was giving the workaround a proper home: a trait with a descriptive name, clear method names, and thorough documentation explaining the bug, the reason for the pattern, and when it can eventually be removed.</p><p>We also talk about why "the explanation is in the PR note" isn't good enough, how AI coding agents can unknowingly propagate patterns they don't understand, and why strange code deserves to look strange, on purpose.</p><p>Explore <a href="https://masteringlaravel.io/courses">Mastering Laravel resources</a> to deepen your understanding of patterns like these.</p><p>00:00 The confusing code review that started this<br>01:15 Flagging the unclear pattern across components<br>03:54 The Mary UI toast flicker bug explained<br>05:45 Naming, documentation, and protecting the whole team<br>09:30 Silly bit</p>]]>
      </content:encoded>
      <pubDate>Sat, 28 Mar 2026 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/3051d3a3/8fa9d39c.mp3" length="26040847" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:image href="https://img.transistorcdn.com/Ni1EGZwHwvitSyYppZ-knwaskOeT-psLMzmqB7K6qqI/rs:fill:0:0:1/w:1400/h:1400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS84OWFj/YTFjZDhlZTgyNDFm/ZTg3MTI2MzlmMDBk/Y2ViYi53ZWJw.jpg"/>
      <itunes:duration>677</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Have you ever looked at a colleague's code and thought, "This is clearly wrong," only to find out it was actually a well-reasoned workaround for a tricky bug?</p><p>In the latest episode of the No Compromises podcast, we discuss what happened when Aaron reviewed Joel's code and couldn't make sense of a pattern spread across multiple Livewire components.</p><p>The code wasn't bad, it was solving a real UX flicker bug in an older version of Mary UI. But without context, it looked like a mistake and nearly got rejected. The fix wasn't just refactoring; it was giving the workaround a proper home: a trait with a descriptive name, clear method names, and thorough documentation explaining the bug, the reason for the pattern, and when it can eventually be removed.</p><p>We also talk about why "the explanation is in the PR note" isn't good enough, how AI coding agents can unknowingly propagate patterns they don't understand, and why strange code deserves to look strange, on purpose.</p><p>Explore <a href="https://masteringlaravel.io/courses">Mastering Laravel resources</a> to deepen your understanding of patterns like these.</p><p>00:00 The confusing code review that started this<br>01:15 Flagging the unclear pattern across components<br>03:54 The Mary UI toast flicker bug explained<br>05:45 Naming, documentation, and protecting the whole team<br>09:30 Silly bit</p>]]>
      </itunes:summary>
      <itunes:keywords></itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/3051d3a3/transcript.vtt" type="text/vtt" rel="captions"/>
    </item>
    <item>
      <title>Are you testing your app or just the framework?</title>
      <itunes:episode>148</itunes:episode>
      <podcast:episode>148</podcast:episode>
      <itunes:title>Are you testing your app or just the framework?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">5a3dcbba-2d62-4d36-8a63-8387084c36f2</guid>
      <link>https://share.transistor.fm/s/b10aff66</link>
      <description>
        <![CDATA[<p>Do you ever finish writing a test and wonder if it is actually proving anything about your code or just confirming that Laravel works?</p><p>In the latest episode of the No Compromises podcast, we discuss how to tell the difference between tests that validate your logic and tests that merely exercise the framework.</p><p>We share a practical gut check: if you cannot make a test fail by changing something in your own application code, it probably should not be in your test suite. We also look at this idea from the other direction, asking whether the code being tested is something we actually wrote.</p><p>We also dig into why testing validation rules is worth the effort even when they feel boilerplate, how feature versus unit test style shapes these decisions, and why the real goal is simply getting to a place where your tests help you ask the right questions.</p><p>Join the Mastering Laravel community at https://masteringlaravel.io/community</p><p>00:00 Are we testing code or framework<br>02:00 Joel metric for framework-only tests<br>05:15 Bottom-up testing perspective by test type<br>07:36 Why validation rules still deserve tests<br>10:40 Silly bit</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Do you ever finish writing a test and wonder if it is actually proving anything about your code or just confirming that Laravel works?</p><p>In the latest episode of the No Compromises podcast, we discuss how to tell the difference between tests that validate your logic and tests that merely exercise the framework.</p><p>We share a practical gut check: if you cannot make a test fail by changing something in your own application code, it probably should not be in your test suite. We also look at this idea from the other direction, asking whether the code being tested is something we actually wrote.</p><p>We also dig into why testing validation rules is worth the effort even when they feel boilerplate, how feature versus unit test style shapes these decisions, and why the real goal is simply getting to a place where your tests help you ask the right questions.</p><p>Join the Mastering Laravel community at https://masteringlaravel.io/community</p><p>00:00 Are we testing code or framework<br>02:00 Joel metric for framework-only tests<br>05:15 Bottom-up testing perspective by test type<br>07:36 Why validation rules still deserve tests<br>10:40 Silly bit</p>]]>
      </content:encoded>
      <pubDate>Sat, 14 Mar 2026 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/b10aff66/2dc11eaf.mp3" length="29827617" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:image href="https://img.transistorcdn.com/YchvedyL_JoJYPoJuyy9U5sGqPVFxAtk_XlEOilpAQM/rs:fill:0:0:1/w:1400/h:1400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS84YWQ3/N2IzODljOTY4ODg3/ZTkyODFkZGMwYzY3/MWZjZS53ZWJw.jpg"/>
      <itunes:duration>776</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Do you ever finish writing a test and wonder if it is actually proving anything about your code or just confirming that Laravel works?</p><p>In the latest episode of the No Compromises podcast, we discuss how to tell the difference between tests that validate your logic and tests that merely exercise the framework.</p><p>We share a practical gut check: if you cannot make a test fail by changing something in your own application code, it probably should not be in your test suite. We also look at this idea from the other direction, asking whether the code being tested is something we actually wrote.</p><p>We also dig into why testing validation rules is worth the effort even when they feel boilerplate, how feature versus unit test style shapes these decisions, and why the real goal is simply getting to a place where your tests help you ask the right questions.</p><p>Join the Mastering Laravel community at https://masteringlaravel.io/community</p><p>00:00 Are we testing code or framework<br>02:00 Joel metric for framework-only tests<br>05:15 Bottom-up testing perspective by test type<br>07:36 Why validation rules still deserve tests<br>10:40 Silly bit</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP, Testing, Unit Tests, Feature Tests, Integration Tests, End-to-End Testing, Eloquent, Validation Rules, Framework Testing, Software Development, No Compromises Podcast, Code Quality, Test Boundaries, Laravel Best Practices, Developer Tips</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/b10aff66/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/b10aff66/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Being anti-hype does not mean being anti-AI</title>
      <itunes:episode>147</itunes:episode>
      <podcast:episode>147</podcast:episode>
      <itunes:title>Being anti-hype does not mean being anti-AI</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">05c57f76-4296-4673-b7f4-f6bb7147a8f6</guid>
      <link>https://share.transistor.fm/s/598a04bb</link>
      <description>
        <![CDATA[<p>Does everyone need to have an AI hot take right now, or is there value in waiting until you actually know what you're talking about?</p><p><br>In the latest episode of the No Compromises podcast, we discuss why it took us 147 episodes to finally tackle the topic of AI.</p><p><br>We dig into the tension between wanting to speak with authority and feeling pressure to share before you're ready. Aaron makes the case for building deep knowledge first, while acknowledging that people at every stage of the learning curve play an important role in moving the community forward.</p><p><br>We also talk about how fast the AI landscape is shifting, why zooming out matters more than memorizing details, and why being a slower mover isn't something to apologize for.</p><p></p><ul><li>(00:00) - Why we haven't talked about AI yet</li>
<li>(01:00) - Building deep knowledge before sharing opinions</li>
<li>(02:30) - AI moves faster than JavaScript frameworks</li>
<li>(04:30) - Zoom out before sweating the details</li>
<li>(06:15) - Every stage of the learning cycle matters</li>
<li>(07:45) - Silly bit</li>
</ul><br>Want to get that new AI tip we mentioned? Sign up for the <a href="https://masteringlaravel.io?ref=podcast">Mastering Laravel newsletter</a>.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Does everyone need to have an AI hot take right now, or is there value in waiting until you actually know what you're talking about?</p><p><br>In the latest episode of the No Compromises podcast, we discuss why it took us 147 episodes to finally tackle the topic of AI.</p><p><br>We dig into the tension between wanting to speak with authority and feeling pressure to share before you're ready. Aaron makes the case for building deep knowledge first, while acknowledging that people at every stage of the learning curve play an important role in moving the community forward.</p><p><br>We also talk about how fast the AI landscape is shifting, why zooming out matters more than memorizing details, and why being a slower mover isn't something to apologize for.</p><p></p><ul><li>(00:00) - Why we haven't talked about AI yet</li>
<li>(01:00) - Building deep knowledge before sharing opinions</li>
<li>(02:30) - AI moves faster than JavaScript frameworks</li>
<li>(04:30) - Zoom out before sweating the details</li>
<li>(06:15) - Every stage of the learning cycle matters</li>
<li>(07:45) - Silly bit</li>
</ul><br>Want to get that new AI tip we mentioned? Sign up for the <a href="https://masteringlaravel.io?ref=podcast">Mastering Laravel newsletter</a>.]]>
      </content:encoded>
      <pubDate>Sat, 28 Feb 2026 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/598a04bb/52aec5e4.mp3" length="24045149" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>627</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Does everyone need to have an AI hot take right now, or is there value in waiting until you actually know what you're talking about?</p><p><br>In the latest episode of the No Compromises podcast, we discuss why it took us 147 episodes to finally tackle the topic of AI.</p><p><br>We dig into the tension between wanting to speak with authority and feeling pressure to share before you're ready. Aaron makes the case for building deep knowledge first, while acknowledging that people at every stage of the learning curve play an important role in moving the community forward.</p><p><br>We also talk about how fast the AI landscape is shifting, why zooming out matters more than memorizing details, and why being a slower mover isn't something to apologize for.</p><p></p><ul><li>(00:00) - Why we haven't talked about AI yet</li>
<li>(01:00) - Building deep knowledge before sharing opinions</li>
<li>(02:30) - AI moves faster than JavaScript frameworks</li>
<li>(04:30) - Zoom out before sweating the details</li>
<li>(06:15) - Every stage of the learning cycle matters</li>
<li>(07:45) - Silly bit</li>
</ul><br>Want to get that new AI tip we mentioned? Sign up for the <a href="https://masteringlaravel.io?ref=podcast">Mastering Laravel newsletter</a>.]]>
      </itunes:summary>
      <itunes:keywords>Laravel,php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/598a04bb/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/598a04bb/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Three ways to plan an upgrade when your codebase is a patchwork</title>
      <itunes:episode>146</itunes:episode>
      <podcast:episode>146</podcast:episode>
      <itunes:title>Three ways to plan an upgrade when your codebase is a patchwork</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">9e18358c-5c19-42a4-a25e-151b95fd64cb</guid>
      <link>https://share.transistor.fm/s/912b7642</link>
      <description>
        <![CDATA[<p>When your project has the same thing done three different ways, how do you bring everything up to date with a consistent approach?</p><p>In the latest episode of the No Compromises podcast, we discuss different strategies for tackling upgrades when parts of your codebase are multiple versions behind.</p><p>We walk through two main approaches and weigh the tradeoffs for both the developer doing the work and the person reviewing it.</p><p></p><ul><li>(00:00) - Setting up the upgrade scenario</li>
<li>(02:15) - Approach one: upgrade each area to current</li>
<li>(04:00) - Why the reviewer's experience matters too</li>
<li>(07:30) - A third approach neither one expected</li>
<li>(09:00) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/contact">Want help upgrading your Laravel project?</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>When your project has the same thing done three different ways, how do you bring everything up to date with a consistent approach?</p><p>In the latest episode of the No Compromises podcast, we discuss different strategies for tackling upgrades when parts of your codebase are multiple versions behind.</p><p>We walk through two main approaches and weigh the tradeoffs for both the developer doing the work and the person reviewing it.</p><p></p><ul><li>(00:00) - Setting up the upgrade scenario</li>
<li>(02:15) - Approach one: upgrade each area to current</li>
<li>(04:00) - Why the reviewer's experience matters too</li>
<li>(07:30) - A third approach neither one expected</li>
<li>(09:00) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/contact">Want help upgrading your Laravel project?</a>]]>
      </content:encoded>
      <pubDate>Sat, 14 Feb 2026 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/912b7642/7d98fdcc.mp3" length="22929841" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>599</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>When your project has the same thing done three different ways, how do you bring everything up to date with a consistent approach?</p><p>In the latest episode of the No Compromises podcast, we discuss different strategies for tackling upgrades when parts of your codebase are multiple versions behind.</p><p>We walk through two main approaches and weigh the tradeoffs for both the developer doing the work and the person reviewing it.</p><p></p><ul><li>(00:00) - Setting up the upgrade scenario</li>
<li>(02:15) - Approach one: upgrade each area to current</li>
<li>(04:00) - Why the reviewer's experience matters too</li>
<li>(07:30) - A third approach neither one expected</li>
<li>(09:00) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/contact">Want help upgrading your Laravel project?</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/912b7642/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/912b7642/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Stop doing math in your config files</title>
      <itunes:episode>145</itunes:episode>
      <podcast:episode>145</podcast:episode>
      <itunes:title>Stop doing math in your config files</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ecafc4af-894f-440f-918a-513385b124a1</guid>
      <link>https://share.transistor.fm/s/e3713c07</link>
      <description>
        <![CDATA[<p>Ever feel the urge to write out calculations in your code to make them "self-documenting"?</p><p>In the latest episode of the No Compromises podcast, we discuss why inline math in configuration values is a habit worth breaking.</p><p>Aaron argues that if a value never changes, there's no reason to calculate it every time. A well-placed comment can explain how you got the number without the unnecessary overhead.</p><p>We also cover how comments can clarify units like seconds versus milliseconds, why this thinking applies beyond config files, and how questioning small habits can improve your code overall.</p><p></p><ul><li>(00:00) - How many seconds is five minutes?</li>
<li>(01:45) - The problem with inline config math</li>
<li>(03:45) - Using comments instead of runtime calculations</li>
<li>(05:30) - Why questioning habits improves code</li>
<li>(07:00) - Silly bit</li>
</ul><br>Want a <a href="https://masteringlaravel.io/codereview?ref=podcast">second set of eyes</a> on your Laravel project?]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Ever feel the urge to write out calculations in your code to make them "self-documenting"?</p><p>In the latest episode of the No Compromises podcast, we discuss why inline math in configuration values is a habit worth breaking.</p><p>Aaron argues that if a value never changes, there's no reason to calculate it every time. A well-placed comment can explain how you got the number without the unnecessary overhead.</p><p>We also cover how comments can clarify units like seconds versus milliseconds, why this thinking applies beyond config files, and how questioning small habits can improve your code overall.</p><p></p><ul><li>(00:00) - How many seconds is five minutes?</li>
<li>(01:45) - The problem with inline config math</li>
<li>(03:45) - Using comments instead of runtime calculations</li>
<li>(05:30) - Why questioning habits improves code</li>
<li>(07:00) - Silly bit</li>
</ul><br>Want a <a href="https://masteringlaravel.io/codereview?ref=podcast">second set of eyes</a> on your Laravel project?]]>
      </content:encoded>
      <pubDate>Sat, 31 Jan 2026 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/e3713c07/a859a6c0.mp3" length="21415318" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>560</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Ever feel the urge to write out calculations in your code to make them "self-documenting"?</p><p>In the latest episode of the No Compromises podcast, we discuss why inline math in configuration values is a habit worth breaking.</p><p>Aaron argues that if a value never changes, there's no reason to calculate it every time. A well-placed comment can explain how you got the number without the unnecessary overhead.</p><p>We also cover how comments can clarify units like seconds versus milliseconds, why this thinking applies beyond config files, and how questioning small habits can improve your code overall.</p><p></p><ul><li>(00:00) - How many seconds is five minutes?</li>
<li>(01:45) - The problem with inline config math</li>
<li>(03:45) - Using comments instead of runtime calculations</li>
<li>(05:30) - Why questioning habits improves code</li>
<li>(07:00) - Silly bit</li>
</ul><br>Want a <a href="https://masteringlaravel.io/codereview?ref=podcast">second set of eyes</a> on your Laravel project?]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/e3713c07/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/e3713c07/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>What could be worse than having no tests?</title>
      <itunes:episode>144</itunes:episode>
      <podcast:episode>144</podcast:episode>
      <itunes:title>What could be worse than having no tests?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">655a1e14-8a9e-42bb-bbc1-fdb05d05a677</guid>
      <link>https://share.transistor.fm/s/f2bc1a72</link>
      <description>
        <![CDATA[<p>Found a cool package on Laravel News? But how do you know if it's actually worth installing?</p><p>In the latest episode of the No Compromises podcast, we discuss what we look for when evaluating third-party packages before bringing them into a project.</p><p>Aaron makes the case that what he finds in the tests folder is essentially a deal-breaker: no tests means no trust, but leaving default example tests behind is somehow even worse. Tests reveal whether the maintainer thought through edge cases and serve as living documentation when the README falls short.</p><p>We also cover the other signals we weigh: GitHub stars, download counts, issue responsiveness, and how quickly maintainers keep up with new Laravel versions.</p><p></p><ul><li>(00:00) - Evaluating packages you stumble across</li>
<li>(01:30) - Why leftover example tests frustrate Aaron</li>
<li>(03:45) - Tests as documentation and edge case proof</li>
<li>(05:00) - Checking issues and Laravel version history</li>
<li>(08:00) - Silly bit</li>
</ul><br><a href="https://nocompromises.io?ref=podcast">Want to work with us on your project?</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Found a cool package on Laravel News? But how do you know if it's actually worth installing?</p><p>In the latest episode of the No Compromises podcast, we discuss what we look for when evaluating third-party packages before bringing them into a project.</p><p>Aaron makes the case that what he finds in the tests folder is essentially a deal-breaker: no tests means no trust, but leaving default example tests behind is somehow even worse. Tests reveal whether the maintainer thought through edge cases and serve as living documentation when the README falls short.</p><p>We also cover the other signals we weigh: GitHub stars, download counts, issue responsiveness, and how quickly maintainers keep up with new Laravel versions.</p><p></p><ul><li>(00:00) - Evaluating packages you stumble across</li>
<li>(01:30) - Why leftover example tests frustrate Aaron</li>
<li>(03:45) - Tests as documentation and edge case proof</li>
<li>(05:00) - Checking issues and Laravel version history</li>
<li>(08:00) - Silly bit</li>
</ul><br><a href="https://nocompromises.io?ref=podcast">Want to work with us on your project?</a>]]>
      </content:encoded>
      <pubDate>Sat, 17 Jan 2026 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/f2bc1a72/75f0a5eb.mp3" length="21768027" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>565</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Found a cool package on Laravel News? But how do you know if it's actually worth installing?</p><p>In the latest episode of the No Compromises podcast, we discuss what we look for when evaluating third-party packages before bringing them into a project.</p><p>Aaron makes the case that what he finds in the tests folder is essentially a deal-breaker: no tests means no trust, but leaving default example tests behind is somehow even worse. Tests reveal whether the maintainer thought through edge cases and serve as living documentation when the README falls short.</p><p>We also cover the other signals we weigh: GitHub stars, download counts, issue responsiveness, and how quickly maintainers keep up with new Laravel versions.</p><p></p><ul><li>(00:00) - Evaluating packages you stumble across</li>
<li>(01:30) - Why leftover example tests frustrate Aaron</li>
<li>(03:45) - Tests as documentation and edge case proof</li>
<li>(05:00) - Checking issues and Laravel version history</li>
<li>(08:00) - Silly bit</li>
</ul><br><a href="https://nocompromises.io?ref=podcast">Want to work with us on your project?</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/f2bc1a72/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/f2bc1a72/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Why I changed my mind about down migrations</title>
      <itunes:episode>143</itunes:episode>
      <podcast:episode>143</podcast:episode>
      <itunes:title>Why I changed my mind about down migrations</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">201da5e8-fe91-4ee5-9da2-e7f6ebdb11c6</guid>
      <link>https://share.transistor.fm/s/1d5604d0</link>
      <description>
        <![CDATA[<p>Have you ever built a strong case for something, only to realize later you were solving the wrong problem?</p><p>In the latest episode of the No Compromises podcast, we discuss Aaron's surprising reversal on down migrations, a topic we've publicly discussed on this podcast.</p><p>We walk through the original arguments for writing down migrations and deconstruct each one.</p><p></p><ul><li>(00:00) - The original case for down migrations</li>
<li>(03:45) - Aaron changes his stance</li>
<li>(05:15) - Why seeders beat rollbacks for local dev</li>
<li>(10:30) - Rethinking the production rollback scenario</li>
<li>(14:45) - Silly bit</li>
</ul><br>Keep your knowledge fresh, check out <a href="https://masteringlaravel.io">Mastering Laravel</a>.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Have you ever built a strong case for something, only to realize later you were solving the wrong problem?</p><p>In the latest episode of the No Compromises podcast, we discuss Aaron's surprising reversal on down migrations, a topic we've publicly discussed on this podcast.</p><p>We walk through the original arguments for writing down migrations and deconstruct each one.</p><p></p><ul><li>(00:00) - The original case for down migrations</li>
<li>(03:45) - Aaron changes his stance</li>
<li>(05:15) - Why seeders beat rollbacks for local dev</li>
<li>(10:30) - Rethinking the production rollback scenario</li>
<li>(14:45) - Silly bit</li>
</ul><br>Keep your knowledge fresh, check out <a href="https://masteringlaravel.io">Mastering Laravel</a>.]]>
      </content:encoded>
      <pubDate>Sat, 03 Jan 2026 19:20:55 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/1d5604d0/7a468316.mp3" length="38158877" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>995</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Have you ever built a strong case for something, only to realize later you were solving the wrong problem?</p><p>In the latest episode of the No Compromises podcast, we discuss Aaron's surprising reversal on down migrations, a topic we've publicly discussed on this podcast.</p><p>We walk through the original arguments for writing down migrations and deconstruct each one.</p><p></p><ul><li>(00:00) - The original case for down migrations</li>
<li>(03:45) - Aaron changes his stance</li>
<li>(05:15) - Why seeders beat rollbacks for local dev</li>
<li>(10:30) - Rethinking the production rollback scenario</li>
<li>(14:45) - Silly bit</li>
</ul><br>Keep your knowledge fresh, check out <a href="https://masteringlaravel.io">Mastering Laravel</a>.]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/1d5604d0/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/1d5604d0/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Why senior developers feel wrong more often</title>
      <itunes:episode>142</itunes:episode>
      <podcast:episode>142</podcast:episode>
      <itunes:title>Why senior developers feel wrong more often</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f231657e-b352-4d6c-8ed3-6518a735e891</guid>
      <link>https://share.transistor.fm/s/7da03fb6</link>
      <description>
        <![CDATA[<p>Ever catch yourself second-guessing decisions you were confident about just months ago? Does that mean you're getting worse at your job?</p><p>In the latest episode of the No Compromises podcast, we explore why senior developers often feel "wrong" more frequently than they did earlier in their careers.</p><p>Aaron makes the case that this isn't a sign of declining skill—it's evidence of a richer mental model that reveals nuance where things once seemed black and white.</p><p>We discuss how feedback sources shift with experience, why changing your mind signals growth rather than failure, and how to reframe architectural decisions as a spectrum rather than binary choices.</p><p></p><ul><li>(00:00) - Feeling wrong more often as a senior dev</li>
<li>(01:45) - Knowledge plateaus and how growth resets them</li>
<li>(04:45) - How feedback sources change with experience</li>
<li>(07:00) - Binary thinking versus nuanced decision-making</li>
<li>(09:15) - Silly bit</li>
</ul><br>Want <a href="https://masteringlaravel.io/codereview?ref=podcast">two Laravel experts to review your code</a>?]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Ever catch yourself second-guessing decisions you were confident about just months ago? Does that mean you're getting worse at your job?</p><p>In the latest episode of the No Compromises podcast, we explore why senior developers often feel "wrong" more frequently than they did earlier in their careers.</p><p>Aaron makes the case that this isn't a sign of declining skill—it's evidence of a richer mental model that reveals nuance where things once seemed black and white.</p><p>We discuss how feedback sources shift with experience, why changing your mind signals growth rather than failure, and how to reframe architectural decisions as a spectrum rather than binary choices.</p><p></p><ul><li>(00:00) - Feeling wrong more often as a senior dev</li>
<li>(01:45) - Knowledge plateaus and how growth resets them</li>
<li>(04:45) - How feedback sources change with experience</li>
<li>(07:00) - Binary thinking versus nuanced decision-making</li>
<li>(09:15) - Silly bit</li>
</ul><br>Want <a href="https://masteringlaravel.io/codereview?ref=podcast">two Laravel experts to review your code</a>?]]>
      </content:encoded>
      <pubDate>Sat, 20 Dec 2025 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/7da03fb6/74792f6b.mp3" length="23870813" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>623</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Ever catch yourself second-guessing decisions you were confident about just months ago? Does that mean you're getting worse at your job?</p><p>In the latest episode of the No Compromises podcast, we explore why senior developers often feel "wrong" more frequently than they did earlier in their careers.</p><p>Aaron makes the case that this isn't a sign of declining skill—it's evidence of a richer mental model that reveals nuance where things once seemed black and white.</p><p>We discuss how feedback sources shift with experience, why changing your mind signals growth rather than failure, and how to reframe architectural decisions as a spectrum rather than binary choices.</p><p></p><ul><li>(00:00) - Feeling wrong more often as a senior dev</li>
<li>(01:45) - Knowledge plateaus and how growth resets them</li>
<li>(04:45) - How feedback sources change with experience</li>
<li>(07:00) - Binary thinking versus nuanced decision-making</li>
<li>(09:15) - Silly bit</li>
</ul><br>Want <a href="https://masteringlaravel.io/codereview?ref=podcast">two Laravel experts to review your code</a>?]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/7da03fb6/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/7da03fb6/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Should you ever hand-format code?</title>
      <itunes:episode>141</itunes:episode>
      <podcast:episode>141</podcast:episode>
      <itunes:title>Should you ever hand-format code?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f56ce902-8e96-422c-a433-d4eaca1e5341</guid>
      <link>https://share.transistor.fm/s/1ce54ca7</link>
      <description>
        <![CDATA[<p>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?<br>  <br>In the latest episode of the No Compromises podcast, we discuss when to trust auto-formatters and when to nudge code by hand. </p><p>Aaron makes the case that a few mindful minutes of “prettying up” can unblock harder thinking, without surrendering judgment to tools. </p><p>We set limits on this approach, share a tiered break strategy, and make it clear why you still own what the formatter changes.</p><p></p><ul><li>(00:00) - Auto-formatters vs subjective style choices    </li>
<li>(01:15) - Edge cases tools miss and human tweaks</li>
<li>(03:15) - Using light formatting to unlock hard problems</li>
<li>(05:15) - A tiered break strategy for focus</li>
<li>(07:00) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/codereview?ref=podcast">Want two Laravel experts to review your code?</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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?<br>  <br>In the latest episode of the No Compromises podcast, we discuss when to trust auto-formatters and when to nudge code by hand. </p><p>Aaron makes the case that a few mindful minutes of “prettying up” can unblock harder thinking, without surrendering judgment to tools. </p><p>We set limits on this approach, share a tiered break strategy, and make it clear why you still own what the formatter changes.</p><p></p><ul><li>(00:00) - Auto-formatters vs subjective style choices    </li>
<li>(01:15) - Edge cases tools miss and human tweaks</li>
<li>(03:15) - Using light formatting to unlock hard problems</li>
<li>(05:15) - A tiered break strategy for focus</li>
<li>(07:00) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/codereview?ref=podcast">Want two Laravel experts to review your code?</a>]]>
      </content:encoded>
      <pubDate>Sat, 06 Dec 2025 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/1ce54ca7/7492fdc8.mp3" length="17641555" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>463</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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?<br>  <br>In the latest episode of the No Compromises podcast, we discuss when to trust auto-formatters and when to nudge code by hand. </p><p>Aaron makes the case that a few mindful minutes of “prettying up” can unblock harder thinking, without surrendering judgment to tools. </p><p>We set limits on this approach, share a tiered break strategy, and make it clear why you still own what the formatter changes.</p><p></p><ul><li>(00:00) - Auto-formatters vs subjective style choices    </li>
<li>(01:15) - Edge cases tools miss and human tweaks</li>
<li>(03:15) - Using light formatting to unlock hard problems</li>
<li>(05:15) - A tiered break strategy for focus</li>
<li>(07:00) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/codereview?ref=podcast">Want two Laravel experts to review your code?</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/1ce54ca7/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/1ce54ca7/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Discussing different ways to model data</title>
      <itunes:episode>140</itunes:episode>
      <podcast:episode>140</podcast:episode>
      <itunes:title>Discussing different ways to model data</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ec1caf50-cce7-4be6-9a96-4f7a3ed26c52</guid>
      <link>https://share.transistor.fm/s/b5e7da9b</link>
      <description>
        <![CDATA[<p>It's easy to overcomplicate data modeling, especially when enums, relationships, and future requirements are in play.  <br>  <br>In the latest episode of the No Compromises podcast, Joel brings Aaron a real-world technical dilemma: how to model a relationship between two models when types are stored as enums, not models.  <br>  <br>We discuss the pros and cons of pivot tables versus JSON columns, the importance of context before jumping to solutions, and how developer instincts can sometimes get in the way of clarity.</p><p></p><ul><li>(00:00) - Setting up the technical problem</li>
<li>(02:00) - Pivot tables vs JSON columns</li>
<li>(05:15) - Filtering and validation considerations</li>
<li>(07:15) - Deciding on the best approach</li>
<li>(09:50) - Silly bit</li>
</ul><br>Would you like us to <a href="https://masteringlaravel.io/contact?ref=podcast">review your code or application architecture</a>?]]>
      </description>
      <content:encoded>
        <![CDATA[<p>It's easy to overcomplicate data modeling, especially when enums, relationships, and future requirements are in play.  <br>  <br>In the latest episode of the No Compromises podcast, Joel brings Aaron a real-world technical dilemma: how to model a relationship between two models when types are stored as enums, not models.  <br>  <br>We discuss the pros and cons of pivot tables versus JSON columns, the importance of context before jumping to solutions, and how developer instincts can sometimes get in the way of clarity.</p><p></p><ul><li>(00:00) - Setting up the technical problem</li>
<li>(02:00) - Pivot tables vs JSON columns</li>
<li>(05:15) - Filtering and validation considerations</li>
<li>(07:15) - Deciding on the best approach</li>
<li>(09:50) - Silly bit</li>
</ul><br>Would you like us to <a href="https://masteringlaravel.io/contact?ref=podcast">review your code or application architecture</a>?]]>
      </content:encoded>
      <pubDate>Sat, 22 Nov 2025 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/b5e7da9b/5e305b68.mp3" length="27224281" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>710</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>It's easy to overcomplicate data modeling, especially when enums, relationships, and future requirements are in play.  <br>  <br>In the latest episode of the No Compromises podcast, Joel brings Aaron a real-world technical dilemma: how to model a relationship between two models when types are stored as enums, not models.  <br>  <br>We discuss the pros and cons of pivot tables versus JSON columns, the importance of context before jumping to solutions, and how developer instincts can sometimes get in the way of clarity.</p><p></p><ul><li>(00:00) - Setting up the technical problem</li>
<li>(02:00) - Pivot tables vs JSON columns</li>
<li>(05:15) - Filtering and validation considerations</li>
<li>(07:15) - Deciding on the best approach</li>
<li>(09:50) - Silly bit</li>
</ul><br>Would you like us to <a href="https://masteringlaravel.io/contact?ref=podcast">review your code or application architecture</a>?]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/b5e7da9b/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/b5e7da9b/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Read outside tech to expand your horizons</title>
      <itunes:episode>139</itunes:episode>
      <podcast:episode>139</podcast:episode>
      <itunes:title>Read outside tech to expand your horizons</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">5753cd6d-21d0-44fb-9119-df487c7f36de</guid>
      <link>https://share.transistor.fm/s/0a497c23</link>
      <description>
        <![CDATA[<p>It's easy to get so laser-focused on programming and tech, that you close yourself off to other avenues of learning.</p><p>In the latest episode of the No Compromises podcast, Aaron argues that non-tech reading can sharpen your engineering thinking.</p><p>We discuss balancing breadth without diluting focus, and how to turn casual reading into active learning with quick capture habits.</p><p></p><ul><li>(00:00) - An example from a book on business</li>
<li>(03:30) - Don’t go too broad</li>
<li>(05:15) - Practice active learning</li>
<li>(07:15) - Read something different</li>
<li>(07:30) - Silly bit</li>
</ul><br>You should still <a href="https://masteringlaravel.io/books?ref=podcast">read our Laravel books</a> though.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>It's easy to get so laser-focused on programming and tech, that you close yourself off to other avenues of learning.</p><p>In the latest episode of the No Compromises podcast, Aaron argues that non-tech reading can sharpen your engineering thinking.</p><p>We discuss balancing breadth without diluting focus, and how to turn casual reading into active learning with quick capture habits.</p><p></p><ul><li>(00:00) - An example from a book on business</li>
<li>(03:30) - Don’t go too broad</li>
<li>(05:15) - Practice active learning</li>
<li>(07:15) - Read something different</li>
<li>(07:30) - Silly bit</li>
</ul><br>You should still <a href="https://masteringlaravel.io/books?ref=podcast">read our Laravel books</a> though.]]>
      </content:encoded>
      <pubDate>Sat, 08 Nov 2025 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/0a497c23/c894cbd6.mp3" length="22474011" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>584</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>It's easy to get so laser-focused on programming and tech, that you close yourself off to other avenues of learning.</p><p>In the latest episode of the No Compromises podcast, Aaron argues that non-tech reading can sharpen your engineering thinking.</p><p>We discuss balancing breadth without diluting focus, and how to turn casual reading into active learning with quick capture habits.</p><p></p><ul><li>(00:00) - An example from a book on business</li>
<li>(03:30) - Don’t go too broad</li>
<li>(05:15) - Practice active learning</li>
<li>(07:15) - Read something different</li>
<li>(07:30) - Silly bit</li>
</ul><br>You should still <a href="https://masteringlaravel.io/books?ref=podcast">read our Laravel books</a> though.]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/0a497c23/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/0a497c23/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Rewriting without a map: shipping an MVP from a legacy app</title>
      <itunes:episode>138</itunes:episode>
      <podcast:episode>138</podcast:episode>
      <itunes:title>Rewriting without a map: shipping an MVP from a legacy app</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">910e6b60-3659-4188-b848-938a1d3c3ac9</guid>
      <link>https://share.transistor.fm/s/edbd798b</link>
      <description>
        <![CDATA[<p>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." </p><p>In the latest episode of the No Compromises podcast, we share a lightweight framework for agreeing on an MVP, tagging "post-MVP" ideas, and negotiating trade-offs while still making progress.</p><p>We walk through practical tactics for parallelizing work and learning as you go.</p><p></p><ul><li>(00:00) - Rebuilding an old system without copying its flaws</li>
<li>(02:00) - Two extremes: too many specs or none at all</li>
<li>(03:00) - MVP tension: ship value vs. future wishes</li>
<li>(04:45) - Define MVP, capture unknowns as post-MVP tickets</li>
<li>(05:30) - Build the first slice and learn</li>
<li>(07:00) - Code foundations while refining scope</li>
<li>(08:30) - Trade-offs as collaboration, not confrontation    </li>
<li>(09:30) - Takeaway: progress, check-ins, iterate together</li>
<li>(10:00) - Silly bit</li>
</ul><br>Want to join one of our <a href="https://masteringlaravel.io/community?ref=podcast">community dev calls</a>?]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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." </p><p>In the latest episode of the No Compromises podcast, we share a lightweight framework for agreeing on an MVP, tagging "post-MVP" ideas, and negotiating trade-offs while still making progress.</p><p>We walk through practical tactics for parallelizing work and learning as you go.</p><p></p><ul><li>(00:00) - Rebuilding an old system without copying its flaws</li>
<li>(02:00) - Two extremes: too many specs or none at all</li>
<li>(03:00) - MVP tension: ship value vs. future wishes</li>
<li>(04:45) - Define MVP, capture unknowns as post-MVP tickets</li>
<li>(05:30) - Build the first slice and learn</li>
<li>(07:00) - Code foundations while refining scope</li>
<li>(08:30) - Trade-offs as collaboration, not confrontation    </li>
<li>(09:30) - Takeaway: progress, check-ins, iterate together</li>
<li>(10:00) - Silly bit</li>
</ul><br>Want to join one of our <a href="https://masteringlaravel.io/community?ref=podcast">community dev calls</a>?]]>
      </content:encoded>
      <pubDate>Sat, 25 Oct 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/edbd798b/0f961bbc.mp3" length="27483917" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>713</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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." </p><p>In the latest episode of the No Compromises podcast, we share a lightweight framework for agreeing on an MVP, tagging "post-MVP" ideas, and negotiating trade-offs while still making progress.</p><p>We walk through practical tactics for parallelizing work and learning as you go.</p><p></p><ul><li>(00:00) - Rebuilding an old system without copying its flaws</li>
<li>(02:00) - Two extremes: too many specs or none at all</li>
<li>(03:00) - MVP tension: ship value vs. future wishes</li>
<li>(04:45) - Define MVP, capture unknowns as post-MVP tickets</li>
<li>(05:30) - Build the first slice and learn</li>
<li>(07:00) - Code foundations while refining scope</li>
<li>(08:30) - Trade-offs as collaboration, not confrontation    </li>
<li>(09:30) - Takeaway: progress, check-ins, iterate together</li>
<li>(10:00) - Silly bit</li>
</ul><br>Want to join one of our <a href="https://masteringlaravel.io/community?ref=podcast">community dev calls</a>?]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/edbd798b/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/edbd798b/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>A composable, versioned toolkit for Laravel projects</title>
      <itunes:episode>137</itunes:episode>
      <podcast:episode>137</podcast:episode>
      <itunes:title>A composable, versioned toolkit for Laravel projects</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e4161092-f76b-41f1-b943-58fd05e128db</guid>
      <link>https://share.transistor.fm/s/8f9be373</link>
      <description>
        <![CDATA[<p>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.</p><p>In the latest episode of the No Compromises podcast, we rethink our “project standard” repo. Instead of a full Laravel skeleton, we propose a composable library of tool-specific, versioned configs (PHPUnit, Docker, etc.). </p><p>We walk through the benefits for greenfield and legacy work, open questions about test organization, and how this approach scales as tools evolve.</p><p></p><ul><li>(00:00) - Why we keep our tooling current</li>
<li>(00:15) - The “project standard” repo is aging</li>
<li>(01:30) - Reference guide vs installable skeleton</li>
<li>(02:30) - Supporting old and new stacks (versions, tags)</li>
<li>(03:30) - Pivot: organize by tool and version, not app</li>
<li>(04:30) - Example plan: folders for PHPUnit 11/12 (and beyond)</li>
<li>(05:15) - What belongs where? Tests, traits, and context</li>
<li>(10:00) - Docker-first thinking; where Horizon config lives</li>
<li>(11:15) - Open questions: PHPUnit vs Pest vs “testing” folder</li>
<li>(12:15) - Takeaway: evolve the repo as the tools evolve</li>
<li>(12:45) - Silly bit</li>
</ul><br><a href="https://nocompromises.io?ref=podcast">Want help making your project as organized as one of our projects?</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>In the latest episode of the No Compromises podcast, we rethink our “project standard” repo. Instead of a full Laravel skeleton, we propose a composable library of tool-specific, versioned configs (PHPUnit, Docker, etc.). </p><p>We walk through the benefits for greenfield and legacy work, open questions about test organization, and how this approach scales as tools evolve.</p><p></p><ul><li>(00:00) - Why we keep our tooling current</li>
<li>(00:15) - The “project standard” repo is aging</li>
<li>(01:30) - Reference guide vs installable skeleton</li>
<li>(02:30) - Supporting old and new stacks (versions, tags)</li>
<li>(03:30) - Pivot: organize by tool and version, not app</li>
<li>(04:30) - Example plan: folders for PHPUnit 11/12 (and beyond)</li>
<li>(05:15) - What belongs where? Tests, traits, and context</li>
<li>(10:00) - Docker-first thinking; where Horizon config lives</li>
<li>(11:15) - Open questions: PHPUnit vs Pest vs “testing” folder</li>
<li>(12:15) - Takeaway: evolve the repo as the tools evolve</li>
<li>(12:45) - Silly bit</li>
</ul><br><a href="https://nocompromises.io?ref=podcast">Want help making your project as organized as one of our projects?</a>]]>
      </content:encoded>
      <pubDate>Sat, 11 Oct 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/8f9be373/c04de317.mp3" length="32164391" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>835</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>In the latest episode of the No Compromises podcast, we rethink our “project standard” repo. Instead of a full Laravel skeleton, we propose a composable library of tool-specific, versioned configs (PHPUnit, Docker, etc.). </p><p>We walk through the benefits for greenfield and legacy work, open questions about test organization, and how this approach scales as tools evolve.</p><p></p><ul><li>(00:00) - Why we keep our tooling current</li>
<li>(00:15) - The “project standard” repo is aging</li>
<li>(01:30) - Reference guide vs installable skeleton</li>
<li>(02:30) - Supporting old and new stacks (versions, tags)</li>
<li>(03:30) - Pivot: organize by tool and version, not app</li>
<li>(04:30) - Example plan: folders for PHPUnit 11/12 (and beyond)</li>
<li>(05:15) - What belongs where? Tests, traits, and context</li>
<li>(10:00) - Docker-first thinking; where Horizon config lives</li>
<li>(11:15) - Open questions: PHPUnit vs Pest vs “testing” folder</li>
<li>(12:15) - Takeaway: evolve the repo as the tools evolve</li>
<li>(12:45) - Silly bit</li>
</ul><br><a href="https://nocompromises.io?ref=podcast">Want help making your project as organized as one of our projects?</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/8f9be373/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/8f9be373/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Should you use DTOs in Laravel?</title>
      <itunes:episode>136</itunes:episode>
      <podcast:episode>136</podcast:episode>
      <itunes:title>Should you use DTOs in Laravel?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ee3f3c72-0bf0-4283-8e13-3830b7d95b7d</guid>
      <link>https://share.transistor.fm/s/d05a9f95</link>
      <description>
        <![CDATA[<p>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.</p><p>In the latest episode of the No Compromises podcast, we weigh the pros and cons of DTOs in everyday Laravel apps, comparing them to form requests, PHPDoc-typed arrays, and service-layer boundaries, and share one area where DTOs truly shine. </p><p>The takeaway: keep DTOs in the toolbox, but reach for them intentionally, not by habit.</p><p></p><ul><li>(00:00) - Framing DTOs in a stricter PHP world</li>
<li>(01:15) - Our current practice: hybrids, few true DTOs</li>
<li>(02:45) - Form requests, `safe()`, and typed inputs</li>
<li>(03:45) - Reuse across API and form layers rarely aligns</li>
<li>(04:30) - Where DTOs shine: normalizing multiple APIs</li>
<li>(05:45) - Service boundaries: wrapping vendor objects (e.g., Stripe)</li>
<li>(06:15) - PHPDoc-typed arrays vs DTO overhead</li>
<li>(06:45) - Conventions, Larastan levels, and avoiding ceremony</li>
<li>(07:45) - Treat DTOs as a tool, not a rule</li>
<li>(09:15) - Silly bit</li>
</ul><br>Want to discuss how we can <a href="https://calendly.com/nocomp/30min">help you with an architecture review</a>?]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>In the latest episode of the No Compromises podcast, we weigh the pros and cons of DTOs in everyday Laravel apps, comparing them to form requests, PHPDoc-typed arrays, and service-layer boundaries, and share one area where DTOs truly shine. </p><p>The takeaway: keep DTOs in the toolbox, but reach for them intentionally, not by habit.</p><p></p><ul><li>(00:00) - Framing DTOs in a stricter PHP world</li>
<li>(01:15) - Our current practice: hybrids, few true DTOs</li>
<li>(02:45) - Form requests, `safe()`, and typed inputs</li>
<li>(03:45) - Reuse across API and form layers rarely aligns</li>
<li>(04:30) - Where DTOs shine: normalizing multiple APIs</li>
<li>(05:45) - Service boundaries: wrapping vendor objects (e.g., Stripe)</li>
<li>(06:15) - PHPDoc-typed arrays vs DTO overhead</li>
<li>(06:45) - Conventions, Larastan levels, and avoiding ceremony</li>
<li>(07:45) - Treat DTOs as a tool, not a rule</li>
<li>(09:15) - Silly bit</li>
</ul><br>Want to discuss how we can <a href="https://calendly.com/nocomp/30min">help you with an architecture review</a>?]]>
      </content:encoded>
      <pubDate>Sat, 27 Sep 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/d05a9f95/25583eba.mp3" length="23510387" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>610</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>In the latest episode of the No Compromises podcast, we weigh the pros and cons of DTOs in everyday Laravel apps, comparing them to form requests, PHPDoc-typed arrays, and service-layer boundaries, and share one area where DTOs truly shine. </p><p>The takeaway: keep DTOs in the toolbox, but reach for them intentionally, not by habit.</p><p></p><ul><li>(00:00) - Framing DTOs in a stricter PHP world</li>
<li>(01:15) - Our current practice: hybrids, few true DTOs</li>
<li>(02:45) - Form requests, `safe()`, and typed inputs</li>
<li>(03:45) - Reuse across API and form layers rarely aligns</li>
<li>(04:30) - Where DTOs shine: normalizing multiple APIs</li>
<li>(05:45) - Service boundaries: wrapping vendor objects (e.g., Stripe)</li>
<li>(06:15) - PHPDoc-typed arrays vs DTO overhead</li>
<li>(06:45) - Conventions, Larastan levels, and avoiding ceremony</li>
<li>(07:45) - Treat DTOs as a tool, not a rule</li>
<li>(09:15) - Silly bit</li>
</ul><br>Want to discuss how we can <a href="https://calendly.com/nocomp/30min">help you with an architecture review</a>?]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/d05a9f95/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/d05a9f95/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Sunsetting a company app without loose ends</title>
      <itunes:episode>135</itunes:episode>
      <podcast:episode>135</podcast:episode>
      <itunes:title>Sunsetting a company app without loose ends</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">dcd8040e-ad4d-4b3f-a448-e246539b3d62</guid>
      <link>https://share.transistor.fm/s/705481c9</link>
      <description>
        <![CDATA[<p>Business change and projects end, but how do you wrap up and sunset an app, especially one you've worked on for years?</p><p>In the latest episode of the No Compromises podcast, we share a practical checklist for winding down an app when the whole company is closing. From documenting services and dependencies to deciding what data to retain, we cover backups, credentials, and why deleting local copies matters for security and sanity.</p><p></p><ul><li>(00:00) - Sunsetting a company vs project handoff</li>
<li>(02:15) - First goals: stop charges, purge data</li>
<li>(03:45) - Document before shutting anything off</li>
<li>(04:15) - Use README/PRODUCTION.md and password manager</li>
<li>(05:45) - Decide on retaining code, DB, uploads</li>
<li>(07:15) - Hunt secrets in .gitignore and dotfiles</li>
<li>(09:15) - Delete local containers and repos by default</li>
<li>(11:30) - Silly bit</li>
</ul><br>Want peace of mind that your project is ready for whatever happens in the future. <a href="https://calendly.com/nocomp/30min">Schedule a call with us today.</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Business change and projects end, but how do you wrap up and sunset an app, especially one you've worked on for years?</p><p>In the latest episode of the No Compromises podcast, we share a practical checklist for winding down an app when the whole company is closing. From documenting services and dependencies to deciding what data to retain, we cover backups, credentials, and why deleting local copies matters for security and sanity.</p><p></p><ul><li>(00:00) - Sunsetting a company vs project handoff</li>
<li>(02:15) - First goals: stop charges, purge data</li>
<li>(03:45) - Document before shutting anything off</li>
<li>(04:15) - Use README/PRODUCTION.md and password manager</li>
<li>(05:45) - Decide on retaining code, DB, uploads</li>
<li>(07:15) - Hunt secrets in .gitignore and dotfiles</li>
<li>(09:15) - Delete local containers and repos by default</li>
<li>(11:30) - Silly bit</li>
</ul><br>Want peace of mind that your project is ready for whatever happens in the future. <a href="https://calendly.com/nocomp/30min">Schedule a call with us today.</a>]]>
      </content:encoded>
      <pubDate>Sat, 13 Sep 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/705481c9/6690307e.mp3" length="32199197" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>835</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Business change and projects end, but how do you wrap up and sunset an app, especially one you've worked on for years?</p><p>In the latest episode of the No Compromises podcast, we share a practical checklist for winding down an app when the whole company is closing. From documenting services and dependencies to deciding what data to retain, we cover backups, credentials, and why deleting local copies matters for security and sanity.</p><p></p><ul><li>(00:00) - Sunsetting a company vs project handoff</li>
<li>(02:15) - First goals: stop charges, purge data</li>
<li>(03:45) - Document before shutting anything off</li>
<li>(04:15) - Use README/PRODUCTION.md and password manager</li>
<li>(05:45) - Decide on retaining code, DB, uploads</li>
<li>(07:15) - Hunt secrets in .gitignore and dotfiles</li>
<li>(09:15) - Delete local containers and repos by default</li>
<li>(11:30) - Silly bit</li>
</ul><br>Want peace of mind that your project is ready for whatever happens in the future. <a href="https://calendly.com/nocomp/30min">Schedule a call with us today.</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/705481c9/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/705481c9/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>When building a UI makes more sense than bloating your seeders</title>
      <itunes:episode>134</itunes:episode>
      <podcast:episode>134</podcast:episode>
      <itunes:title>When building a UI makes more sense than bloating your seeders</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">a19fa9d7-daad-4202-ac47-a82cc51e9507</guid>
      <link>https://share.transistor.fm/s/357288bb</link>
      <description>
        <![CDATA[<p>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? </p><p>In the latest episode of the No Compromises podcast, we dive into a real project where starting with the most complex feature made test data management painful. Instead of exploding the complexity of our seeders, we built a minimal UI to manage test data. </p><p>We also talk about some other unexpected benefits, and talk through the trade-offs and why detours like this should feel uncomfortable (and be tightly scoped).</p><p></p><ul><li>(00:00) - Starting deep exposes messy user permutations</li>
<li>(02:45) - Seeder explosion vs. a minimal UI</li>
<li>(03:45) - Reframing the “detour” after using it</li>
<li>(05:30) - Why the mini-UI helped: faster iteration, fewer seed resets</li>
<li>(07:45) - Dogfooding + tester debugging benefits</li>
<li>(08:00) - Guardrails: detours should feel uneasy and stay tight</li>
<li>(09:00) - Silly bit</li>
</ul><br>Need help on your Laravel project? <a href="https://nocompromises.io?ref=podcast">Hire two experts and accelerate your progress.</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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? </p><p>In the latest episode of the No Compromises podcast, we dive into a real project where starting with the most complex feature made test data management painful. Instead of exploding the complexity of our seeders, we built a minimal UI to manage test data. </p><p>We also talk about some other unexpected benefits, and talk through the trade-offs and why detours like this should feel uncomfortable (and be tightly scoped).</p><p></p><ul><li>(00:00) - Starting deep exposes messy user permutations</li>
<li>(02:45) - Seeder explosion vs. a minimal UI</li>
<li>(03:45) - Reframing the “detour” after using it</li>
<li>(05:30) - Why the mini-UI helped: faster iteration, fewer seed resets</li>
<li>(07:45) - Dogfooding + tester debugging benefits</li>
<li>(08:00) - Guardrails: detours should feel uneasy and stay tight</li>
<li>(09:00) - Silly bit</li>
</ul><br>Need help on your Laravel project? <a href="https://nocompromises.io?ref=podcast">Hire two experts and accelerate your progress.</a>]]>
      </content:encoded>
      <pubDate>Sat, 30 Aug 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/357288bb/ecea6c32.mp3" length="27175728" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>709</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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? </p><p>In the latest episode of the No Compromises podcast, we dive into a real project where starting with the most complex feature made test data management painful. Instead of exploding the complexity of our seeders, we built a minimal UI to manage test data. </p><p>We also talk about some other unexpected benefits, and talk through the trade-offs and why detours like this should feel uncomfortable (and be tightly scoped).</p><p></p><ul><li>(00:00) - Starting deep exposes messy user permutations</li>
<li>(02:45) - Seeder explosion vs. a minimal UI</li>
<li>(03:45) - Reframing the “detour” after using it</li>
<li>(05:30) - Why the mini-UI helped: faster iteration, fewer seed resets</li>
<li>(07:45) - Dogfooding + tester debugging benefits</li>
<li>(08:00) - Guardrails: detours should feel uneasy and stay tight</li>
<li>(09:00) - Silly bit</li>
</ul><br>Need help on your Laravel project? <a href="https://nocompromises.io?ref=podcast">Hire two experts and accelerate your progress.</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/357288bb/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/357288bb/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Blade includes vs components: how we decide</title>
      <itunes:episode>133</itunes:episode>
      <podcast:episode>133</podcast:episode>
      <itunes:title>Blade includes vs components: how we decide</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">fa6cf1c9-4b61-4c12-bd5d-02ff0aa4067c</guid>
      <link>https://share.transistor.fm/s/e1200f77</link>
      <description>
        <![CDATA[<p>Blade gives you two big levers for keeping views maintainable: @include and Blade components.<br>When should you use one versus the other?<br>Does it matter?</p><p>In the latest episode of the No Compromises podcast, we lay out a clear heuristic for when to extract markup for organization (includes) versus when to encapsulate and reuse with controlled scope (components).</p><p>We also touch on scope pitfalls, “passing for documentation,” and why performance worries usually lie elsewhere.</p><p>Sign up for the free <a href="https://masteringlaravel.io?ref=podcast">Mastering Laravel newsletter</a>. The highest value-to-time ratio you will find.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Blade gives you two big levers for keeping views maintainable: @include and Blade components.<br>When should you use one versus the other?<br>Does it matter?</p><p>In the latest episode of the No Compromises podcast, we lay out a clear heuristic for when to extract markup for organization (includes) versus when to encapsulate and reuse with controlled scope (components).</p><p>We also touch on scope pitfalls, “passing for documentation,” and why performance worries usually lie elsewhere.</p><p>Sign up for the free <a href="https://masteringlaravel.io?ref=podcast">Mastering Laravel newsletter</a>. The highest value-to-time ratio you will find.</p>]]>
      </content:encoded>
      <pubDate>Sat, 16 Aug 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/e1200f77/7ce8d839.mp3" length="36797789" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>955</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Blade gives you two big levers for keeping views maintainable: @include and Blade components.<br>When should you use one versus the other?<br>Does it matter?</p><p>In the latest episode of the No Compromises podcast, we lay out a clear heuristic for when to extract markup for organization (includes) versus when to encapsulate and reuse with controlled scope (components).</p><p>We also touch on scope pitfalls, “passing for documentation,” and why performance worries usually lie elsewhere.</p><p>Sign up for the free <a href="https://masteringlaravel.io?ref=podcast">Mastering Laravel newsletter</a>. The highest value-to-time ratio you will find.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/e1200f77/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/e1200f77/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Changing your mind about when() and unless() in Eloquent</title>
      <itunes:episode>132</itunes:episode>
      <podcast:episode>132</podcast:episode>
      <itunes:title>Changing your mind about when() and unless() in Eloquent</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">3ad11fdb-796d-4a96-ac37-4b4f30482cfa</guid>
      <link>https://share.transistor.fm/s/664d231e</link>
      <description>
        <![CDATA[<p>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, debate readability trade-offs, and share guidelines for deciding which style to use. Along the way they discuss false assumptions, evolving “code grammar,” and how tools such as Rector can automate the switch.</p><p></p><ul><li>(00:00) - Intro – refining long-held opinions</li>
<li>(00:45) - Aaron’s original “query-then-if” pattern</li>
<li>(01:45) - Why when() first felt clumsy (closures, scopes, extra params)</li>
<li>(03:45) - Arrow functions &amp; smaller conditions make when() nicer</li>
<li>(05:00) - Joel’s lingering objection: avoiding unless() for readability</li>
<li>(06:45) - Seeing the same helper everywhere changes minds</li>
<li>(08:30) - Takeaways – keep revisiting old habits as Laravel evolves</li>
<li>(09:30) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/contact?ref=podcast">Want help</a> learning how to more quickly refactor and standardize your app with Rector?]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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, debate readability trade-offs, and share guidelines for deciding which style to use. Along the way they discuss false assumptions, evolving “code grammar,” and how tools such as Rector can automate the switch.</p><p></p><ul><li>(00:00) - Intro – refining long-held opinions</li>
<li>(00:45) - Aaron’s original “query-then-if” pattern</li>
<li>(01:45) - Why when() first felt clumsy (closures, scopes, extra params)</li>
<li>(03:45) - Arrow functions &amp; smaller conditions make when() nicer</li>
<li>(05:00) - Joel’s lingering objection: avoiding unless() for readability</li>
<li>(06:45) - Seeing the same helper everywhere changes minds</li>
<li>(08:30) - Takeaways – keep revisiting old habits as Laravel evolves</li>
<li>(09:30) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/contact?ref=podcast">Want help</a> learning how to more quickly refactor and standardize your app with Rector?]]>
      </content:encoded>
      <pubDate>Sat, 02 Aug 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/664d231e/c3bda97b.mp3" length="25475176" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>662</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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, debate readability trade-offs, and share guidelines for deciding which style to use. Along the way they discuss false assumptions, evolving “code grammar,” and how tools such as Rector can automate the switch.</p><p></p><ul><li>(00:00) - Intro – refining long-held opinions</li>
<li>(00:45) - Aaron’s original “query-then-if” pattern</li>
<li>(01:45) - Why when() first felt clumsy (closures, scopes, extra params)</li>
<li>(03:45) - Arrow functions &amp; smaller conditions make when() nicer</li>
<li>(05:00) - Joel’s lingering objection: avoiding unless() for readability</li>
<li>(06:45) - Seeing the same helper everywhere changes minds</li>
<li>(08:30) - Takeaways – keep revisiting old habits as Laravel evolves</li>
<li>(09:30) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/contact?ref=podcast">Want help</a> learning how to more quickly refactor and standardize your app with Rector?]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/664d231e/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/664d231e/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Finding a code-review style that fits your brain</title>
      <itunes:episode>131</itunes:episode>
      <podcast:episode>131</podcast:episode>
      <itunes:title>Finding a code-review style that fits your brain</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">b025191e-951c-4794-ba48-62df3a45d2bc</guid>
      <link>https://share.transistor.fm/s/53db10c3</link>
      <description>
        <![CDATA[<p>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 leaving yourself notes, spotting hidden changes, and keeping large refactors under control.</p><p></p><ul><li>(00:00) - The “gift” of a pull request and the pain of huge PRs</li>
<li>(02:30) - Joel’s commit-by-commit strategy and where it helps</li>
<li>(04:50) - Aaron’s Tetris-style holistic review (and leaving self-notes)</li>
<li>(07:45) - When atomic commits backfire and trust becomes a factor</li>
<li>(08:45) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io?ref=podcast">Sign up for the newsletter</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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 leaving yourself notes, spotting hidden changes, and keeping large refactors under control.</p><p></p><ul><li>(00:00) - The “gift” of a pull request and the pain of huge PRs</li>
<li>(02:30) - Joel’s commit-by-commit strategy and where it helps</li>
<li>(04:50) - Aaron’s Tetris-style holistic review (and leaving self-notes)</li>
<li>(07:45) - When atomic commits backfire and trust becomes a factor</li>
<li>(08:45) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io?ref=podcast">Sign up for the newsletter</a>]]>
      </content:encoded>
      <pubDate>Sat, 19 Jul 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/53db10c3/75c9cee8.mp3" length="37917922" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>980</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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 leaving yourself notes, spotting hidden changes, and keeping large refactors under control.</p><p></p><ul><li>(00:00) - The “gift” of a pull request and the pain of huge PRs</li>
<li>(02:30) - Joel’s commit-by-commit strategy and where it helps</li>
<li>(04:50) - Aaron’s Tetris-style holistic review (and leaving self-notes)</li>
<li>(07:45) - When atomic commits backfire and trust becomes a factor</li>
<li>(08:45) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io?ref=podcast">Sign up for the newsletter</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/53db10c3/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/53db10c3/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Never take hostages: give clients control from day one</title>
      <itunes:episode>130</itunes:episode>
      <podcast:episode>130</podcast:episode>
      <itunes:title>Never take hostages: give clients control from day one</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">3ab5cbf9-1d53-4c25-85db-08495179fbbd</guid>
      <link>https://share.transistor.fm/s/8d92fbba</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Intro &amp; episode setup</li>
<li>(01:15) - Create the repo in their org</li>
<li>(02:15) - Quick hack versus right process</li>
<li>(03:30) - Project-setup technical-debt risks</li>
<li>(05:00) - Declaring non-negotiables to clients</li>
<li>(06:45) - Docs that survive “hit-by-bus” events</li>
<li>(08:00) - Solo-dev reputation boosters</li>
<li>(08:45) - Silly bit</li>
</ul><br>Want to <a href="https://masteringlaravel.io?ref=podcast">level up your skills as a Laravel developer</a>?]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Intro &amp; episode setup</li>
<li>(01:15) - Create the repo in their org</li>
<li>(02:15) - Quick hack versus right process</li>
<li>(03:30) - Project-setup technical-debt risks</li>
<li>(05:00) - Declaring non-negotiables to clients</li>
<li>(06:45) - Docs that survive “hit-by-bus” events</li>
<li>(08:00) - Solo-dev reputation boosters</li>
<li>(08:45) - Silly bit</li>
</ul><br>Want to <a href="https://masteringlaravel.io?ref=podcast">level up your skills as a Laravel developer</a>?]]>
      </content:encoded>
      <pubDate>Sat, 05 Jul 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/8d92fbba/8878777a.mp3" length="25261094" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>655</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Intro &amp; episode setup</li>
<li>(01:15) - Create the repo in their org</li>
<li>(02:15) - Quick hack versus right process</li>
<li>(03:30) - Project-setup technical-debt risks</li>
<li>(05:00) - Declaring non-negotiables to clients</li>
<li>(06:45) - Docs that survive “hit-by-bus” events</li>
<li>(08:00) - Solo-dev reputation boosters</li>
<li>(08:45) - Silly bit</li>
</ul><br>Want to <a href="https://masteringlaravel.io?ref=podcast">level up your skills as a Laravel developer</a>?]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/8d92fbba/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/8d92fbba/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Balancing test coverage without chasing 100 percent</title>
      <itunes:episode>129</itunes:episode>
      <podcast:episode>129</podcast:episode>
      <itunes:title>Balancing test coverage without chasing 100 percent</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">edab17e3-744e-483c-82fe-5867e0c54c39</guid>
      <link>https://share.transistor.fm/s/08c0276c</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Testing passion vs. shipping work</li>
<li>(01:00) - Coverage tells you what’s missing</li>
<li>(03:45) - Picking a baseline metric that grows</li>
<li>(06:15) - Draw the line between logic and UI tests</li>
<li>(12:45) - Silly bit</li>
</ul><br>Want help getting started with your test coverage? Going from 0% to 1% is the hardest step. <a href="https://calendly.com/nocomp/30min?month=2025-06">We can help!</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Testing passion vs. shipping work</li>
<li>(01:00) - Coverage tells you what’s missing</li>
<li>(03:45) - Picking a baseline metric that grows</li>
<li>(06:15) - Draw the line between logic and UI tests</li>
<li>(12:45) - Silly bit</li>
</ul><br>Want help getting started with your test coverage? Going from 0% to 1% is the hardest step. <a href="https://calendly.com/nocomp/30min?month=2025-06">We can help!</a>]]>
      </content:encoded>
      <pubDate>Sat, 21 Jun 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/08c0276c/a8a863f5.mp3" length="36277667" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>941</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Testing passion vs. shipping work</li>
<li>(01:00) - Coverage tells you what’s missing</li>
<li>(03:45) - Picking a baseline metric that grows</li>
<li>(06:15) - Draw the line between logic and UI tests</li>
<li>(12:45) - Silly bit</li>
</ul><br>Want help getting started with your test coverage? Going from 0% to 1% is the hardest step. <a href="https://calendly.com/nocomp/30min?month=2025-06">We can help!</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/08c0276c/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/08c0276c/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Exploratory coding when requirements are fuzzy</title>
      <itunes:episode>128</itunes:episode>
      <podcast:episode>128</podcast:episode>
      <itunes:title>Exploratory coding when requirements are fuzzy</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">27b957b8-3ff4-46b4-b7ef-72873ac1dabc</guid>
      <link>https://share.transistor.fm/s/46495bb6</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Bridging two APIs with minimal specs</li>
<li>(03:30) - Choosing an exploratory workflow over full UI</li>
<li>(06:00) - Console closures for quick, testable steps</li>
<li>(09:15) - Hand-off strategy: letting others poke the prototype</li>
<li>(11:45) - Silly bit</li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Bridging two APIs with minimal specs</li>
<li>(03:30) - Choosing an exploratory workflow over full UI</li>
<li>(06:00) - Console closures for quick, testable steps</li>
<li>(09:15) - Hand-off strategy: letting others poke the prototype</li>
<li>(11:45) - Silly bit</li>
</ul>]]>
      </content:encoded>
      <pubDate>Sat, 07 Jun 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/46495bb6/f69a31d2.mp3" length="35178270" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>919</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Bridging two APIs with minimal specs</li>
<li>(03:30) - Choosing an exploratory workflow over full UI</li>
<li>(06:00) - Console closures for quick, testable steps</li>
<li>(09:15) - Hand-off strategy: letting others poke the prototype</li>
<li>(11:45) - Silly bit</li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords>laravel,php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/46495bb6/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/46495bb6/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Understanding how Stringable works inside Blade views</title>
      <itunes:episode>127</itunes:episode>
      <podcast:episode>127</podcast:episode>
      <itunes:title>Understanding how Stringable works inside Blade views</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7564124f-eed2-41d0-b413-6804ffb69e9d</guid>
      <link>https://share.transistor.fm/s/95a916cf</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Stringable can sidestep Blade escaping</li>
<li>(03:45) - Dangers of outputting unsanitized HTML</li>
<li>(05:45) - Defensive strategies for safe rendering</li>
<li>(08:45) - Silly bit</li>
</ul><br>Sign up for a short, but useful, Laravel tip each day in <a href="https://masteringlaravel.io">our newsletter</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Stringable can sidestep Blade escaping</li>
<li>(03:45) - Dangers of outputting unsanitized HTML</li>
<li>(05:45) - Defensive strategies for safe rendering</li>
<li>(08:45) - Silly bit</li>
</ul><br>Sign up for a short, but useful, Laravel tip each day in <a href="https://masteringlaravel.io">our newsletter</a>]]>
      </content:encoded>
      <pubDate>Sat, 24 May 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/95a916cf/41bbdcf7.mp3" length="25431399" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>658</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Stringable can sidestep Blade escaping</li>
<li>(03:45) - Dangers of outputting unsanitized HTML</li>
<li>(05:45) - Defensive strategies for safe rendering</li>
<li>(08:45) - Silly bit</li>
</ul><br>Sign up for a short, but useful, Laravel tip each day in <a href="https://masteringlaravel.io">our newsletter</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/95a916cf/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/95a916cf/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Finishing up our discussion on not having time</title>
      <itunes:episode>126</itunes:episode>
      <podcast:episode>126</podcast:episode>
      <itunes:title>Finishing up our discussion on not having time</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">77aeab81-552f-48f6-8c60-5b38cf3c63c3</guid>
      <link>https://share.transistor.fm/s/21aad96b</link>
      <description>
        <![CDATA[<p>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 hear a quick mental exercise for elevating true priorities and concrete tactics for transforming “someday” into forward motion today.</p><p></p><ul><li>(00:00) - “No time” excuses hide real priorities</li>
<li>(01:45) - Sell improvements by proving clear payoff</li>
<li>(04:15) - Face hidden conflicts and track gains</li>
<li>(08:30) - Reframe tasks with a priority‑shift exercise</li>
<li>(10:30) - Silly bit</li>
</ul><br>Reading <a href="https://nocompromises.gumroad.com?ref=podcast">one of our awesome books</a> "takes time" but will make you a better developer.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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 hear a quick mental exercise for elevating true priorities and concrete tactics for transforming “someday” into forward motion today.</p><p></p><ul><li>(00:00) - “No time” excuses hide real priorities</li>
<li>(01:45) - Sell improvements by proving clear payoff</li>
<li>(04:15) - Face hidden conflicts and track gains</li>
<li>(08:30) - Reframe tasks with a priority‑shift exercise</li>
<li>(10:30) - Silly bit</li>
</ul><br>Reading <a href="https://nocompromises.gumroad.com?ref=podcast">one of our awesome books</a> "takes time" but will make you a better developer.]]>
      </content:encoded>
      <pubDate>Sat, 10 May 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/21aad96b/084095bd.mp3" length="27064738" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>701</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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 hear a quick mental exercise for elevating true priorities and concrete tactics for transforming “someday” into forward motion today.</p><p></p><ul><li>(00:00) - “No time” excuses hide real priorities</li>
<li>(01:45) - Sell improvements by proving clear payoff</li>
<li>(04:15) - Face hidden conflicts and track gains</li>
<li>(08:30) - Reframe tasks with a priority‑shift exercise</li>
<li>(10:30) - Silly bit</li>
</ul><br>Reading <a href="https://nocompromises.gumroad.com?ref=podcast">one of our awesome books</a> "takes time" but will make you a better developer.]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/21aad96b/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/21aad96b/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Why “no time” really means “no priority”</title>
      <itunes:episode>125</itunes:episode>
      <podcast:episode>125</podcast:episode>
      <itunes:title>Why “no time” really means “no priority”</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">4e5906ef-78ba-4117-af39-0cb99e5a162f</guid>
      <link>https://share.transistor.fm/s/59bf4ee4</link>
      <description>
        <![CDATA[<p>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 habits, or any other change.</p><p></p><ul><li>(00:00) - “No time” excuse versus priorities</li>
<li>(01:45) - Selling the value of improvements</li>
<li>(03:45) - Sharing real before‑and‑after stories</li>
<li>(05:15) - Balancing honesty with motivation</li>
<li>(09:15) - Silly bit</li>
</ul><br>Stay tuned for part 2... Until then, there's always <a href="https://masteringlaravel.io?ref=podcast">https://masteringlaravel.io</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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 habits, or any other change.</p><p></p><ul><li>(00:00) - “No time” excuse versus priorities</li>
<li>(01:45) - Selling the value of improvements</li>
<li>(03:45) - Sharing real before‑and‑after stories</li>
<li>(05:15) - Balancing honesty with motivation</li>
<li>(09:15) - Silly bit</li>
</ul><br>Stay tuned for part 2... Until then, there's always <a href="https://masteringlaravel.io?ref=podcast">https://masteringlaravel.io</a>]]>
      </content:encoded>
      <pubDate>Sat, 26 Apr 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/59bf4ee4/d6d06e69.mp3" length="26538694" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>687</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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 habits, or any other change.</p><p></p><ul><li>(00:00) - “No time” excuse versus priorities</li>
<li>(01:45) - Selling the value of improvements</li>
<li>(03:45) - Sharing real before‑and‑after stories</li>
<li>(05:15) - Balancing honesty with motivation</li>
<li>(09:15) - Silly bit</li>
</ul><br>Stay tuned for part 2... Until then, there's always <a href="https://masteringlaravel.io?ref=podcast">https://masteringlaravel.io</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/59bf4ee4/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/59bf4ee4/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>When validation can protect your app's performance</title>
      <itunes:episode>124</itunes:episode>
      <podcast:episode>124</podcast:episode>
      <itunes:title>When validation can protect your app's performance</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">26205e30-ae4c-44e7-921a-668549917d13</guid>
      <link>https://share.transistor.fm/s/5cbe2b53</link>
      <description>
        <![CDATA[<p>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.</p><p>Now go check out the best/only <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Laravel validation book</a></p><p></p><ul><li>(00:00) - Quiz on Laravel’s default pagination limit</li>
<li>(01:00) - Performance concerns with large datasets</li>
<li>(03:20) - Validating per-page requests in controllers</li>
<li>(05:45) - Why you should block negative page numbers</li>
<li>(09:20) - Silly bit</li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Now go check out the best/only <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Laravel validation book</a></p><p></p><ul><li>(00:00) - Quiz on Laravel’s default pagination limit</li>
<li>(01:00) - Performance concerns with large datasets</li>
<li>(03:20) - Validating per-page requests in controllers</li>
<li>(05:45) - Why you should block negative page numbers</li>
<li>(09:20) - Silly bit</li>
</ul>]]>
      </content:encoded>
      <pubDate>Sat, 12 Apr 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/5cbe2b53/6f6663c6.mp3" length="28393574" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>732</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Now go check out the best/only <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Laravel validation book</a></p><p></p><ul><li>(00:00) - Quiz on Laravel’s default pagination limit</li>
<li>(01:00) - Performance concerns with large datasets</li>
<li>(03:20) - Validating per-page requests in controllers</li>
<li>(05:45) - Why you should block negative page numbers</li>
<li>(09:20) - Silly bit</li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/5cbe2b53/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/5cbe2b53/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Stick with conventions and avoid overengineering your Laravel app</title>
      <itunes:episode>123</itunes:episode>
      <podcast:episode>123</podcast:episode>
      <itunes:title>Stick with conventions and avoid overengineering your Laravel app</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">594bf0cb-59f0-49b5-9c99-d88061814695</guid>
      <link>https://share.transistor.fm/s/e6f2bd58</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Why framework paradigms really matter</li>
<li>(01:00) - When extra abstractions become burdens</li>
<li>(03:00) - Balancing creativity with Laravel’s conventions</li>
<li>(05:15) - Keeping code easy to revisit</li>
<li>(06:45) - silly bit</li>
</ul><br>Need help digging your project out of technical debt? <a href="https://nocompromises.io?ref=podcast">We can help!</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Why framework paradigms really matter</li>
<li>(01:00) - When extra abstractions become burdens</li>
<li>(03:00) - Balancing creativity with Laravel’s conventions</li>
<li>(05:15) - Keeping code easy to revisit</li>
<li>(06:45) - silly bit</li>
</ul><br>Need help digging your project out of technical debt? <a href="https://nocompromises.io?ref=podcast">We can help!</a>]]>
      </content:encoded>
      <pubDate>Sat, 29 Mar 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/e6f2bd58/4e28b6c0.mp3" length="20176373" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>521</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Why framework paradigms really matter</li>
<li>(01:00) - When extra abstractions become burdens</li>
<li>(03:00) - Balancing creativity with Laravel’s conventions</li>
<li>(05:15) - Keeping code easy to revisit</li>
<li>(06:45) - silly bit</li>
</ul><br>Need help digging your project out of technical debt? <a href="https://nocompromises.io?ref=podcast">We can help!</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/e6f2bd58/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/e6f2bd58/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>When to bring in outside help</title>
      <itunes:episode>122</itunes:episode>
      <podcast:episode>122</podcast:episode>
      <itunes:title>When to bring in outside help</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">9667a7ef-d9d1-48c5-9d31-e8168e816e19</guid>
      <link>https://share.transistor.fm/s/0ee39993</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Determining why you need outside expertise</li>
<li>(02:15) - Pinpointing the real problem (skill gap or strategy)</li>
<li>(05:00) - Deciding between hands-on help or coaching</li>
<li>(08:30) - Learning to ask the right questions</li>
<li>(09:15) - Silly bit</li>
</ul><br>Here is a way to explore <a href="https://nocompromises.io?ref=podcast">how we could help your project</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Determining why you need outside expertise</li>
<li>(02:15) - Pinpointing the real problem (skill gap or strategy)</li>
<li>(05:00) - Deciding between hands-on help or coaching</li>
<li>(08:30) - Learning to ask the right questions</li>
<li>(09:15) - Silly bit</li>
</ul><br>Here is a way to explore <a href="https://nocompromises.io?ref=podcast">how we could help your project</a>]]>
      </content:encoded>
      <pubDate>Sat, 15 Mar 2025 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/0ee39993/0af600f1.mp3" length="25414289" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>657</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Determining why you need outside expertise</li>
<li>(02:15) - Pinpointing the real problem (skill gap or strategy)</li>
<li>(05:00) - Deciding between hands-on help or coaching</li>
<li>(08:30) - Learning to ask the right questions</li>
<li>(09:15) - Silly bit</li>
</ul><br>Here is a way to explore <a href="https://nocompromises.io?ref=podcast">how we could help your project</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/0ee39993/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/0ee39993/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Why two databases are better than one</title>
      <itunes:episode>121</itunes:episode>
      <podcast:episode>121</podcast:episode>
      <itunes:title>Why two databases are better than one</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">0910a7e1-2033-4da0-aaae-7b9d0b5591ca</guid>
      <link>https://share.transistor.fm/s/3ce441ef</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Why separate dev and test databases</li>
<li>(02:15) - Automating database setup with seeders</li>
<li>(05:00) - Avoiding flaky tests and migration pitfalls</li>
<li>(09:00) - Reimagining old habits with new practices</li>
<li>(12:00) - Silly bit</li>
</ul><br>Sign up for the <a href="https://masteringlaravel.io?ref=podcast">free Mastering Laravel newsletter</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Why separate dev and test databases</li>
<li>(02:15) - Automating database setup with seeders</li>
<li>(05:00) - Avoiding flaky tests and migration pitfalls</li>
<li>(09:00) - Reimagining old habits with new practices</li>
<li>(12:00) - Silly bit</li>
</ul><br>Sign up for the <a href="https://masteringlaravel.io?ref=podcast">free Mastering Laravel newsletter</a>]]>
      </content:encoded>
      <pubDate>Sat, 01 Mar 2025 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/3ce441ef/a81fe3e0.mp3" length="34418713" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>889</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Why separate dev and test databases</li>
<li>(02:15) - Automating database setup with seeders</li>
<li>(05:00) - Avoiding flaky tests and migration pitfalls</li>
<li>(09:00) - Reimagining old habits with new practices</li>
<li>(12:00) - Silly bit</li>
</ul><br>Sign up for the <a href="https://masteringlaravel.io?ref=podcast">free Mastering Laravel newsletter</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/3ce441ef/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/3ce441ef/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Dealing with being a beginner again</title>
      <itunes:episode>120</itunes:episode>
      <podcast:episode>120</podcast:episode>
      <itunes:title>Dealing with being a beginner again</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">cd6d48e0-5da0-4ea8-b5ac-d15ce19b3b13</guid>
      <link>https://share.transistor.fm/s/9ef76431</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Late-night MicroPython struggles and revelations</li>
<li>(02:15) - Overcoming complex hardware and language hurdles</li>
<li>(05:15) - Balancing side projects with realistic expectations</li>
<li>(10:30) - Silly bit</li>
</ul><br>Don't be a stranger. Check out the <a href="https://masteringlaravel.io/community?ref=podcast">Mastering Laravel community</a>.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Late-night MicroPython struggles and revelations</li>
<li>(02:15) - Overcoming complex hardware and language hurdles</li>
<li>(05:15) - Balancing side projects with realistic expectations</li>
<li>(10:30) - Silly bit</li>
</ul><br>Don't be a stranger. Check out the <a href="https://masteringlaravel.io/community?ref=podcast">Mastering Laravel community</a>.]]>
      </content:encoded>
      <pubDate>Sat, 15 Feb 2025 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/9ef76431/6dafdcc6.mp3" length="32471447" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>851</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Late-night MicroPython struggles and revelations</li>
<li>(02:15) - Overcoming complex hardware and language hurdles</li>
<li>(05:15) - Balancing side projects with realistic expectations</li>
<li>(10:30) - Silly bit</li>
</ul><br>Don't be a stranger. Check out the <a href="https://masteringlaravel.io/community?ref=podcast">Mastering Laravel community</a>.]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/9ef76431/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/9ef76431/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Making short demo videos count</title>
      <itunes:episode>119</itunes:episode>
      <podcast:episode>119</podcast:episode>
      <itunes:title>Making short demo videos count</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">1d33f6d4-d988-4cdf-b317-5a3de05ca46d</guid>
      <link>https://share.transistor.fm/s/2dbebf89</link>
      <description>
        <![CDATA[<p>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.</p><p>Want to see us on camera? Join the <a href="https://masteringlaravel.io/community?ref=podcast">Mastering Laravel community</a> for our live dev calls.</p><p></p><ul><li>(00:00) - Recording brief Loom demos for updates</li>
<li>(02:15) - Considering audience and communication style</li>
<li>(05:00) - Video calls vs. text-based explanations</li>
<li>(07:45) - Silly bit</li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Want to see us on camera? Join the <a href="https://masteringlaravel.io/community?ref=podcast">Mastering Laravel community</a> for our live dev calls.</p><p></p><ul><li>(00:00) - Recording brief Loom demos for updates</li>
<li>(02:15) - Considering audience and communication style</li>
<li>(05:00) - Video calls vs. text-based explanations</li>
<li>(07:45) - Silly bit</li>
</ul>]]>
      </content:encoded>
      <pubDate>Sat, 01 Feb 2025 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/2dbebf89/0c279c49.mp3" length="22084434" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>577</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Want to see us on camera? Join the <a href="https://masteringlaravel.io/community?ref=podcast">Mastering Laravel community</a> for our live dev calls.</p><p></p><ul><li>(00:00) - Recording brief Loom demos for updates</li>
<li>(02:15) - Considering audience and communication style</li>
<li>(05:00) - Video calls vs. text-based explanations</li>
<li>(07:45) - Silly bit</li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords></itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/2dbebf89/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/2dbebf89/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Examining test layering in multi-tenant requests</title>
      <itunes:episode>118</itunes:episode>
      <podcast:episode>118</podcast:episode>
      <itunes:title>Examining test layering in multi-tenant requests</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">3985c4a8-5071-4069-ad76-d4620c6629ce</guid>
      <link>https://share.transistor.fm/s/6b6efc1b</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Debating authentication vs. tenant header priority</li>
<li>(02:15) - Handling unusual requirements in request tests</li>
<li>(05:00) - Navigating multi-layer middleware concerns</li>
<li>(08:30) - Balancing thoroughness and test coverage</li>
<li>(12:00) - Silly bit</li>
</ul><br>Want some advice on writing better tests for your app? <a href="https://masteringlaravel.io?ref=podcast">Contact us.</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Debating authentication vs. tenant header priority</li>
<li>(02:15) - Handling unusual requirements in request tests</li>
<li>(05:00) - Navigating multi-layer middleware concerns</li>
<li>(08:30) - Balancing thoroughness and test coverage</li>
<li>(12:00) - Silly bit</li>
</ul><br>Want some advice on writing better tests for your app? <a href="https://masteringlaravel.io?ref=podcast">Contact us.</a>]]>
      </content:encoded>
      <pubDate>Sat, 18 Jan 2025 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/6b6efc1b/6609695d.mp3" length="31022628" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>812</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Debating authentication vs. tenant header priority</li>
<li>(02:15) - Handling unusual requirements in request tests</li>
<li>(05:00) - Navigating multi-layer middleware concerns</li>
<li>(08:30) - Balancing thoroughness and test coverage</li>
<li>(12:00) - Silly bit</li>
</ul><br>Want some advice on writing better tests for your app? <a href="https://masteringlaravel.io?ref=podcast">Contact us.</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/6b6efc1b/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/6b6efc1b/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>When to step outside of Eloquent's comfort zone</title>
      <itunes:episode>117</itunes:episode>
      <podcast:episode>117</podcast:episode>
      <itunes:title>When to step outside of Eloquent's comfort zone</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">25d06a91-8726-4bff-895f-e041b803062f</guid>
      <link>https://share.transistor.fm/s/c67a7c21</link>
      <description>
        <![CDATA[<p>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 performance needs.</p><p></p><ul><li>(00:00) - Exploring when to step outside framework defaults</li>
<li>(02:30) - Handling complex sorting with related tables</li>
<li>(05:25) - Balancing Eloquent features with DB builder tools</li>
<li>(07:15) - Important considerations when dropping to lower level DB access</li>
<li>(10:00) - Silly Bit</li>
</ul><br>Check out the <a href="https://masteringlaravel.io/community">Mastering Laravel community</a>.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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 performance needs.</p><p></p><ul><li>(00:00) - Exploring when to step outside framework defaults</li>
<li>(02:30) - Handling complex sorting with related tables</li>
<li>(05:25) - Balancing Eloquent features with DB builder tools</li>
<li>(07:15) - Important considerations when dropping to lower level DB access</li>
<li>(10:00) - Silly Bit</li>
</ul><br>Check out the <a href="https://masteringlaravel.io/community">Mastering Laravel community</a>.]]>
      </content:encoded>
      <pubDate>Sat, 04 Jan 2025 08:16:06 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/c67a7c21/a97e4160.mp3" length="28794275" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>748</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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 performance needs.</p><p></p><ul><li>(00:00) - Exploring when to step outside framework defaults</li>
<li>(02:30) - Handling complex sorting with related tables</li>
<li>(05:25) - Balancing Eloquent features with DB builder tools</li>
<li>(07:15) - Important considerations when dropping to lower level DB access</li>
<li>(10:00) - Silly Bit</li>
</ul><br>Check out the <a href="https://masteringlaravel.io/community">Mastering Laravel community</a>.]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/c67a7c21/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/c67a7c21/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Feature flags: Temporary tool or permanent solution?</title>
      <itunes:episode>116</itunes:episode>
      <podcast:episode>116</podcast:episode>
      <itunes:title>Feature flags: Temporary tool or permanent solution?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">613ced20-ffc1-42ce-baea-97db8ed79277</guid>
      <link>https://share.transistor.fm/s/b950dba2</link>
      <description>
        <![CDATA[<p>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 into deeper insights about different architectural approaches.</p><p></p><ul><li>(00:00) - Newsletter tips undergo careful peer review process</li>
<li>(02:15) - Debating if feature flags should be temporary</li>
<li>(05:25) - Different uses of feature flags across languages</li>
<li>(07:20) - Feature flags in modern Laravel applications</li>
<li>(08:35) - Silly Bit</li>
</ul><br>Sign up for free to get <a href="https://masteringlaravel.io?ref=podcast">those amazing Laravel tips delivered each day</a> ]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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 into deeper insights about different architectural approaches.</p><p></p><ul><li>(00:00) - Newsletter tips undergo careful peer review process</li>
<li>(02:15) - Debating if feature flags should be temporary</li>
<li>(05:25) - Different uses of feature flags across languages</li>
<li>(07:20) - Feature flags in modern Laravel applications</li>
<li>(08:35) - Silly Bit</li>
</ul><br>Sign up for free to get <a href="https://masteringlaravel.io?ref=podcast">those amazing Laravel tips delivered each day</a> ]]>
      </content:encoded>
      <pubDate>Sat, 21 Dec 2024 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/b950dba2/3855eedb.mp3" length="23634088" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>613</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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 into deeper insights about different architectural approaches.</p><p></p><ul><li>(00:00) - Newsletter tips undergo careful peer review process</li>
<li>(02:15) - Debating if feature flags should be temporary</li>
<li>(05:25) - Different uses of feature flags across languages</li>
<li>(07:20) - Feature flags in modern Laravel applications</li>
<li>(08:35) - Silly Bit</li>
</ul><br>Sign up for free to get <a href="https://masteringlaravel.io?ref=podcast">those amazing Laravel tips delivered each day</a> ]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/b950dba2/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/b950dba2/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Deciding when to use a new piece of technology</title>
      <itunes:episode>115</itunes:episode>
      <podcast:episode>115</podcast:episode>
      <itunes:title>Deciding when to use a new piece of technology</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6d70376d-e077-4364-95ba-607e39774854</guid>
      <link>https://share.transistor.fm/s/a8f49898</link>
      <description>
        <![CDATA[<p>Ooh, something new was just announced. And I have this project coming up. It could be perfect! But should I use it?</p><p>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.</p><p></p><ul><li>(00:00) - Discussing potential Flux adoption in Bootstrap project</li>
<li>(01:00) - Flux explained: Livewire-based UI component library</li>
<li>(04:45) - Risk assessment of adding new technologies</li>
<li>(06:00) - Extra risk for a 1.0</li>
<li>(08:45) - When new tech might be worth the risk</li>
<li>(11:50) - Silly Bit</li>
</ul><br>Want <a href="https://nocompromises.io?ref=podcast">calm, reasonable developers</a> like us to help with your project?]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Ooh, something new was just announced. And I have this project coming up. It could be perfect! But should I use it?</p><p>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.</p><p></p><ul><li>(00:00) - Discussing potential Flux adoption in Bootstrap project</li>
<li>(01:00) - Flux explained: Livewire-based UI component library</li>
<li>(04:45) - Risk assessment of adding new technologies</li>
<li>(06:00) - Extra risk for a 1.0</li>
<li>(08:45) - When new tech might be worth the risk</li>
<li>(11:50) - Silly Bit</li>
</ul><br>Want <a href="https://nocompromises.io?ref=podcast">calm, reasonable developers</a> like us to help with your project?]]>
      </content:encoded>
      <pubDate>Sat, 07 Dec 2024 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/a8f49898/d7c968be.mp3" length="33355618" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>866</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Ooh, something new was just announced. And I have this project coming up. It could be perfect! But should I use it?</p><p>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.</p><p></p><ul><li>(00:00) - Discussing potential Flux adoption in Bootstrap project</li>
<li>(01:00) - Flux explained: Livewire-based UI component library</li>
<li>(04:45) - Risk assessment of adding new technologies</li>
<li>(06:00) - Extra risk for a 1.0</li>
<li>(08:45) - When new tech might be worth the risk</li>
<li>(11:50) - Silly Bit</li>
</ul><br>Want <a href="https://nocompromises.io?ref=podcast">calm, reasonable developers</a> like us to help with your project?]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/a8f49898/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/a8f49898/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Taking liberties with value objects</title>
      <itunes:episode>114</itunes:episode>
      <podcast:episode>114</podcast:episode>
      <itunes:title>Taking liberties with value objects</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">5471e92e-02b8-4c7f-80dc-d76df027c66a</guid>
      <link>https://share.transistor.fm/s/e57d3b69</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - What I mean by "value object"</li>
<li>(03:00) - Nicer to do in newer PHP versions</li>
<li>(04:00) - Main use case for value objects</li>
<li>(05:30) - Use them for everything then?</li>
<li>(09:00) - A second reason to use a value object</li>
<li>(10:45) - Silly bit</li>
</ul><br>Sign up for our newsletter and get short, <a href="https://masteringlaravel.io/?ref=podcast">practical Laravel tips</a> delivered fresh to your inbox.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - What I mean by "value object"</li>
<li>(03:00) - Nicer to do in newer PHP versions</li>
<li>(04:00) - Main use case for value objects</li>
<li>(05:30) - Use them for everything then?</li>
<li>(09:00) - A second reason to use a value object</li>
<li>(10:45) - Silly bit</li>
</ul><br>Sign up for our newsletter and get short, <a href="https://masteringlaravel.io/?ref=podcast">practical Laravel tips</a> delivered fresh to your inbox.]]>
      </content:encoded>
      <pubDate>Sat, 23 Nov 2024 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/e57d3b69/fb3eeaa9.mp3" length="28530263" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>743</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - What I mean by "value object"</li>
<li>(03:00) - Nicer to do in newer PHP versions</li>
<li>(04:00) - Main use case for value objects</li>
<li>(05:30) - Use them for everything then?</li>
<li>(09:00) - A second reason to use a value object</li>
<li>(10:45) - Silly bit</li>
</ul><br>Sign up for our newsletter and get short, <a href="https://masteringlaravel.io/?ref=podcast">practical Laravel tips</a> delivered fresh to your inbox.]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/e57d3b69/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/e57d3b69/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>How to deal with things outside your control on a dev project</title>
      <itunes:episode>113</itunes:episode>
      <podcast:episode>113</podcast:episode>
      <itunes:title>How to deal with things outside your control on a dev project</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">77a327cf-06c9-48f7-ba8a-5bb3350bd09d</guid>
      <link>https://share.transistor.fm/s/13d40381</link>
      <description>
        <![CDATA[<p>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?</p><p>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 having boundaries.</p><p>And if you're looking for help on your Laravel project, <a href="https://nocompromises.io?ref=podcast">get in touch</a>!</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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?</p><p>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 having boundaries.</p><p>And if you're looking for help on your Laravel project, <a href="https://nocompromises.io?ref=podcast">get in touch</a>!</p>]]>
      </content:encoded>
      <pubDate>Sat, 09 Nov 2024 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/13d40381/97016ee4.mp3" length="24205681" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>626</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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?</p><p>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 having boundaries.</p><p>And if you're looking for help on your Laravel project, <a href="https://nocompromises.io?ref=podcast">get in touch</a>!</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/13d40381/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/13d40381/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Should we use a JSON field for this?</title>
      <itunes:episode>112</itunes:episode>
      <podcast:episode>112</podcast:episode>
      <itunes:title>Should we use a JSON field for this?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">103831bd-e6f1-435a-bc3e-093904e68dbe</guid>
      <link>https://share.transistor.fm/s/8b618a8f</link>
      <description>
        <![CDATA[<p>JSON fields can be very useful, but when is a good time to include them in your database design? </p><p>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.</p><p></p><ul><li>(00:00) - Debating JSON fields in database design</li>
<li>(03:06) - Configuration options: JSON vs. relational tables</li>
<li>(07:05) - Real-world example: label customization dilemma</li>
<li>(11:30) - Silly bit</li>
</ul><br>Want a place to ask any question related to Laravel development? Check out the <a href="https://masteringlaravel.io/community?ref=podcast">Mastering Laravel community</a>.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>JSON fields can be very useful, but when is a good time to include them in your database design? </p><p>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.</p><p></p><ul><li>(00:00) - Debating JSON fields in database design</li>
<li>(03:06) - Configuration options: JSON vs. relational tables</li>
<li>(07:05) - Real-world example: label customization dilemma</li>
<li>(11:30) - Silly bit</li>
</ul><br>Want a place to ask any question related to Laravel development? Check out the <a href="https://masteringlaravel.io/community?ref=podcast">Mastering Laravel community</a>.]]>
      </content:encoded>
      <pubDate>Tue, 29 Oct 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/8b618a8f/6774264c.mp3" length="33245400" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>860</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>JSON fields can be very useful, but when is a good time to include them in your database design? </p><p>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.</p><p></p><ul><li>(00:00) - Debating JSON fields in database design</li>
<li>(03:06) - Configuration options: JSON vs. relational tables</li>
<li>(07:05) - Real-world example: label customization dilemma</li>
<li>(11:30) - Silly bit</li>
</ul><br>Want a place to ask any question related to Laravel development? Check out the <a href="https://masteringlaravel.io/community?ref=podcast">Mastering Laravel community</a>.]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/8b618a8f/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/8b618a8f/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>A balanced approach to static analysis in Laravel apps</title>
      <itunes:episode>111</itunes:episode>
      <podcast:episode>111</podcast:episode>
      <itunes:title>A balanced approach to static analysis in Laravel apps</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">64be140c-87d6-4916-a1a4-d1a81d786edf</guid>
      <link>https://share.transistor.fm/s/85bb4443</link>
      <description>
        <![CDATA[<p>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. </p><p>In today's episode, we talk about how we approach the tradeoffs around making a tool happy without changing how you write code.</p><p></p><ul><li>(00:00) - Our approach to static analysis in a Laravel app</li>
<li>(01:30) - Using PHPDoc inline</li>
<li>(03:00) - When Laravel doesn't quite give you the type you want</li>
<li>(05:00) - A different approach than inline types</li>
<li>(06:30) - Are you just making the tool happy?</li>
<li>(07:45) - An example of going too far</li>
<li>(10:10) - Silly bit</li>
</ul><br>Check out the <a href="https://nocompromises.gumroad.com?ref=podcast">newly published volumes of Laravel tips</a>. Collect them all!]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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. </p><p>In today's episode, we talk about how we approach the tradeoffs around making a tool happy without changing how you write code.</p><p></p><ul><li>(00:00) - Our approach to static analysis in a Laravel app</li>
<li>(01:30) - Using PHPDoc inline</li>
<li>(03:00) - When Laravel doesn't quite give you the type you want</li>
<li>(05:00) - A different approach than inline types</li>
<li>(06:30) - Are you just making the tool happy?</li>
<li>(07:45) - An example of going too far</li>
<li>(10:10) - Silly bit</li>
</ul><br>Check out the <a href="https://nocompromises.gumroad.com?ref=podcast">newly published volumes of Laravel tips</a>. Collect them all!]]>
      </content:encoded>
      <pubDate>Tue, 15 Oct 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/85bb4443/3fc2c040.mp3" length="27713514" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>719</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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. </p><p>In today's episode, we talk about how we approach the tradeoffs around making a tool happy without changing how you write code.</p><p></p><ul><li>(00:00) - Our approach to static analysis in a Laravel app</li>
<li>(01:30) - Using PHPDoc inline</li>
<li>(03:00) - When Laravel doesn't quite give you the type you want</li>
<li>(05:00) - A different approach than inline types</li>
<li>(06:30) - Are you just making the tool happy?</li>
<li>(07:45) - An example of going too far</li>
<li>(10:10) - Silly bit</li>
</ul><br>Check out the <a href="https://nocompromises.gumroad.com?ref=podcast">newly published volumes of Laravel tips</a>. Collect them all!]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/85bb4443/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/85bb4443/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Why do we like testing so much?</title>
      <itunes:episode>110</itunes:episode>
      <podcast:episode>110</podcast:episode>
      <itunes:title>Why do we like testing so much?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d19722ea-d27c-4d33-91b5-135b13f2feb3</guid>
      <link>https://share.transistor.fm/s/0f347631</link>
      <description>
        <![CDATA[<p>I write a lot about testing in the Mastering Laravel newsletter. Ever wonder why it's a topic I care so much about? </p><p>In today's episode, we discuss that question and come up with a few different reasons.</p><p></p><ul><li>(00:00) - Why do we like testing so much?</li>
<li>(01:20) - Looking back at how we learned</li>
<li>(02:30) - Making it easier to join a project</li>
<li>(05:45) - Tests make you more productive</li>
<li>(07:45) - Shifting your thinking</li>
<li>(10:10) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/contact?ref=podcast">Let us help you add tests to your project</a>.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>I write a lot about testing in the Mastering Laravel newsletter. Ever wonder why it's a topic I care so much about? </p><p>In today's episode, we discuss that question and come up with a few different reasons.</p><p></p><ul><li>(00:00) - Why do we like testing so much?</li>
<li>(01:20) - Looking back at how we learned</li>
<li>(02:30) - Making it easier to join a project</li>
<li>(05:45) - Tests make you more productive</li>
<li>(07:45) - Shifting your thinking</li>
<li>(10:10) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/contact?ref=podcast">Let us help you add tests to your project</a>.]]>
      </content:encoded>
      <pubDate>Tue, 01 Oct 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/0f347631/d2ba9329.mp3" length="27917203" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>729</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>I write a lot about testing in the Mastering Laravel newsletter. Ever wonder why it's a topic I care so much about? </p><p>In today's episode, we discuss that question and come up with a few different reasons.</p><p></p><ul><li>(00:00) - Why do we like testing so much?</li>
<li>(01:20) - Looking back at how we learned</li>
<li>(02:30) - Making it easier to join a project</li>
<li>(05:45) - Tests make you more productive</li>
<li>(07:45) - Shifting your thinking</li>
<li>(10:10) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/contact?ref=podcast">Let us help you add tests to your project</a>.]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/0f347631/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/0f347631/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>What does it mean to "know" something?</title>
      <itunes:episode>109</itunes:episode>
      <podcast:episode>109</podcast:episode>
      <itunes:title>What does it mean to "know" something?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f2c73a5f-df87-4e23-b375-ddcb46d664ec</guid>
      <link>https://share.transistor.fm/s/386436e1</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - What does it mean to "know" something?</li>
<li>(03:15) - Thinking about TypeScript vs strict types in PHP</li>
<li>(05:30) - Are you fluent?</li>
<li>(06:50) - Silly bit</li>
</ul><br>Want <a href="https://nocompromises.io?ref=podcast">help with your Laravel or PHP project</a>? We really know that!]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - What does it mean to "know" something?</li>
<li>(03:15) - Thinking about TypeScript vs strict types in PHP</li>
<li>(05:30) - Are you fluent?</li>
<li>(06:50) - Silly bit</li>
</ul><br>Want <a href="https://nocompromises.io?ref=podcast">help with your Laravel or PHP project</a>? We really know that!]]>
      </content:encoded>
      <pubDate>Tue, 17 Sep 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/386436e1/0224c31f.mp3" length="22059482" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>577</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - What does it mean to "know" something?</li>
<li>(03:15) - Thinking about TypeScript vs strict types in PHP</li>
<li>(05:30) - Are you fluent?</li>
<li>(06:50) - Silly bit</li>
</ul><br>Want <a href="https://nocompromises.io?ref=podcast">help with your Laravel or PHP project</a>? We really know that!]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/386436e1/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/386436e1/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>How to approach being wrong</title>
      <itunes:episode>108</itunes:episode>
      <podcast:episode>108</podcast:episode>
      <itunes:title>How to approach being wrong</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f17e8250-7c09-47d6-a060-74ea48f35bc5</guid>
      <link>https://share.transistor.fm/s/dbb5a3d7</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Aaron admits he was wrong</li>
<li>(02:00) - What can I learn from this?</li>
<li>(05:30) - Being wrong in public with style</li>
<li>(07:00) - Being wrong throughout your career</li>
<li>(08:45) - Two people can both be right for their context</li>
<li>(10:10) - Silly bit</li>
</ul><br>Sign up for the free Mastering Laravel newsletter and <a href="https://masteringlaravel.io/daily?ref=podcast">learn a little something about Laravel each day</a>.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Aaron admits he was wrong</li>
<li>(02:00) - What can I learn from this?</li>
<li>(05:30) - Being wrong in public with style</li>
<li>(07:00) - Being wrong throughout your career</li>
<li>(08:45) - Two people can both be right for their context</li>
<li>(10:10) - Silly bit</li>
</ul><br>Sign up for the free Mastering Laravel newsletter and <a href="https://masteringlaravel.io/daily?ref=podcast">learn a little something about Laravel each day</a>.]]>
      </content:encoded>
      <pubDate>Tue, 03 Sep 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/dbb5a3d7/01c4e20d.mp3" length="28179471" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>736</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Aaron admits he was wrong</li>
<li>(02:00) - What can I learn from this?</li>
<li>(05:30) - Being wrong in public with style</li>
<li>(07:00) - Being wrong throughout your career</li>
<li>(08:45) - Two people can both be right for their context</li>
<li>(10:10) - Silly bit</li>
</ul><br>Sign up for the free Mastering Laravel newsletter and <a href="https://masteringlaravel.io/daily?ref=podcast">learn a little something about Laravel each day</a>.]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/dbb5a3d7/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/dbb5a3d7/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Where do you go when you need help?</title>
      <itunes:episode>107</itunes:episode>
      <podcast:episode>107</podcast:episode>
      <itunes:title>Where do you go when you need help?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">94bebe0b-8ae8-4e2c-8841-086ed3858fef</guid>
      <link>https://share.transistor.fm/s/19b14f51</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Where do you go when you need help?</li>
<li>(01:30) - Option 1 - search engines</li>
<li>(03:30) - Getting the most out of search results</li>
<li>(05:00) - Option 2 - talk to AI</li>
<li>(07:00) - Using AI in the right context</li>
<li>(09:10) - Option 3 - talk to a person</li>
<li>(11:30) - What if you work alone?</li>
<li>(12:55) - Silly bit</li>
</ul><br>Looking for a <a href="https://masteringlaravel.io/community?ref=podcast">community of smart Laravel developers</a> that you can ask for help?]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Where do you go when you need help?</li>
<li>(01:30) - Option 1 - search engines</li>
<li>(03:30) - Getting the most out of search results</li>
<li>(05:00) - Option 2 - talk to AI</li>
<li>(07:00) - Using AI in the right context</li>
<li>(09:10) - Option 3 - talk to a person</li>
<li>(11:30) - What if you work alone?</li>
<li>(12:55) - Silly bit</li>
</ul><br>Looking for a <a href="https://masteringlaravel.io/community?ref=podcast">community of smart Laravel developers</a> that you can ask for help?]]>
      </content:encoded>
      <pubDate>Tue, 20 Aug 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/19b14f51/f86d6167.mp3" length="32789207" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>854</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Where do you go when you need help?</li>
<li>(01:30) - Option 1 - search engines</li>
<li>(03:30) - Getting the most out of search results</li>
<li>(05:00) - Option 2 - talk to AI</li>
<li>(07:00) - Using AI in the right context</li>
<li>(09:10) - Option 3 - talk to a person</li>
<li>(11:30) - What if you work alone?</li>
<li>(12:55) - Silly bit</li>
</ul><br>Looking for a <a href="https://masteringlaravel.io/community?ref=podcast">community of smart Laravel developers</a> that you can ask for help?]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/19b14f51/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/19b14f51/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>What does it mean if someone says your app is slow?</title>
      <itunes:episode>106</itunes:episode>
      <podcast:episode>106</podcast:episode>
      <itunes:title>What does it mean if someone says your app is slow?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">22068447-7e62-4f9a-8f52-e6b66d374faf</guid>
      <link>https://share.transistor.fm/s/78fc3499</link>
      <description>
        <![CDATA[<p>The dreaded bug report: this app is slow. Ok, but what is slow? I have so many questions!</p><p>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.</p><p>If you'd like <a href="https://masteringlaravel.io/contact?ref=podcast">help setting up tools like Xdebug profiling</a>, send us a message.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>The dreaded bug report: this app is slow. Ok, but what is slow? I have so many questions!</p><p>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.</p><p>If you'd like <a href="https://masteringlaravel.io/contact?ref=podcast">help setting up tools like Xdebug profiling</a>, send us a message.</p>]]>
      </content:encoded>
      <pubDate>Tue, 06 Aug 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/78fc3499/87358dc3.mp3" length="31567911" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>822</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>The dreaded bug report: this app is slow. Ok, but what is slow? I have so many questions!</p><p>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.</p><p>If you'd like <a href="https://masteringlaravel.io/contact?ref=podcast">help setting up tools like Xdebug profiling</a>, send us a message.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/78fc3499/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/78fc3499/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Why we have a separate test suite for external services</title>
      <itunes:episode>105</itunes:episode>
      <podcast:episode>105</podcast:episode>
      <itunes:title>Why we have a separate test suite for external services</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f6ef68a6-b2a8-4c26-9d2e-72159314a5a1</guid>
      <link>https://share.transistor.fm/s/cf43b5f0</link>
      <description>
        <![CDATA[<p>Writing tests that communicate with a third party can be a little tricky, but we've found an approach that balances speed and confidence.</p><p>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.</p><p></p><ul><li>(00:00) - Why would your tests ever talk to an external service?</li>
<li>(02:30) - What does it mean to have a separate test suite?</li>
<li>(06:00) - Keeping them separate allows different triggers for running</li>
<li>(07:00) - When should you run external tests?</li>
<li>(08:30) - You can't always know when you'll break an external integration</li>
<li>(11:00) - Check on a schedule?</li>
<li>(13:00) - Silly bit</li>
</ul><br>Would you like to take 2 - 3 minutes each day to <a href="https://masteringlaravel.io/daily?ref=podcast">learn a little bit about Laravel</a>? Join for free, unsubscribe any time.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Writing tests that communicate with a third party can be a little tricky, but we've found an approach that balances speed and confidence.</p><p>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.</p><p></p><ul><li>(00:00) - Why would your tests ever talk to an external service?</li>
<li>(02:30) - What does it mean to have a separate test suite?</li>
<li>(06:00) - Keeping them separate allows different triggers for running</li>
<li>(07:00) - When should you run external tests?</li>
<li>(08:30) - You can't always know when you'll break an external integration</li>
<li>(11:00) - Check on a schedule?</li>
<li>(13:00) - Silly bit</li>
</ul><br>Would you like to take 2 - 3 minutes each day to <a href="https://masteringlaravel.io/daily?ref=podcast">learn a little bit about Laravel</a>? Join for free, unsubscribe any time.]]>
      </content:encoded>
      <pubDate>Tue, 23 Jul 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/cf43b5f0/76109b3b.mp3" length="41486827" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>1083</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Writing tests that communicate with a third party can be a little tricky, but we've found an approach that balances speed and confidence.</p><p>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.</p><p></p><ul><li>(00:00) - Why would your tests ever talk to an external service?</li>
<li>(02:30) - What does it mean to have a separate test suite?</li>
<li>(06:00) - Keeping them separate allows different triggers for running</li>
<li>(07:00) - When should you run external tests?</li>
<li>(08:30) - You can't always know when you'll break an external integration</li>
<li>(11:00) - Check on a schedule?</li>
<li>(13:00) - Silly bit</li>
</ul><br>Would you like to take 2 - 3 minutes each day to <a href="https://masteringlaravel.io/daily?ref=podcast">learn a little bit about Laravel</a>? Join for free, unsubscribe any time.]]>
      </itunes:summary>
      <itunes:keywords>laravel,php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/cf43b5f0/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/cf43b5f0/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>API specs aren't just for giant teams</title>
      <itunes:episode>104</itunes:episode>
      <podcast:episode>104</podcast:episode>
      <itunes:title>API specs aren't just for giant teams</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">85fed84c-3500-4c36-828a-975115c332f2</guid>
      <link>https://share.transistor.fm/s/67bc5981</link>
      <description>
        <![CDATA[<p>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.</p><p>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.</p><p></p><ul><li>(00:00) - Should you write a spec for your API?</li>
<li>(01:37) - Thinking through the requirements</li>
<li>(04:07) - What's in a spec?</li>
<li>(06:20) - Balancing detail with moving forward</li>
<li>(08:15) - Who is consuming the spec?</li>
<li>(09:30) - The spec keeps you honest</li>
</ul><br>Would you like to see what over 4,000 Laravel developers like about <a href="https://masteringlaravel.io/daily?ref=podcast">the Mastering Laravel newsletter</a>? It's free to sign up.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>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.</p><p></p><ul><li>(00:00) - Should you write a spec for your API?</li>
<li>(01:37) - Thinking through the requirements</li>
<li>(04:07) - What's in a spec?</li>
<li>(06:20) - Balancing detail with moving forward</li>
<li>(08:15) - Who is consuming the spec?</li>
<li>(09:30) - The spec keeps you honest</li>
</ul><br>Would you like to see what over 4,000 Laravel developers like about <a href="https://masteringlaravel.io/daily?ref=podcast">the Mastering Laravel newsletter</a>? It's free to sign up.]]>
      </content:encoded>
      <pubDate>Tue, 09 Jul 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/67bc5981/93345f98.mp3" length="33738649" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>881</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>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.</p><p></p><ul><li>(00:00) - Should you write a spec for your API?</li>
<li>(01:37) - Thinking through the requirements</li>
<li>(04:07) - What's in a spec?</li>
<li>(06:20) - Balancing detail with moving forward</li>
<li>(08:15) - Who is consuming the spec?</li>
<li>(09:30) - The spec keeps you honest</li>
</ul><br>Would you like to see what over 4,000 Laravel developers like about <a href="https://masteringlaravel.io/daily?ref=podcast">the Mastering Laravel newsletter</a>? It's free to sign up.]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/67bc5981/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/67bc5981/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Slowly introducing static analysis without changing everything</title>
      <itunes:episode>103</itunes:episode>
      <podcast:episode>103</podcast:episode>
      <itunes:title>Slowly introducing static analysis without changing everything</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f281b371-ef75-4a75-8740-95ca97efcaa5</guid>
      <link>https://share.transistor.fm/s/43358913</link>
      <description>
        <![CDATA[<p>Maybe you've tried to add static analysis to your Laravel app and got scared away by all the errors. </p><p>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.</p><p>Would you like <a href="https://nocompromises.io/?ref=podcast">help introducing Larastan to your project</a>? That's one of many things we can help you with!</p><p>This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at <a href="https://l.rw.rw/nocompromises">MAILTRAP.IO</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Maybe you've tried to add static analysis to your Laravel app and got scared away by all the errors. </p><p>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.</p><p>Would you like <a href="https://nocompromises.io/?ref=podcast">help introducing Larastan to your project</a>? That's one of many things we can help you with!</p><p>This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at <a href="https://l.rw.rw/nocompromises">MAILTRAP.IO</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 25 Jun 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/43358913/08a55ff3.mp3" length="34224434" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>913</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Maybe you've tried to add static analysis to your Laravel app and got scared away by all the errors. </p><p>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.</p><p>Would you like <a href="https://nocompromises.io/?ref=podcast">help introducing Larastan to your project</a>? That's one of many things we can help you with!</p><p>This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at <a href="https://l.rw.rw/nocompromises">MAILTRAP.IO</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/43358913/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/43358913/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Troubleshooting an empty session</title>
      <itunes:episode>102</itunes:episode>
      <podcast:episode>102</podcast:episode>
      <itunes:title>Troubleshooting an empty session</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">59f126cb-e8d8-4e71-9640-823a48982155</guid>
      <link>https://share.transistor.fm/s/6eafce61</link>
      <description>
        <![CDATA[<p>Why isn't this working? It can be frustrating when something doesn't work as expected!</p><p>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.</p><p>Next time you're stuck on something, <a href="https://masteringlaravel.io/get-unstuck?ref=podcast">let us help!</a></p><p>This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at <a href="https://l.rw.rw/nocompromises">MAILTRAP.IO</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Why isn't this working? It can be frustrating when something doesn't work as expected!</p><p>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.</p><p>Next time you're stuck on something, <a href="https://masteringlaravel.io/get-unstuck?ref=podcast">let us help!</a></p><p>This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at <a href="https://l.rw.rw/nocompromises">MAILTRAP.IO</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 11 Jun 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/6eafce61/6d31f787.mp3" length="28081556" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>749</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Why isn't this working? It can be frustrating when something doesn't work as expected!</p><p>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.</p><p>Next time you're stuck on something, <a href="https://masteringlaravel.io/get-unstuck?ref=podcast">let us help!</a></p><p>This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at <a href="https://l.rw.rw/nocompromises">MAILTRAP.IO</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/6eafce61/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/6eafce61/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Magic methods are okay in the right context</title>
      <itunes:episode>101</itunes:episode>
      <podcast:episode>101</podcast:episode>
      <itunes:title>Magic methods are okay in the right context</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">c2f67912-307d-4bf5-bfb5-6b61e614da62</guid>
      <link>https://share.transistor.fm/s/eca37345</link>
      <description>
        <![CDATA[<p>"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.</p><p>We'd really appreciate it if you <a href="https://show.nocompromises.io?ref=podcast">share the show</a> with other Laravel devs.</p><p>This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at <a href="https://l.rw.rw/nocompromises">MAILTRAP.IO</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>"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.</p><p>We'd really appreciate it if you <a href="https://show.nocompromises.io?ref=podcast">share the show</a> with other Laravel devs.</p><p>This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at <a href="https://l.rw.rw/nocompromises">MAILTRAP.IO</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 28 May 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/eca37345/4136b80d.mp3" length="27156063" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>726</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>"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.</p><p>We'd really appreciate it if you <a href="https://show.nocompromises.io?ref=podcast">share the show</a> with other Laravel devs.</p><p>This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at <a href="https://l.rw.rw/nocompromises">MAILTRAP.IO</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/eca37345/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/eca37345/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Should you let your admin do that?</title>
      <itunes:episode>100</itunes:episode>
      <podcast:episode>100</podcast:episode>
      <itunes:title>Should you let your admin do that?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">5756d4c3-9f3c-4c7c-b6be-259170348dae</guid>
      <link>https://share.transistor.fm/s/cc28a7f9</link>
      <description>
        <![CDATA[<p>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.</p><p>🎉️ Episode 100 is a huge milestone for us. Thank you for listening!</p><p>This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at <a href="https://l.rw.rw/nocompromises">MAILTRAP.IO</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>🎉️ Episode 100 is a huge milestone for us. Thank you for listening!</p><p>This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at <a href="https://l.rw.rw/nocompromises">MAILTRAP.IO</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 14 May 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/cc28a7f9/2550a91b.mp3" length="24309270" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>649</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>🎉️ Episode 100 is a huge milestone for us. Thank you for listening!</p><p>This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at <a href="https://l.rw.rw/nocompromises">MAILTRAP.IO</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/cc28a7f9/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/cc28a7f9/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Don't get overwhelmed by errors in your application</title>
      <itunes:episode>99</itunes:episode>
      <podcast:episode>99</podcast:episode>
      <itunes:title>Don't get overwhelmed by errors in your application</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">beace115-7a23-4954-a4af-abf9b7ed2d58</guid>
      <link>https://share.transistor.fm/s/347b263f</link>
      <description>
        <![CDATA[<p>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.</p><p>Would you like help with your legacy app? We have a ton of <a href="https://nocompromises.io?ref=podcast">experience making legacy apps a joy to work within</a>.</p><p></p><ul><li>(00:00) - Your app should be tracking errors</li>
<li>(02:30) - Better than just parsing logs</li>
<li>(05:15) - Don't get overwhelmed when you first turn it on</li>
<li>(06:00) - How to triage and prioritize</li>
<li>(07:30) - Know about performance issues</li>
<li>(10:30) - Silly bit</li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Would you like help with your legacy app? We have a ton of <a href="https://nocompromises.io?ref=podcast">experience making legacy apps a joy to work within</a>.</p><p></p><ul><li>(00:00) - Your app should be tracking errors</li>
<li>(02:30) - Better than just parsing logs</li>
<li>(05:15) - Don't get overwhelmed when you first turn it on</li>
<li>(06:00) - How to triage and prioritize</li>
<li>(07:30) - Know about performance issues</li>
<li>(10:30) - Silly bit</li>
</ul>]]>
      </content:encoded>
      <pubDate>Tue, 30 Apr 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/347b263f/f5613c5a.mp3" length="27501670" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>715</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Would you like help with your legacy app? We have a ton of <a href="https://nocompromises.io?ref=podcast">experience making legacy apps a joy to work within</a>.</p><p></p><ul><li>(00:00) - Your app should be tracking errors</li>
<li>(02:30) - Better than just parsing logs</li>
<li>(05:15) - Don't get overwhelmed when you first turn it on</li>
<li>(06:00) - How to triage and prioritize</li>
<li>(07:30) - Know about performance issues</li>
<li>(10:30) - Silly bit</li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/347b263f/transcript.vtt" type="text/vtt" rel="captions"/>
      <podcast:chapters url="https://share.transistor.fm/s/347b263f/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Does it matter how your code looks?</title>
      <itunes:episode>98</itunes:episode>
      <podcast:episode>98</podcast:episode>
      <itunes:title>Does it matter how your code looks?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">0004b00c-2c4c-4722-9aa9-ce0cb41cccf0</guid>
      <link>https://share.transistor.fm/s/39c4c0a4</link>
      <description>
        <![CDATA[<p>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.</p><p>Is your code slower than you'd like? We specialize in <a href="https://masteringlaravel.io/contact">Laravel performance optimization</a> and we can help! Contact us to discuss.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Is your code slower than you'd like? We specialize in <a href="https://masteringlaravel.io/contact">Laravel performance optimization</a> and we can help! Contact us to discuss.</p>]]>
      </content:encoded>
      <pubDate>Tue, 16 Apr 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/39c4c0a4/3c8d16cb.mp3" length="27053718" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>709</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Is your code slower than you'd like? We specialize in <a href="https://masteringlaravel.io/contact">Laravel performance optimization</a> and we can help! Contact us to discuss.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/39c4c0a4/transcript.vtt" type="text/vtt" rel="captions"/>
    </item>
    <item>
      <title>The life cycle of database hosting</title>
      <itunes:episode>97</itunes:episode>
      <podcast:episode>97</podcast:episode>
      <itunes:title>The life cycle of database hosting</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">59a6d169-2b20-4d3f-b00d-939bc47208ea</guid>
      <link>https://share.transistor.fm/s/b0a40443</link>
      <description>
        <![CDATA[<p>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.</p><p>And if you'd love some help <a href="https://nocompromises.io?ref=podcast">moving your database or tackling performance issues</a>, give us a call!</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>And if you'd love some help <a href="https://nocompromises.io?ref=podcast">moving your database or tackling performance issues</a>, give us a call!</p>]]>
      </content:encoded>
      <pubDate>Tue, 02 Apr 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/b0a40443/2a51d973.mp3" length="37520106" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>981</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>And if you'd love some help <a href="https://nocompromises.io?ref=podcast">moving your database or tackling performance issues</a>, give us a call!</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/b0a40443/transcription.vtt" type="text/vtt" rel="captions"/>
      <podcast:transcript url="https://share.transistor.fm/s/b0a40443/transcription.srt" type="application/x-subrip" rel="captions"/>
      <podcast:transcript url="https://share.transistor.fm/s/b0a40443/transcription.json" type="application/json" rel="captions"/>
      <podcast:transcript url="https://share.transistor.fm/s/b0a40443/transcription.txt" type="text/plain"/>
      <podcast:transcript url="https://share.transistor.fm/s/b0a40443/transcription" type="text/html"/>
      <podcast:chapters url="https://share.transistor.fm/s/b0a40443/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Are you really going to need that abstraction?</title>
      <itunes:episode>96</itunes:episode>
      <podcast:episode>96</podcast:episode>
      <itunes:title>Are you really going to need that abstraction?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d9238f8d-8a09-4ca2-9d3f-fd4a2e22d2b7</guid>
      <link>https://share.transistor.fm/s/ac720849</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Life before interfaces in PHP</li>
<li>(02:30) - Going too far with interfaces</li>
<li>(04:45) - A discussion with payment gateways</li>
<li>(07:30) - Abstracting the database as another trap</li>
<li>(09:15) - Laravel makes good use of interfaces</li>
<li>(10:05) - Silly bit</li>
</ul><br>Need some perspective on your Laravel project? We offer a code review service. <a href="https://masteringlaravel.io/contact?ref=podcast">Get in touch to learn more</a>.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Life before interfaces in PHP</li>
<li>(02:30) - Going too far with interfaces</li>
<li>(04:45) - A discussion with payment gateways</li>
<li>(07:30) - Abstracting the database as another trap</li>
<li>(09:15) - Laravel makes good use of interfaces</li>
<li>(10:05) - Silly bit</li>
</ul><br>Need some perspective on your Laravel project? We offer a code review service. <a href="https://masteringlaravel.io/contact?ref=podcast">Get in touch to learn more</a>.]]>
      </content:encoded>
      <pubDate>Tue, 19 Mar 2024 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/ac720849/b91576c1.mp3" length="27698166" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>719</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Life before interfaces in PHP</li>
<li>(02:30) - Going too far with interfaces</li>
<li>(04:45) - A discussion with payment gateways</li>
<li>(07:30) - Abstracting the database as another trap</li>
<li>(09:15) - Laravel makes good use of interfaces</li>
<li>(10:05) - Silly bit</li>
</ul><br>Need some perspective on your Laravel project? We offer a code review service. <a href="https://masteringlaravel.io/contact?ref=podcast">Get in touch to learn more</a>.]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/ac720849/transcription.vtt" type="text/vtt" rel="captions"/>
      <podcast:transcript url="https://share.transistor.fm/s/ac720849/transcription.srt" type="application/x-subrip" rel="captions"/>
      <podcast:transcript url="https://share.transistor.fm/s/ac720849/transcription.json" type="application/json" rel="captions"/>
      <podcast:transcript url="https://share.transistor.fm/s/ac720849/transcription.txt" type="text/plain"/>
      <podcast:transcript url="https://share.transistor.fm/s/ac720849/transcription" type="text/html"/>
      <podcast:chapters url="https://share.transistor.fm/s/ac720849/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Should you change application code to support a test?</title>
      <itunes:episode>95</itunes:episode>
      <podcast:episode>95</podcast:episode>
      <itunes:title>Should you change application code to support a test?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">60d76abb-998c-496f-9285-4bc321af9a4a</guid>
      <link>https://share.transistor.fm/s/f050c242</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Sometimes changing code makes testing easier</li>
<li>(01:30) - Different types of code changes</li>
<li>(02:45) - An example with Laravel jobs</li>
<li>(04:30) - A time when it's okay to change code while testing</li>
<li>(08:50) - Avoid problems by writing tests earlier</li>
<li>(09:30) - Silly bit</li>
</ul><br>Don't "compromise" on testing. See how <a href="https://nocompromises.io?ref=podcast">we can help level up your Laravel project</a>.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Sometimes changing code makes testing easier</li>
<li>(01:30) - Different types of code changes</li>
<li>(02:45) - An example with Laravel jobs</li>
<li>(04:30) - A time when it's okay to change code while testing</li>
<li>(08:50) - Avoid problems by writing tests earlier</li>
<li>(09:30) - Silly bit</li>
</ul><br>Don't "compromise" on testing. See how <a href="https://nocompromises.io?ref=podcast">we can help level up your Laravel project</a>.]]>
      </content:encoded>
      <pubDate>Tue, 05 Mar 2024 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/f050c242/b8cda1f8.mp3" length="26552317" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>692</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Sometimes changing code makes testing easier</li>
<li>(01:30) - Different types of code changes</li>
<li>(02:45) - An example with Laravel jobs</li>
<li>(04:30) - A time when it's okay to change code while testing</li>
<li>(08:50) - Avoid problems by writing tests earlier</li>
<li>(09:30) - Silly bit</li>
</ul><br>Don't "compromise" on testing. See how <a href="https://nocompromises.io?ref=podcast">we can help level up your Laravel project</a>.]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP, testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/f050c242/transcription.vtt" type="text/vtt" rel="captions"/>
      <podcast:transcript url="https://share.transistor.fm/s/f050c242/transcription.srt" type="application/x-subrip" rel="captions"/>
      <podcast:transcript url="https://share.transistor.fm/s/f050c242/transcription.json" type="application/json" rel="captions"/>
      <podcast:transcript url="https://share.transistor.fm/s/f050c242/transcription.txt" type="text/plain"/>
      <podcast:transcript url="https://share.transistor.fm/s/f050c242/transcription" type="text/html"/>
      <podcast:chapters url="https://share.transistor.fm/s/f050c242/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>What is the point of design patterns?</title>
      <itunes:episode>94</itunes:episode>
      <podcast:episode>94</podcast:episode>
      <itunes:title>What is the point of design patterns?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">98bc1662-d89a-44f6-ae07-05934f9ff2e1</guid>
      <link>https://share.transistor.fm/s/8a3a85e0</link>
      <description>
        <![CDATA[<p>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.</p><p>Sign up for our <a href="https://masteringlaravel.io?ref=podcast">free Laravel newsletter</a> and learn something new in 2 minutes or less.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Sign up for our <a href="https://masteringlaravel.io?ref=podcast">free Laravel newsletter</a> and learn something new in 2 minutes or less.</p>]]>
      </content:encoded>
      <pubDate>Tue, 20 Feb 2024 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/8a3a85e0/d7975a40.mp3" length="26992173" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>698</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Sign up for our <a href="https://masteringlaravel.io?ref=podcast">free Laravel newsletter</a> and learn something new in 2 minutes or less.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/8a3a85e0/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/8a3a85e0/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Move that logic out of your view</title>
      <itunes:episode>93</itunes:episode>
      <podcast:episode>93</podcast:episode>
      <itunes:title>Move that logic out of your view</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">996027eb-73ec-42c0-bad1-8d1dc6fb23cc</guid>
      <link>https://share.transistor.fm/s/a9ee9b0d</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Trying to keep logic out of the Blade view</li>
<li>(02:00) - Using the simplest form of logic</li>
<li>(03:45) - Business logic doesn't belong in the view layer</li>
<li>(04:15) - Condition moved into the controller</li>
<li>(05:20) - Secondary benefit of testing</li>
</ul><br>Check out the <a href="https://www.youtube.com/@masteringlaravel">Mastering Laravel YouTube channel</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Trying to keep logic out of the Blade view</li>
<li>(02:00) - Using the simplest form of logic</li>
<li>(03:45) - Business logic doesn't belong in the view layer</li>
<li>(04:15) - Condition moved into the controller</li>
<li>(05:20) - Secondary benefit of testing</li>
</ul><br>Check out the <a href="https://www.youtube.com/@masteringlaravel">Mastering Laravel YouTube channel</a>]]>
      </content:encoded>
      <pubDate>Tue, 06 Feb 2024 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/a9ee9b0d/11f53079.mp3" length="23637736" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>616</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Trying to keep logic out of the Blade view</li>
<li>(02:00) - Using the simplest form of logic</li>
<li>(03:45) - Business logic doesn't belong in the view layer</li>
<li>(04:15) - Condition moved into the controller</li>
<li>(05:20) - Secondary benefit of testing</li>
</ul><br>Check out the <a href="https://www.youtube.com/@masteringlaravel">Mastering Laravel YouTube channel</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/a9ee9b0d/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/a9ee9b0d/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Is it worth switching to another tool?</title>
      <itunes:episode>92</itunes:episode>
      <podcast:episode>92</podcast:episode>
      <itunes:title>Is it worth switching to another tool?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">c69ee78f-e6aa-4f72-ba58-f77dd601b0ea</guid>
      <link>https://share.transistor.fm/s/561e2994</link>
      <description>
        <![CDATA[<p>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</p><p>Want to see what <a href="https://github.com/NoCompromises/php-cs-fixer-config">our coding standard</a> looks like?</p><p><a href="https://list.masteringlaravel.io/products/tips">Toss a coin in the jar</a> if you enjoyed this episode. We really appreciate it!</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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</p><p>Want to see what <a href="https://github.com/NoCompromises/php-cs-fixer-config">our coding standard</a> looks like?</p><p><a href="https://list.masteringlaravel.io/products/tips">Toss a coin in the jar</a> if you enjoyed this episode. We really appreciate it!</p>]]>
      </content:encoded>
      <pubDate>Tue, 23 Jan 2024 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/561e2994/297e48a0.mp3" length="46282606" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>1199</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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</p><p>Want to see what <a href="https://github.com/NoCompromises/php-cs-fixer-config">our coding standard</a> looks like?</p><p><a href="https://list.masteringlaravel.io/products/tips">Toss a coin in the jar</a> if you enjoyed this episode. We really appreciate it!</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/561e2994/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>How we use seeders in our applications</title>
      <itunes:episode>91</itunes:episode>
      <podcast:episode>91</podcast:episode>
      <itunes:title>How we use seeders in our applications</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d4451282-360a-46a7-9659-3555a733d8be</guid>
      <link>https://share.transistor.fm/s/5d8f3c71</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Diving into how we use seeders in our applications</li>
<li>(01:40) - Should a seeder create users?</li>
<li>(04:30) - Using seeders in multiple contexts</li>
<li>(09:50) - The one time we might use seeders with tests</li>
<li>(11:50) - Silly bit</li>
</ul><br>Would you like some <a href="https://nocompromises.io?ref=podcast">expert help on your Laravel application</a>?<p><a href="https://list.masteringlaravel.io/products/tips">Toss a coin in the jar</a> if you enjoyed this episode. We really appreciate it!</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Diving into how we use seeders in our applications</li>
<li>(01:40) - Should a seeder create users?</li>
<li>(04:30) - Using seeders in multiple contexts</li>
<li>(09:50) - The one time we might use seeders with tests</li>
<li>(11:50) - Silly bit</li>
</ul><br>Would you like some <a href="https://nocompromises.io?ref=podcast">expert help on your Laravel application</a>?<p><a href="https://list.masteringlaravel.io/products/tips">Toss a coin in the jar</a> if you enjoyed this episode. We really appreciate it!</p>]]>
      </content:encoded>
      <pubDate>Tue, 09 Jan 2024 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/5d8f3c71/2b28438e.mp3" length="35380654" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>915</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Diving into how we use seeders in our applications</li>
<li>(01:40) - Should a seeder create users?</li>
<li>(04:30) - Using seeders in multiple contexts</li>
<li>(09:50) - The one time we might use seeders with tests</li>
<li>(11:50) - Silly bit</li>
</ul><br>Would you like some <a href="https://nocompromises.io?ref=podcast">expert help on your Laravel application</a>?<p><a href="https://list.masteringlaravel.io/products/tips">Toss a coin in the jar</a> if you enjoyed this episode. We really appreciate it!</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/5d8f3c71/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/5d8f3c71/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Don't just get mad at some tech, dig in and learn!</title>
      <itunes:episode>90</itunes:episode>
      <podcast:episode>90</podcast:episode>
      <itunes:title>Don't just get mad at some tech, dig in and learn!</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">c003f497-9d83-487d-ad39-7a508f6aa3bb</guid>
      <link>https://share.transistor.fm/s/bb05a7eb</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Once again, Aaron reads the docs</li>
<li>(02:30) - Recognizing when you don't know something</li>
<li>(03:30) - Approaches for learning Javascript and CSS</li>
<li>(04:20) - What is the manual for Javascript/CSS?</li>
<li>(07:13) - Joel learning CSS hands-on</li>
<li>(09:55) - Learning through repetition</li>
<li>(12:00) - Keep an eye on tech that makes you annoyed</li>
<li>(13:23) - Silly bit</li>
</ul><br>Wow, 90 episodes in a row. Never missed one! Want to <a href="https://nocompromises.io?ref=podcast">hire some super reliable Laravel developers</a>?<p><a href="https://list.masteringlaravel.io/products/tips">Toss a coin in the jar</a> if you enjoyed this episode. We really appreciate it!</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Once again, Aaron reads the docs</li>
<li>(02:30) - Recognizing when you don't know something</li>
<li>(03:30) - Approaches for learning Javascript and CSS</li>
<li>(04:20) - What is the manual for Javascript/CSS?</li>
<li>(07:13) - Joel learning CSS hands-on</li>
<li>(09:55) - Learning through repetition</li>
<li>(12:00) - Keep an eye on tech that makes you annoyed</li>
<li>(13:23) - Silly bit</li>
</ul><br>Wow, 90 episodes in a row. Never missed one! Want to <a href="https://nocompromises.io?ref=podcast">hire some super reliable Laravel developers</a>?<p><a href="https://list.masteringlaravel.io/products/tips">Toss a coin in the jar</a> if you enjoyed this episode. We really appreciate it!</p>]]>
      </content:encoded>
      <pubDate>Tue, 26 Dec 2023 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/bb05a7eb/061f43c2.mp3" length="35708602" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>927</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Once again, Aaron reads the docs</li>
<li>(02:30) - Recognizing when you don't know something</li>
<li>(03:30) - Approaches for learning Javascript and CSS</li>
<li>(04:20) - What is the manual for Javascript/CSS?</li>
<li>(07:13) - Joel learning CSS hands-on</li>
<li>(09:55) - Learning through repetition</li>
<li>(12:00) - Keep an eye on tech that makes you annoyed</li>
<li>(13:23) - Silly bit</li>
</ul><br>Wow, 90 episodes in a row. Never missed one! Want to <a href="https://nocompromises.io?ref=podcast">hire some super reliable Laravel developers</a>?<p><a href="https://list.masteringlaravel.io/products/tips">Toss a coin in the jar</a> if you enjoyed this episode. We really appreciate it!</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/bb05a7eb/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/bb05a7eb/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Making a case for consistency</title>
      <itunes:episode>89</itunes:episode>
      <podcast:episode>89</podcast:episode>
      <itunes:title>Making a case for consistency</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">9c299691-e816-4938-80ec-c60f95e3f2f7</guid>
      <link>https://share.transistor.fm/s/a1f13372</link>
      <description>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - We like keeping things tidy in our projects</li>
<li>(01:20) - Have a README, please</li>
<li>(03:30) - Is there a business case for consistency across projects?</li>
<li>(05:30) - An example with Docker build speeds in CI</li>
<li>(06:50) - Consistency in naming business concepts</li>
<li>(09:45) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io?ref=podcast">Short, practical Laravel tips</a> delivered fresh to your inbox. Sign up today!]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - We like keeping things tidy in our projects</li>
<li>(01:20) - Have a README, please</li>
<li>(03:30) - Is there a business case for consistency across projects?</li>
<li>(05:30) - An example with Docker build speeds in CI</li>
<li>(06:50) - Consistency in naming business concepts</li>
<li>(09:45) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io?ref=podcast">Short, practical Laravel tips</a> delivered fresh to your inbox. Sign up today!]]>
      </content:encoded>
      <pubDate>Tue, 12 Dec 2023 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/a1f13372/f45e1edb.mp3" length="30838309" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>805</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - We like keeping things tidy in our projects</li>
<li>(01:20) - Have a README, please</li>
<li>(03:30) - Is there a business case for consistency across projects?</li>
<li>(05:30) - An example with Docker build speeds in CI</li>
<li>(06:50) - Consistency in naming business concepts</li>
<li>(09:45) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io?ref=podcast">Short, practical Laravel tips</a> delivered fresh to your inbox. Sign up today!]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/a1f13372/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/a1f13372/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Different approaches to upgrading to a new major Laravel version</title>
      <itunes:episode>88</itunes:episode>
      <podcast:episode>88</podcast:episode>
      <itunes:title>Different approaches to upgrading to a new major Laravel version</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">12c58ac1-ff79-4f1c-8f20-c56124daa3e0</guid>
      <link>https://share.transistor.fm/s/ddb0250c</link>
      <description>
        <![CDATA[<p>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.</p><p><a href="https://nocompromises.io?ref=podcast">Need help getting tests on your Laravel app before upgrading?</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p><a href="https://nocompromises.io?ref=podcast">Need help getting tests on your Laravel app before upgrading?</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 28 Nov 2023 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/ddb0250c/53e63b03.mp3" length="36888840" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>961</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p><a href="https://nocompromises.io?ref=podcast">Need help getting tests on your Laravel app before upgrading?</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel,PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/ddb0250c/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/ddb0250c/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Maybe you don't need to write code this time</title>
      <itunes:episode>87</itunes:episode>
      <podcast:episode>87</podcast:episode>
      <itunes:title>Maybe you don't need to write code this time</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">bec1f143-aebb-459e-bed3-25fab3fc6da4</guid>
      <link>https://share.transistor.fm/s/180443af</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Considering better ways to track topics</li>
<li>(01:00) - The developer brain kicks in</li>
<li>(03:05) - Building it in Slack without any code</li>
<li>(05:15) - Feeling empathy for the non-devs out there</li>
<li>(06:45) - Deciding not to automate everything</li>
<li>(09:15) - Another example with a stats dashboard</li>
<li>(11:25) - Silly bit</li>
</ul><br><a href="https://nocompromises.io?ref=podcast">Need help with your Laravel app? </a>We've seen it all and can get things done faster than you're used to.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Considering better ways to track topics</li>
<li>(01:00) - The developer brain kicks in</li>
<li>(03:05) - Building it in Slack without any code</li>
<li>(05:15) - Feeling empathy for the non-devs out there</li>
<li>(06:45) - Deciding not to automate everything</li>
<li>(09:15) - Another example with a stats dashboard</li>
<li>(11:25) - Silly bit</li>
</ul><br><a href="https://nocompromises.io?ref=podcast">Need help with your Laravel app? </a>We've seen it all and can get things done faster than you're used to.]]>
      </content:encoded>
      <pubDate>Tue, 14 Nov 2023 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/180443af/31efd035.mp3" length="35496820" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>925</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Considering better ways to track topics</li>
<li>(01:00) - The developer brain kicks in</li>
<li>(03:05) - Building it in Slack without any code</li>
<li>(05:15) - Feeling empathy for the non-devs out there</li>
<li>(06:45) - Deciding not to automate everything</li>
<li>(09:15) - Another example with a stats dashboard</li>
<li>(11:25) - Silly bit</li>
</ul><br><a href="https://nocompromises.io?ref=podcast">Need help with your Laravel app? </a>We've seen it all and can get things done faster than you're used to.]]>
      </itunes:summary>
      <itunes:keywords>laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/180443af/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/180443af/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Should you manage roles and permissions with a UI?</title>
      <itunes:episode>86</itunes:episode>
      <podcast:episode>86</podcast:episode>
      <itunes:title>Should you manage roles and permissions with a UI?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ee737a0a-f044-47e3-854e-ecfe1a21af0f</guid>
      <link>https://share.transistor.fm/s/cd409d66</link>
      <description>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - Roles and permissions landscape</li>
<li>(01:45) - A UI for managing permissions?</li>
<li>(04:14) - Rolling out new permissions via migrations</li>
<li>(06:45) - What about managing roles in a UI?</li>
<li>(09:00) - Covering permissions in tests</li>
<li>(10:30) - Maybe a read only UI?</li>
<li>(10:55) - Silly bit</li>
</ul><br>The validation worksheet has been retired, but check out our <a href="https://masteringlaravel.io/books/validation">validation book</a>.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - Roles and permissions landscape</li>
<li>(01:45) - A UI for managing permissions?</li>
<li>(04:14) - Rolling out new permissions via migrations</li>
<li>(06:45) - What about managing roles in a UI?</li>
<li>(09:00) - Covering permissions in tests</li>
<li>(10:30) - Maybe a read only UI?</li>
<li>(10:55) - Silly bit</li>
</ul><br>The validation worksheet has been retired, but check out our <a href="https://masteringlaravel.io/books/validation">validation book</a>.]]>
      </content:encoded>
      <pubDate>Tue, 31 Oct 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/cd409d66/60ea9f2a.mp3" length="29469370" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>772</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - Roles and permissions landscape</li>
<li>(01:45) - A UI for managing permissions?</li>
<li>(04:14) - Rolling out new permissions via migrations</li>
<li>(06:45) - What about managing roles in a UI?</li>
<li>(09:00) - Covering permissions in tests</li>
<li>(10:30) - Maybe a read only UI?</li>
<li>(10:55) - Silly bit</li>
</ul><br>The validation worksheet has been retired, but check out our <a href="https://masteringlaravel.io/books/validation">validation book</a>.]]>
      </itunes:summary>
      <itunes:keywords>laravel, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/cd409d66/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/cd409d66/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>The changing value of books throughout your career</title>
      <itunes:episode>85</itunes:episode>
      <podcast:episode>85</podcast:episode>
      <itunes:title>The changing value of books throughout your career</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">9a7eb5ec-8132-431d-bbfd-01e5ec8e9fdd</guid>
      <link>https://share.transistor.fm/s/b5e6466b</link>
      <description>
        <![CDATA[<p>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.</p><p>00:00 Using books as a resource<br>01:59 Changing perspectives as you gain experience<br>03:05 Recognizing real-world applications of what you read<br>05:45 Balancing enthusiasm with experience<br>07:20 You don't need to learn everything<br>09:35 Silly bit</p><p>You could spend a few thousand dollars on books, but maybe that money is better spent <a href="https://nocompromises.io?ref=podcast">working with us</a>.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>00:00 Using books as a resource<br>01:59 Changing perspectives as you gain experience<br>03:05 Recognizing real-world applications of what you read<br>05:45 Balancing enthusiasm with experience<br>07:20 You don't need to learn everything<br>09:35 Silly bit</p><p>You could spend a few thousand dollars on books, but maybe that money is better spent <a href="https://nocompromises.io?ref=podcast">working with us</a>.</p>]]>
      </content:encoded>
      <pubDate>Tue, 17 Oct 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/b5e6466b/a9422a28.mp3" length="28066234" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>733</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>00:00 Using books as a resource<br>01:59 Changing perspectives as you gain experience<br>03:05 Recognizing real-world applications of what you read<br>05:45 Balancing enthusiasm with experience<br>07:20 You don't need to learn everything<br>09:35 Silly bit</p><p>You could spend a few thousand dollars on books, but maybe that money is better spent <a href="https://nocompromises.io?ref=podcast">working with us</a>.</p>]]>
      </itunes:summary>
      <itunes:keywords>laravel, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/b5e6466b/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/b5e6466b/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Some reasons to write a down method in your migrations</title>
      <itunes:episode>84</itunes:episode>
      <podcast:episode>84</podcast:episode>
      <itunes:title>Some reasons to write a down method in your migrations</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">c8f09916-5534-4e6a-9a81-cd5ccaf0d2c5</guid>
      <link>https://share.transistor.fm/s/aadb532c</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Is writing down migration methods just a weird habit?</li>
<li>(02:30) - A deploy that goes horribly wrong immediately</li>
<li>(03:45) - Rolling forward due to database engine limitations</li>
<li>(05:00) - How long is too long to rollback?</li>
<li>(06:30) - Another use case: switching branches</li>
<li>(08:30) - A mental unit test for your logic</li>
<li>(12:35) - Silly bit</li>
</ul><br>No call to action on this episode, just go enjoy some quiet time to yourself.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Is writing down migration methods just a weird habit?</li>
<li>(02:30) - A deploy that goes horribly wrong immediately</li>
<li>(03:45) - Rolling forward due to database engine limitations</li>
<li>(05:00) - How long is too long to rollback?</li>
<li>(06:30) - Another use case: switching branches</li>
<li>(08:30) - A mental unit test for your logic</li>
<li>(12:35) - Silly bit</li>
</ul><br>No call to action on this episode, just go enjoy some quiet time to yourself.]]>
      </content:encoded>
      <pubDate>Tue, 03 Oct 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/aadb532c/5a71e8c8.mp3" length="32992574" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>859</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Is writing down migration methods just a weird habit?</li>
<li>(02:30) - A deploy that goes horribly wrong immediately</li>
<li>(03:45) - Rolling forward due to database engine limitations</li>
<li>(05:00) - How long is too long to rollback?</li>
<li>(06:30) - Another use case: switching branches</li>
<li>(08:30) - A mental unit test for your logic</li>
<li>(12:35) - Silly bit</li>
</ul><br>No call to action on this episode, just go enjoy some quiet time to yourself.]]>
      </itunes:summary>
      <itunes:keywords>laravel, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/aadb532c/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/aadb532c/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Managing a micro-manager</title>
      <itunes:episode>83</itunes:episode>
      <podcast:episode>83</podcast:episode>
      <itunes:title>Managing a micro-manager</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">a9b5462c-e338-4f76-9ebe-8cfb1e52b671</guid>
      <link>https://share.transistor.fm/s/fafbcccc</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Uncomfortable projects and clients</li>
<li>(02:45) - Ask them directly "what's up"</li>
<li>(05:00) - Understand what they want from you</li>
<li>(07:00) - Let's role play</li>
<li>(10:30) - The extra work is worth it</li>
<li>(11:42) - Silly bit</li>
</ul><br>Need help building your Laravel product? Hire two <a href="https://nocompromises.io?ref=podcast">expert Laravel developers</a> for less than you might think.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Uncomfortable projects and clients</li>
<li>(02:45) - Ask them directly "what's up"</li>
<li>(05:00) - Understand what they want from you</li>
<li>(07:00) - Let's role play</li>
<li>(10:30) - The extra work is worth it</li>
<li>(11:42) - Silly bit</li>
</ul><br>Need help building your Laravel product? Hire two <a href="https://nocompromises.io?ref=podcast">expert Laravel developers</a> for less than you might think.]]>
      </content:encoded>
      <pubDate>Tue, 19 Sep 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/fafbcccc/b49ffebe.mp3" length="32856800" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>858</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Uncomfortable projects and clients</li>
<li>(02:45) - Ask them directly "what's up"</li>
<li>(05:00) - Understand what they want from you</li>
<li>(07:00) - Let's role play</li>
<li>(10:30) - The extra work is worth it</li>
<li>(11:42) - Silly bit</li>
</ul><br>Need help building your Laravel product? Hire two <a href="https://nocompromises.io?ref=podcast">expert Laravel developers</a> for less than you might think.]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/fafbcccc/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/fafbcccc/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>A couple handy features in PHPStorm</title>
      <itunes:episode>82</itunes:episode>
      <podcast:episode>82</podcast:episode>
      <itunes:title>A couple handy features in PHPStorm</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">838653b1-fecd-4051-aeef-11838bbbc452</guid>
      <link>https://share.transistor.fm/s/50250741</link>
      <description>
        <![CDATA[<p>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.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p>]]>
      </content:encoded>
      <pubDate>Tue, 05 Sep 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/50250741/fab5781e.mp3" length="23624683" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>614</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/50250741/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/50250741/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Tools should work for you, not boss you around</title>
      <itunes:episode>81</itunes:episode>
      <podcast:episode>81</podcast:episode>
      <itunes:title>Tools should work for you, not boss you around</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">92430adc-8ae1-4613-8d11-8abd65a0f753</guid>
      <link>https://share.transistor.fm/s/bafcc6af</link>
      <description>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - We really like PHPStan</li>
<li>(01:30) - Can you go too far with a tool, though?</li>
<li>(03:40) - Things to consider if you're newer to Laravel or PHP</li>
<li>(05:30) - PHPStan has helped us find bugs</li>
<li>(06:25) - Accessing route parameters in a type-safe way</li>
<li>(09:22) - Know how the tool works, to make it work for you</li>
<li>(11:13) - Return types on controller actions</li>
<li>(14:22) - Silly bit</li>
</ul><br>Need help <a href="https://masteringlaravel.io/get-unstuck?ref=podcast">getting unstuck with a Laravel issue</a>? We can help!]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - We really like PHPStan</li>
<li>(01:30) - Can you go too far with a tool, though?</li>
<li>(03:40) - Things to consider if you're newer to Laravel or PHP</li>
<li>(05:30) - PHPStan has helped us find bugs</li>
<li>(06:25) - Accessing route parameters in a type-safe way</li>
<li>(09:22) - Know how the tool works, to make it work for you</li>
<li>(11:13) - Return types on controller actions</li>
<li>(14:22) - Silly bit</li>
</ul><br>Need help <a href="https://masteringlaravel.io/get-unstuck?ref=podcast">getting unstuck with a Laravel issue</a>? We can help!]]>
      </content:encoded>
      <pubDate>Tue, 22 Aug 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/bafcc6af/6462b3ff.mp3" length="36258486" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>949</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - We really like PHPStan</li>
<li>(01:30) - Can you go too far with a tool, though?</li>
<li>(03:40) - Things to consider if you're newer to Laravel or PHP</li>
<li>(05:30) - PHPStan has helped us find bugs</li>
<li>(06:25) - Accessing route parameters in a type-safe way</li>
<li>(09:22) - Know how the tool works, to make it work for you</li>
<li>(11:13) - Return types on controller actions</li>
<li>(14:22) - Silly bit</li>
</ul><br>Need help <a href="https://masteringlaravel.io/get-unstuck?ref=podcast">getting unstuck with a Laravel issue</a>? We can help!]]>
      </itunes:summary>
      <itunes:keywords>laravel, php, phpstan, larastan</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/bafcc6af/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/bafcc6af/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Harnessing that post-conference excitement</title>
      <itunes:episode>80</itunes:episode>
      <podcast:episode>80</podcast:episode>
      <itunes:title>Harnessing that post-conference excitement</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">03e77f01-3d76-4f10-8b0a-71002c0c30f1</guid>
      <link>https://share.transistor.fm/s/03eaf54a</link>
      <description>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - Post-conference excitement is a real thing</li>
<li>(01:11) - The reality of how conferences are structured</li>
<li>(03:50) - Talks share things you could do not things you should do</li>
<li>(05:00) - How to apply new ideas in your daily work</li>
<li>(06:08) - Specific challenges within a team</li>
<li>(11:40) - Silly bit</li>
</ul><br>Want to see the <a href="https://youtu.be/-PX0BV9hGZY">musical conference talk</a> Joel mentioned?<p>You like short things, that's why you listen to this podcast. How about a <a href="https://masteringlaravel.io?ref=podcast">short Laravel tip in your inbox</a>?</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - Post-conference excitement is a real thing</li>
<li>(01:11) - The reality of how conferences are structured</li>
<li>(03:50) - Talks share things you could do not things you should do</li>
<li>(05:00) - How to apply new ideas in your daily work</li>
<li>(06:08) - Specific challenges within a team</li>
<li>(11:40) - Silly bit</li>
</ul><br>Want to see the <a href="https://youtu.be/-PX0BV9hGZY">musical conference talk</a> Joel mentioned?<p>You like short things, that's why you listen to this podcast. How about a <a href="https://masteringlaravel.io?ref=podcast">short Laravel tip in your inbox</a>?</p>]]>
      </content:encoded>
      <pubDate>Tue, 08 Aug 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/03eaf54a/b302a9fd.mp3" length="29448050" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>789</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - Post-conference excitement is a real thing</li>
<li>(01:11) - The reality of how conferences are structured</li>
<li>(03:50) - Talks share things you could do not things you should do</li>
<li>(05:00) - How to apply new ideas in your daily work</li>
<li>(06:08) - Specific challenges within a team</li>
<li>(11:40) - Silly bit</li>
</ul><br>Want to see the <a href="https://youtu.be/-PX0BV9hGZY">musical conference talk</a> Joel mentioned?<p>You like short things, that's why you listen to this podcast. How about a <a href="https://masteringlaravel.io?ref=podcast">short Laravel tip in your inbox</a>?</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/03eaf54a/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/03eaf54a/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>How do you tell a teammate they might be wrong?</title>
      <itunes:episode>79</itunes:episode>
      <podcast:episode>79</podcast:episode>
      <itunes:title>How do you tell a teammate they might be wrong?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">825d33ea-9068-44de-a80f-f9b569b1fbbd</guid>
      <link>https://share.transistor.fm/s/039a9541</link>
      <description>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - Programmers have opinions on a lot of topics</li>
<li>(02:25) - Start by asking questions</li>
<li>(03:45) - Get smart with leading questions</li>
<li>(05:25) - Do you always have to call out something you think is wrong?</li>
<li>(07:15) - Conflict doesn't mean confrontation</li>
</ul><br><a href="https://masteringlaravel.io/get-unstuck">Need help from some seasoned Laravel devs?</a> Don't be shy. We don't bite.]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - Programmers have opinions on a lot of topics</li>
<li>(02:25) - Start by asking questions</li>
<li>(03:45) - Get smart with leading questions</li>
<li>(05:25) - Do you always have to call out something you think is wrong?</li>
<li>(07:15) - Conflict doesn't mean confrontation</li>
</ul><br><a href="https://masteringlaravel.io/get-unstuck">Need help from some seasoned Laravel devs?</a> Don't be shy. We don't bite.]]>
      </content:encoded>
      <pubDate>Tue, 25 Jul 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/039a9541/09599cff.mp3" length="21280183" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>559</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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?</p><p></p><ul><li>(00:00) - Programmers have opinions on a lot of topics</li>
<li>(02:25) - Start by asking questions</li>
<li>(03:45) - Get smart with leading questions</li>
<li>(05:25) - Do you always have to call out something you think is wrong?</li>
<li>(07:15) - Conflict doesn't mean confrontation</li>
</ul><br><a href="https://masteringlaravel.io/get-unstuck">Need help from some seasoned Laravel devs?</a> Don't be shy. We don't bite.]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/039a9541/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/039a9541/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Lots of different ways to test record creation</title>
      <itunes:episode>78</itunes:episode>
      <podcast:episode>78</podcast:episode>
      <itunes:title>Lots of different ways to test record creation</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7703c195-2106-43a0-a5f0-ea40e051a179</guid>
      <link>https://share.transistor.fm/s/f1c69ed7</link>
      <description>
        <![CDATA[<p>We get a bit nerdy here and dive deep on a few different ways to test record creation.</p><p></p><ul><li>(00:00) - We like testing</li>
<li>(01:20) - One way to test creating a record</li>
<li>(03:00) - Limitations of fetch the record with first()</li>
<li>(05:30) - Considerations when using latest() in tests</li>
<li>(07:00) - An approach for using auto-increment IDs</li>
<li>(08:05) - Silly bit</li>
</ul><br>Read more of our thoughts at <a href="https://masteringlaravel.io/articles?ref=podcast">masteringlaravel.io</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>We get a bit nerdy here and dive deep on a few different ways to test record creation.</p><p></p><ul><li>(00:00) - We like testing</li>
<li>(01:20) - One way to test creating a record</li>
<li>(03:00) - Limitations of fetch the record with first()</li>
<li>(05:30) - Considerations when using latest() in tests</li>
<li>(07:00) - An approach for using auto-increment IDs</li>
<li>(08:05) - Silly bit</li>
</ul><br>Read more of our thoughts at <a href="https://masteringlaravel.io/articles?ref=podcast">masteringlaravel.io</a>]]>
      </content:encoded>
      <pubDate>Tue, 11 Jul 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/f1c69ed7/df318420.mp3" length="23357046" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>615</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>We get a bit nerdy here and dive deep on a few different ways to test record creation.</p><p></p><ul><li>(00:00) - We like testing</li>
<li>(01:20) - One way to test creating a record</li>
<li>(03:00) - Limitations of fetch the record with first()</li>
<li>(05:30) - Considerations when using latest() in tests</li>
<li>(07:00) - An approach for using auto-increment IDs</li>
<li>(08:05) - Silly bit</li>
</ul><br>Read more of our thoughts at <a href="https://masteringlaravel.io/articles?ref=podcast">masteringlaravel.io</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/f1c69ed7/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/f1c69ed7/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>How do you avoid distractions?</title>
      <itunes:episode>77</itunes:episode>
      <podcast:episode>77</podcast:episode>
      <itunes:title>How do you avoid distractions?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7085af6e-f4c4-49f5-bb8f-1fe02e06fc4f</guid>
      <link>https://share.transistor.fm/s/e9de4a9e</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Feeling the pull of distraction when trying to focus on work</li>
<li>(01:30) - Email - the biggest distraction</li>
<li>(03:00) - The world won't end if you keep email closed</li>
<li>(06:00) - Setting expectations with others</li>
<li>(07:45) - Being a hero might actually be unfair to others</li>
<li>(08:20) - Productivity is really about well-being, not cranking out work</li>
<li>(09:00) - Be realistic when planning</li>
<li>(10:00) - Experiment and find what works for you</li>
<li>(11:30) - Social media as a distraction</li>
<li>(13:00) - Silly bit</li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Feeling the pull of distraction when trying to focus on work</li>
<li>(01:30) - Email - the biggest distraction</li>
<li>(03:00) - The world won't end if you keep email closed</li>
<li>(06:00) - Setting expectations with others</li>
<li>(07:45) - Being a hero might actually be unfair to others</li>
<li>(08:20) - Productivity is really about well-being, not cranking out work</li>
<li>(09:00) - Be realistic when planning</li>
<li>(10:00) - Experiment and find what works for you</li>
<li>(11:30) - Social media as a distraction</li>
<li>(13:00) - Silly bit</li>
</ul>]]>
      </content:encoded>
      <pubDate>Tue, 27 Jun 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/e9de4a9e/d258fc3e.mp3" length="36022694" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>956</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Feeling the pull of distraction when trying to focus on work</li>
<li>(01:30) - Email - the biggest distraction</li>
<li>(03:00) - The world won't end if you keep email closed</li>
<li>(06:00) - Setting expectations with others</li>
<li>(07:45) - Being a hero might actually be unfair to others</li>
<li>(08:20) - Productivity is really about well-being, not cranking out work</li>
<li>(09:00) - Be realistic when planning</li>
<li>(10:00) - Experiment and find what works for you</li>
<li>(11:30) - Social media as a distraction</li>
<li>(13:00) - Silly bit</li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/e9de4a9e/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/e9de4a9e/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>When should you use final classes or private properties?</title>
      <itunes:episode>76</itunes:episode>
      <podcast:episode>76</podcast:episode>
      <itunes:title>When should you use final classes or private properties?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6731605f-94e6-45a0-820a-ef4e2b5a6360</guid>
      <link>https://share.transistor.fm/s/8f072c69</link>
      <description>
        <![CDATA[<p>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.</p><p>Is there some use case we missed? Aaron wants to hear about it.</p><p>Show notes<br></p><ul><li>(00:00) - Final classes, the hot topic on Twitter</li>
<li>(01:00) - Aaron's opinion has evolved over the years</li>
<li>(03:15) - Packages vs applications</li>
<li>(04:00) - What about making PHPStan happy?</li>
<li>(06:45) - What about reducing support burden on package maintainers?</li>
<li>(10:05) - What about private properties?</li>
<li>(11:15) - Aaron wants to be wrong</li>
<li>(11:45) - Silly bit</li>
</ul><br>Want to hire us and argue about it? <a href="https://nocompromises.io?ref=podcast">Book a call</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Is there some use case we missed? Aaron wants to hear about it.</p><p>Show notes<br></p><ul><li>(00:00) - Final classes, the hot topic on Twitter</li>
<li>(01:00) - Aaron's opinion has evolved over the years</li>
<li>(03:15) - Packages vs applications</li>
<li>(04:00) - What about making PHPStan happy?</li>
<li>(06:45) - What about reducing support burden on package maintainers?</li>
<li>(10:05) - What about private properties?</li>
<li>(11:15) - Aaron wants to be wrong</li>
<li>(11:45) - Silly bit</li>
</ul><br>Want to hire us and argue about it? <a href="https://nocompromises.io?ref=podcast">Book a call</a>]]>
      </content:encoded>
      <pubDate>Tue, 13 Jun 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/8f072c69/18ca8916.mp3" length="31391488" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>828</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Is there some use case we missed? Aaron wants to hear about it.</p><p>Show notes<br></p><ul><li>(00:00) - Final classes, the hot topic on Twitter</li>
<li>(01:00) - Aaron's opinion has evolved over the years</li>
<li>(03:15) - Packages vs applications</li>
<li>(04:00) - What about making PHPStan happy?</li>
<li>(06:45) - What about reducing support burden on package maintainers?</li>
<li>(10:05) - What about private properties?</li>
<li>(11:15) - Aaron wants to be wrong</li>
<li>(11:45) - Silly bit</li>
</ul><br>Want to hire us and argue about it? <a href="https://nocompromises.io?ref=podcast">Book a call</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/8f072c69/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/8f072c69/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Is it ever ok to delay writing tests?</title>
      <itunes:episode>75</itunes:episode>
      <podcast:episode>75</podcast:episode>
      <itunes:title>Is it ever ok to delay writing tests?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">8fa06da3-e134-4499-ae4f-bbfb4f8ca5ce</guid>
      <link>https://share.transistor.fm/s/4edd9a48</link>
      <description>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Our secret podcast agenda</li>
<li>(01:00) - Project setup</li>
<li>(02:30) - Tests are good, but they do add time</li>
<li>(03:15) - Some ambiguity on "is this what the user needs/wants?"</li>
<li>(06:00) - Discussing the decision to delay tests as a team</li>
<li>(07:15) - Conclusion - it's the audience, not the timeline</li>
<li>(08:10) - Side benefit of knowledge sharing</li>
<li>(09:15) - Silly bit</li>
</ul><br>Become a more confident Laravel developer. Sign up for practical tips at <a href="https://masteringlaravel.io?ref=podcast">masteringlaravel.io</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Our secret podcast agenda</li>
<li>(01:00) - Project setup</li>
<li>(02:30) - Tests are good, but they do add time</li>
<li>(03:15) - Some ambiguity on "is this what the user needs/wants?"</li>
<li>(06:00) - Discussing the decision to delay tests as a team</li>
<li>(07:15) - Conclusion - it's the audience, not the timeline</li>
<li>(08:10) - Side benefit of knowledge sharing</li>
<li>(09:15) - Silly bit</li>
</ul><br>Become a more confident Laravel developer. Sign up for practical tips at <a href="https://masteringlaravel.io?ref=podcast">masteringlaravel.io</a>]]>
      </content:encoded>
      <pubDate>Tue, 30 May 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/4edd9a48/f6fa6870.mp3" length="28305645" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>745</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p></p><ul><li>(00:00) - Our secret podcast agenda</li>
<li>(01:00) - Project setup</li>
<li>(02:30) - Tests are good, but they do add time</li>
<li>(03:15) - Some ambiguity on "is this what the user needs/wants?"</li>
<li>(06:00) - Discussing the decision to delay tests as a team</li>
<li>(07:15) - Conclusion - it's the audience, not the timeline</li>
<li>(08:10) - Side benefit of knowledge sharing</li>
<li>(09:15) - Silly bit</li>
</ul><br>Become a more confident Laravel developer. Sign up for practical tips at <a href="https://masteringlaravel.io?ref=podcast">masteringlaravel.io</a>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP, testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/4edd9a48/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/4edd9a48/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Should an Eloquent relationship include soft-deleted records?</title>
      <itunes:episode>74</itunes:episode>
      <podcast:episode>74</podcast:episode>
      <itunes:title>Should an Eloquent relationship include soft-deleted records?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">290ce165-0dcf-4942-aed6-603f540a0f41</guid>
      <link>https://share.transistor.fm/s/82723cfc</link>
      <description>
        <![CDATA[<p>Show notes:<br></p><ul><li>(00:00) - Relationships and trashed records</li>
<li>(02:00) - One-to-one relationship</li>
<li>(02:39) - Are soft-deletes bad then?</li>
<li>(03:30) - Balancing end user and developer experience</li>
<li>(05:00) - One-to-many relationships are even more problematic</li>
<li>(08:00) - Does the specific domain matter?</li>
<li>(10:15) - Agree on the rule as a team</li>
<li>(10:50) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/security?ref=podcast">Get a free ebook of Laravel security tips</a>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Show notes:<br></p><ul><li>(00:00) - Relationships and trashed records</li>
<li>(02:00) - One-to-one relationship</li>
<li>(02:39) - Are soft-deletes bad then?</li>
<li>(03:30) - Balancing end user and developer experience</li>
<li>(05:00) - One-to-many relationships are even more problematic</li>
<li>(08:00) - Does the specific domain matter?</li>
<li>(10:15) - Agree on the rule as a team</li>
<li>(10:50) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/security?ref=podcast">Get a free ebook of Laravel security tips</a>]]>
      </content:encoded>
      <pubDate>Tue, 16 May 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/82723cfc/a85fe91c.mp3" length="30955461" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>817</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Show notes:<br></p><ul><li>(00:00) - Relationships and trashed records</li>
<li>(02:00) - One-to-one relationship</li>
<li>(02:39) - Are soft-deletes bad then?</li>
<li>(03:30) - Balancing end user and developer experience</li>
<li>(05:00) - One-to-many relationships are even more problematic</li>
<li>(08:00) - Does the specific domain matter?</li>
<li>(10:15) - Agree on the rule as a team</li>
<li>(10:50) - Silly bit</li>
</ul><br><a href="https://masteringlaravel.io/security?ref=podcast">Get a free ebook of Laravel security tips</a>]]>
      </itunes:summary>
      <itunes:keywords>laravel, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:transcript url="https://share.transistor.fm/s/82723cfc/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/82723cfc/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Interviewing other developers like a human</title>
      <itunes:episode>73</itunes:episode>
      <podcast:episode>73</podcast:episode>
      <itunes:title>Interviewing other developers like a human</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">78fc908b-5983-4108-904f-0fbe8056a1df</guid>
      <link>https://share.transistor.fm/s/8c229f8e</link>
      <description>
        <![CDATA[<p>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.</p><p>Show notes:</p><ul><li>00:00 Our different work backgrounds</li><li>01:00 How to kick off a technical discussion in an interview</li><li>03:45 How to leverage their existing experience</li><li>04:50 Learn about their communication style</li><li>06:00 Figuring out how someone thinks about a problem</li><li>09:30 Don't code review actual company code</li><li>11:50 Silly bit</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Show notes:</p><ul><li>00:00 Our different work backgrounds</li><li>01:00 How to kick off a technical discussion in an interview</li><li>03:45 How to leverage their existing experience</li><li>04:50 Learn about their communication style</li><li>06:00 Figuring out how someone thinks about a problem</li><li>09:30 Don't code review actual company code</li><li>11:50 Silly bit</li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 02 May 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/8c229f8e/f3e228a7.mp3" length="34070258" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>909</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Show notes:</p><ul><li>00:00 Our different work backgrounds</li><li>01:00 How to kick off a technical discussion in an interview</li><li>03:45 How to leverage their existing experience</li><li>04:50 Learn about their communication style</li><li>06:00 Figuring out how someone thinks about a problem</li><li>09:30 Don't code review actual company code</li><li>11:50 Silly bit</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/8c229f8e/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>The benefits of working with other developers</title>
      <itunes:episode>72</itunes:episode>
      <podcast:episode>72</podcast:episode>
      <itunes:title>The benefits of working with other developers</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">53782ba4-f622-4012-8d86-4786fab5dccb</guid>
      <link>https://share.transistor.fm/s/83271524</link>
      <description>
        <![CDATA[<p>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.</p><p>Show notes:<br></p><ul><li>(00:00) - Topic intro: the benefits of working with someone else</li>
<li>(02:46) - Code review can actually be nice</li>
<li>(04:45) - The benefits of being "challenged"</li>
<li>(06:20) - Picking up tips just seeing how someone else works</li>
<li>(06:53) - Human skills are important too</li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Show notes:<br></p><ul><li>(00:00) - Topic intro: the benefits of working with someone else</li>
<li>(02:46) - Code review can actually be nice</li>
<li>(04:45) - The benefits of being "challenged"</li>
<li>(06:20) - Picking up tips just seeing how someone else works</li>
<li>(06:53) - Human skills are important too</li>
</ul>]]>
      </content:encoded>
      <pubDate>Tue, 18 Apr 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/83271524/f866af5a.mp3" length="28215214" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>743</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Show notes:<br></p><ul><li>(00:00) - Topic intro: the benefits of working with someone else</li>
<li>(02:46) - Code review can actually be nice</li>
<li>(04:45) - The benefits of being "challenged"</li>
<li>(06:20) - Picking up tips just seeing how someone else works</li>
<li>(06:53) - Human skills are important too</li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/83271524/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/83271524/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Changing our mind about queues in testing</title>
      <itunes:episode>71</itunes:episode>
      <podcast:episode>71</podcast:episode>
      <itunes:title>Changing our mind about queues in testing</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6fafc51d-f21a-4c10-b5bd-49aa303a7dd8</guid>
      <link>https://share.transistor.fm/s/7c3c6020</link>
      <description>
        <![CDATA[<p>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.</p><p>Show Notes</p><ul><li>00:00 Sometimes we change our mind over time</li><li>02:00 Changing queue from sync to null in tests</li><li>03:45 Feature versus integration tests</li><li>04:40 Where do you test job logic?</li><li>05:30 White box versus black box testing</li><li>07:15 Laravel queue drivers and how faking works</li><li>08:55 Why use events at all?</li><li>09:30 The new approach is faster too</li><li>11:15 Silly bit</li></ul><p>Want to make us happy with a random email? Check out our <a href="https://masteringlaravel.io/?ref=podcast">free and paid books on masteringlaravel.io</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Show Notes</p><ul><li>00:00 Sometimes we change our mind over time</li><li>02:00 Changing queue from sync to null in tests</li><li>03:45 Feature versus integration tests</li><li>04:40 Where do you test job logic?</li><li>05:30 White box versus black box testing</li><li>07:15 Laravel queue drivers and how faking works</li><li>08:55 Why use events at all?</li><li>09:30 The new approach is faster too</li><li>11:15 Silly bit</li></ul><p>Want to make us happy with a random email? Check out our <a href="https://masteringlaravel.io/?ref=podcast">free and paid books on masteringlaravel.io</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 04 Apr 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/7c3c6020/a774fbee.mp3" length="31777501" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>839</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Show Notes</p><ul><li>00:00 Sometimes we change our mind over time</li><li>02:00 Changing queue from sync to null in tests</li><li>03:45 Feature versus integration tests</li><li>04:40 Where do you test job logic?</li><li>05:30 White box versus black box testing</li><li>07:15 Laravel queue drivers and how faking works</li><li>08:55 Why use events at all?</li><li>09:30 The new approach is faster too</li><li>11:15 Silly bit</li></ul><p>Want to make us happy with a random email? Check out our <a href="https://masteringlaravel.io/?ref=podcast">free and paid books on masteringlaravel.io</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP, queues, testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/7c3c6020/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/7c3c6020/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Too many rules?</title>
      <itunes:episode>70</itunes:episode>
      <podcast:episode>70</podcast:episode>
      <itunes:title>Too many rules?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">1439a1f9-69b4-4249-bc5d-51fac2e31525</guid>
      <link>https://share.transistor.fm/s/c5fd8d04</link>
      <description>
        <![CDATA[<p>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.</p><ul><li>00:00 I like rules</li><li>01:20 Maybe going too far with rules - the scenario</li><li>03:05 Bug explanation</li><li>05:03 A tangent on test setup</li><li>06:30 A possible rule to prevent this bug</li><li>07:17 Why this rule went too far</li><li>08:50 We still want to fix it, just not now</li><li>09:45 Another example with syntax and code standards</li><li>12:53 Silly bit</li></ul><p><a href="https://nocompromises.io/?ref=podcast">Need help to set up or improve your team's coding standards</a>?</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><ul><li>00:00 I like rules</li><li>01:20 Maybe going too far with rules - the scenario</li><li>03:05 Bug explanation</li><li>05:03 A tangent on test setup</li><li>06:30 A possible rule to prevent this bug</li><li>07:17 Why this rule went too far</li><li>08:50 We still want to fix it, just not now</li><li>09:45 Another example with syntax and code standards</li><li>12:53 Silly bit</li></ul><p><a href="https://nocompromises.io/?ref=podcast">Need help to set up or improve your team's coding standards</a>?</p>]]>
      </content:encoded>
      <pubDate>Tue, 21 Mar 2023 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/c5fd8d04/7c2e733b.mp3" length="35989302" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>954</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><ul><li>00:00 I like rules</li><li>01:20 Maybe going too far with rules - the scenario</li><li>03:05 Bug explanation</li><li>05:03 A tangent on test setup</li><li>06:30 A possible rule to prevent this bug</li><li>07:17 Why this rule went too far</li><li>08:50 We still want to fix it, just not now</li><li>09:45 Another example with syntax and code standards</li><li>12:53 Silly bit</li></ul><p><a href="https://nocompromises.io/?ref=podcast">Need help to set up or improve your team's coding standards</a>?</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, php, code standards</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/c5fd8d04/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Keeping an open mind with other languages and tools</title>
      <itunes:episode>69</itunes:episode>
      <podcast:episode>69</podcast:episode>
      <itunes:title>Keeping an open mind with other languages and tools</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">757b532c-2164-4aeb-ba6b-6d4f1465e8be</guid>
      <link>https://share.transistor.fm/s/ed542874</link>
      <description>
        <![CDATA[<p>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.</p><ul><li>00:00 It's easy to hate on tools you don't use</li><li>01:02 Why are there different kinds of tools?</li><li>03:30 Is it "bad" because we don't understand it?</li><li>04:42 Learn from other communities</li><li>07:10 Don't be a jerk</li><li>07:55 Silly bit</li></ul><p><a href="https://nocompromises.io/?ref=podcast">Need some help with your Laravel application?</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><ul><li>00:00 It's easy to hate on tools you don't use</li><li>01:02 Why are there different kinds of tools?</li><li>03:30 Is it "bad" because we don't understand it?</li><li>04:42 Learn from other communities</li><li>07:10 Don't be a jerk</li><li>07:55 Silly bit</li></ul><p><a href="https://nocompromises.io/?ref=podcast">Need some help with your Laravel application?</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 07 Mar 2023 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/ed542874/aef2ec85.mp3" length="26699736" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>695</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><ul><li>00:00 It's easy to hate on tools you don't use</li><li>01:02 Why are there different kinds of tools?</li><li>03:30 Is it "bad" because we don't understand it?</li><li>04:42 Learn from other communities</li><li>07:10 Don't be a jerk</li><li>07:55 Silly bit</li></ul><p><a href="https://nocompromises.io/?ref=podcast">Need some help with your Laravel application?</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/ed542874/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>What we look for in a package</title>
      <itunes:episode>68</itunes:episode>
      <podcast:episode>68</podcast:episode>
      <itunes:title>What we look for in a package</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">eec3e039-be49-4c37-ac07-e08460643e39</guid>
      <link>https://share.transistor.fm/s/98854b49</link>
      <description>
        <![CDATA[<p>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?</p><ul><li>00:00 A healthy ecosystem of packages</li><li>01:02 Too much of a good thing?</li><li>02:48 Risks to consider</li><li>04:13 Other ways to share</li><li>05:34 Think before you promote</li><li>08:02 Consider the friction</li><li>08:39 Silly bit</li></ul><p>Would you like help <a href="https://nocompromises.io?ref=podcast">auditing the packages in your Laravel application</a>?</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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?</p><ul><li>00:00 A healthy ecosystem of packages</li><li>01:02 Too much of a good thing?</li><li>02:48 Risks to consider</li><li>04:13 Other ways to share</li><li>05:34 Think before you promote</li><li>08:02 Consider the friction</li><li>08:39 Silly bit</li></ul><p>Would you like help <a href="https://nocompromises.io?ref=podcast">auditing the packages in your Laravel application</a>?</p>]]>
      </content:encoded>
      <pubDate>Tue, 21 Feb 2023 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/98854b49/70f87698.mp3" length="24717918" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>652</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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?</p><ul><li>00:00 A healthy ecosystem of packages</li><li>01:02 Too much of a good thing?</li><li>02:48 Risks to consider</li><li>04:13 Other ways to share</li><li>05:34 Think before you promote</li><li>08:02 Consider the friction</li><li>08:39 Silly bit</li></ul><p>Would you like help <a href="https://nocompromises.io?ref=podcast">auditing the packages in your Laravel application</a>?</p>]]>
      </itunes:summary>
      <itunes:keywords>PHP, Laravel, packages</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/98854b49/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Blogging versus tweeting</title>
      <itunes:episode>67</itunes:episode>
      <podcast:episode>67</podcast:episode>
      <itunes:title>Blogging versus tweeting</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">509d616d-6cac-4e57-bb16-d6b53d7ad6c8</guid>
      <link>https://share.transistor.fm/s/84e1bdbf</link>
      <description>
        <![CDATA[<p>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?</p><ul><li>00:00 Why blogging is beneficial</li><li>02:43 Slowing down before you publish</li><li>04:30 Tips that provide value</li><li>08:11 Platforms can go away</li><li>09:36 Silly bit</li></ul><p>Check out the <a href="https://masteringlaravel.io/articles?ref=podcast">new articles section</a> on masteringlaravel.io</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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?</p><ul><li>00:00 Why blogging is beneficial</li><li>02:43 Slowing down before you publish</li><li>04:30 Tips that provide value</li><li>08:11 Platforms can go away</li><li>09:36 Silly bit</li></ul><p>Check out the <a href="https://masteringlaravel.io/articles?ref=podcast">new articles section</a> on masteringlaravel.io</p>]]>
      </content:encoded>
      <pubDate>Tue, 07 Feb 2023 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/84e1bdbf/41777c27.mp3" length="26775746" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>705</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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?</p><ul><li>00:00 Why blogging is beneficial</li><li>02:43 Slowing down before you publish</li><li>04:30 Tips that provide value</li><li>08:11 Platforms can go away</li><li>09:36 Silly bit</li></ul><p>Check out the <a href="https://masteringlaravel.io/articles?ref=podcast">new articles section</a> on masteringlaravel.io</p>]]>
      </itunes:summary>
      <itunes:keywords>PHP, Laravel, blogging</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/84e1bdbf/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Knowing when to use new language or framework features</title>
      <itunes:episode>66</itunes:episode>
      <podcast:episode>66</podcast:episode>
      <itunes:title>Knowing when to use new language or framework features</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">99c892cc-7a3d-4d17-a27a-d92801d3b47d</guid>
      <link>https://share.transistor.fm/s/279a28dc</link>
      <description>
        <![CDATA[<p>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?</p><ul><li>PHP marches forward (00:00)</li><li>Upgrade strategy depends on team size (01:20)</li><li>Considerations for new language features (02:33)</li><li>Performance gains (03:27)</li><li>Readability (04:56)</li><li>How to adopt new features (06:16)</li><li>Depends on the project's maturity (08:14)</li><li>Upgrading for security (09:30)</li><li>Silly bit (11:17)</li></ul><p>If you enjoy this podcast, we'd really appreciate help spreading the word. <a href="https://show.nocompromises.io">Share it with your fellow PHP and Laravel developers</a>.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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?</p><ul><li>PHP marches forward (00:00)</li><li>Upgrade strategy depends on team size (01:20)</li><li>Considerations for new language features (02:33)</li><li>Performance gains (03:27)</li><li>Readability (04:56)</li><li>How to adopt new features (06:16)</li><li>Depends on the project's maturity (08:14)</li><li>Upgrading for security (09:30)</li><li>Silly bit (11:17)</li></ul><p>If you enjoy this podcast, we'd really appreciate help spreading the word. <a href="https://show.nocompromises.io">Share it with your fellow PHP and Laravel developers</a>.</p>]]>
      </content:encoded>
      <pubDate>Tue, 24 Jan 2023 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/279a28dc/1cadecaf.mp3" length="32894316" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>858</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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?</p><ul><li>PHP marches forward (00:00)</li><li>Upgrade strategy depends on team size (01:20)</li><li>Considerations for new language features (02:33)</li><li>Performance gains (03:27)</li><li>Readability (04:56)</li><li>How to adopt new features (06:16)</li><li>Depends on the project's maturity (08:14)</li><li>Upgrading for security (09:30)</li><li>Silly bit (11:17)</li></ul><p>If you enjoy this podcast, we'd really appreciate help spreading the word. <a href="https://show.nocompromises.io">Share it with your fellow PHP and Laravel developers</a>.</p>]]>
      </itunes:summary>
      <itunes:keywords>PHP, Laravel</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/279a28dc/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Going on a bug hunt</title>
      <itunes:episode>65</itunes:episode>
      <podcast:episode>65</podcast:episode>
      <itunes:title>Going on a bug hunt</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">c5cef1b5-2e34-4535-a5f7-f20e7fa10401</guid>
      <link>https://share.transistor.fm/s/297d9892</link>
      <description>
        <![CDATA[<p>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.</p><ul><li>Think of a bug like a fun code puzzle (00:00)</li><li>Don't get stuck for too long (01:22)</li><li>The confusing CSV bug (02:35)</li><li>Diffing the files (06:05)</li><li>Digging deeper into Symfony and PHP (08:07)</li><li>Getting stubborn about fixing this (11:29)</li><li>Silly bit (12:26)</li></ul><p><br>Why would you validate your MIME types? Learn that and a whole lot more with our validation book: <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><ul><li>Think of a bug like a fun code puzzle (00:00)</li><li>Don't get stuck for too long (01:22)</li><li>The confusing CSV bug (02:35)</li><li>Diffing the files (06:05)</li><li>Digging deeper into Symfony and PHP (08:07)</li><li>Getting stubborn about fixing this (11:29)</li><li>Silly bit (12:26)</li></ul><p><br>Why would you validate your MIME types? Learn that and a whole lot more with our validation book: <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 10 Jan 2023 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/297d9892/81246c6c.mp3" length="31228266" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>820</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><ul><li>Think of a bug like a fun code puzzle (00:00)</li><li>Don't get stuck for too long (01:22)</li><li>The confusing CSV bug (02:35)</li><li>Diffing the files (06:05)</li><li>Digging deeper into Symfony and PHP (08:07)</li><li>Getting stubborn about fixing this (11:29)</li><li>Silly bit (12:26)</li></ul><p><br>Why would you validate your MIME types? Learn that and a whole lot more with our validation book: <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/297d9892/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Thinking about the user, even in the details</title>
      <itunes:episode>64</itunes:episode>
      <podcast:episode>64</podcast:episode>
      <itunes:title>Thinking about the user, even in the details</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">8b778053-665e-4c94-95f7-20babd7323fd</guid>
      <link>https://share.transistor.fm/s/24ffbae7</link>
      <description>
        <![CDATA[<p>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.</p><ul><li>00:16 Why do we write code?</li><li>01:39 The importance of user experience</li><li>02:54 A specific example of user-focused thinking</li><li>04:34 Choosing the most helpful HTTP status code</li><li>05:44 What if it’s an API response?</li><li>07:17 How much detail in an error is useful to a user?</li><li>08:35 Silly bit</li></ul><p>Move from competent to confident - <a href="https://masteringlaravel.io/?ref=podcast">become a better Laravel developer</a> with the free resources available at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><ul><li>00:16 Why do we write code?</li><li>01:39 The importance of user experience</li><li>02:54 A specific example of user-focused thinking</li><li>04:34 Choosing the most helpful HTTP status code</li><li>05:44 What if it’s an API response?</li><li>07:17 How much detail in an error is useful to a user?</li><li>08:35 Silly bit</li></ul><p>Move from competent to confident - <a href="https://masteringlaravel.io/?ref=podcast">become a better Laravel developer</a> with the free resources available at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 27 Dec 2022 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/24ffbae7/9eb4f6a9.mp3" length="28459318" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>749</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><ul><li>00:16 Why do we write code?</li><li>01:39 The importance of user experience</li><li>02:54 A specific example of user-focused thinking</li><li>04:34 Choosing the most helpful HTTP status code</li><li>05:44 What if it’s an API response?</li><li>07:17 How much detail in an error is useful to a user?</li><li>08:35 Silly bit</li></ul><p>Move from competent to confident - <a href="https://masteringlaravel.io/?ref=podcast">become a better Laravel developer</a> with the free resources available at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP, UX</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/24ffbae7/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Why do you write your tests like that?</title>
      <itunes:episode>63</itunes:episode>
      <podcast:episode>63</podcast:episode>
      <itunes:title>Why do you write your tests like that?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ce57c757-282f-4ab0-ba26-eca9eff9f0f0</guid>
      <link>https://share.transistor.fm/s/6c2199b9</link>
      <description>
        <![CDATA[<p>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.</p><ul><li>1:06 - One weird pattern we’ve seen in Laravel project tests</li><li>2:23 - Can you explain why you’re doing this?</li><li>3:50 - “It’s more readable”</li><li>5:55 - Principle: learn a thing, do a thing, dissect a thing</li><li>6:30 - Is it okay to have code duplication in tests?</li><li>8:20 - How tests are different from application code</li><li>11:16 - Don’t add application code just for your tests</li><li>13:06 - Silly bit</li></ul><p>Need help <a href="https://nocompromises.io?ref=podcast">building a test suite for your Laravel app</a> or making your existing tests more reliable? Click the link and book a free call to see how we can help.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><ul><li>1:06 - One weird pattern we’ve seen in Laravel project tests</li><li>2:23 - Can you explain why you’re doing this?</li><li>3:50 - “It’s more readable”</li><li>5:55 - Principle: learn a thing, do a thing, dissect a thing</li><li>6:30 - Is it okay to have code duplication in tests?</li><li>8:20 - How tests are different from application code</li><li>11:16 - Don’t add application code just for your tests</li><li>13:06 - Silly bit</li></ul><p>Need help <a href="https://nocompromises.io?ref=podcast">building a test suite for your Laravel app</a> or making your existing tests more reliable? Click the link and book a free call to see how we can help.</p>]]>
      </content:encoded>
      <pubDate>Tue, 13 Dec 2022 12:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/6c2199b9/f0bbd548.mp3" length="33801677" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>880</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><ul><li>1:06 - One weird pattern we’ve seen in Laravel project tests</li><li>2:23 - Can you explain why you’re doing this?</li><li>3:50 - “It’s more readable”</li><li>5:55 - Principle: learn a thing, do a thing, dissect a thing</li><li>6:30 - Is it okay to have code duplication in tests?</li><li>8:20 - How tests are different from application code</li><li>11:16 - Don’t add application code just for your tests</li><li>13:06 - Silly bit</li></ul><p>Need help <a href="https://nocompromises.io?ref=podcast">building a test suite for your Laravel app</a> or making your existing tests more reliable? Click the link and book a free call to see how we can help.</p>]]>
      </itunes:summary>
      <itunes:keywords></itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/6c2199b9/transcript.txt" type="text/plain"/>
      <podcast:chapters url="https://share.transistor.fm/s/6c2199b9/chapters.json" type="application/json+chapters"/>
    </item>
    <item>
      <title>Avoid painting yourself into a corner</title>
      <itunes:episode>62</itunes:episode>
      <podcast:episode>62</podcast:episode>
      <itunes:title>Avoid painting yourself into a corner</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f8a51951-1c48-4d77-bf68-90929548b111</guid>
      <link>https://share.transistor.fm/s/0ce6330c</link>
      <description>
        <![CDATA[<p>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. </p><p>Want another set of eyes on your code? We can help! Visit our site and <a href="https://nocompromises.io?ref=podcast">schedule a free call</a> with us today.</p><ul><li>00:16 The problem: this code works, but I don't like it</li><li>01:17 What we mean by "I don't like this code"</li><li>02:22 A specific example of code I didn't like</li><li>03:52 Code review sparks a discussion, and a solution</li><li>05:20 Principle: don't get locked in to your first approach</li><li>06:03 Principle: the benefits of code review</li><li>07:22 Don't be defensive, and the code reviewer isn't always right</li><li>08:03 Silly bit</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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. </p><p>Want another set of eyes on your code? We can help! Visit our site and <a href="https://nocompromises.io?ref=podcast">schedule a free call</a> with us today.</p><ul><li>00:16 The problem: this code works, but I don't like it</li><li>01:17 What we mean by "I don't like this code"</li><li>02:22 A specific example of code I didn't like</li><li>03:52 Code review sparks a discussion, and a solution</li><li>05:20 Principle: don't get locked in to your first approach</li><li>06:03 Principle: the benefits of code review</li><li>07:22 Don't be defensive, and the code reviewer isn't always right</li><li>08:03 Silly bit</li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 29 Nov 2022 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/0ce6330c/94d70b6c.mp3" length="24791359" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>652</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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. </p><p>Want another set of eyes on your code? We can help! Visit our site and <a href="https://nocompromises.io?ref=podcast">schedule a free call</a> with us today.</p><ul><li>00:16 The problem: this code works, but I don't like it</li><li>01:17 What we mean by "I don't like this code"</li><li>02:22 A specific example of code I didn't like</li><li>03:52 Code review sparks a discussion, and a solution</li><li>05:20 Principle: don't get locked in to your first approach</li><li>06:03 Principle: the benefits of code review</li><li>07:22 Don't be defensive, and the code reviewer isn't always right</li><li>08:03 Silly bit</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>PHP, Laravel, code complexity</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/0ce6330c/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Look before you leap</title>
      <itunes:episode>61</itunes:episode>
      <podcast:episode>61</podcast:episode>
      <itunes:title>Look before you leap</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">a53ef596-eedb-41c5-87d3-9c16a8dfa60b</guid>
      <link>https://share.transistor.fm/s/ef350750</link>
      <description>
        <![CDATA[<p>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.</p><p>Do you want to blindly take our advice? Great idea! Check out our book on <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Laravel validation rules</a>.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Do you want to blindly take our advice? Great idea! Check out our book on <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Laravel validation rules</a>.</p>]]>
      </content:encoded>
      <pubDate>Tue, 15 Nov 2022 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/ef350750/37fdd664.mp3" length="24698837" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>653</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Do you want to blindly take our advice? Great idea! Check out our book on <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Laravel validation rules</a>.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP, trends</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/ef350750/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Don't plan to do too much</title>
      <itunes:episode>60</itunes:episode>
      <podcast:episode>60</podcast:episode>
      <itunes:title>Don't plan to do too much</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">22f7a475-ab40-425f-8598-f3f4d871e638</guid>
      <link>https://share.transistor.fm/s/e8ca3240</link>
      <description>
        <![CDATA[<p>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.</p><p>Want to get notified when we release new tools, books, and articles? <a href="https://masteringlaravel.io?ref=podcast">Sign up for our newsletter</a>!</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Want to get notified when we release new tools, books, and articles? <a href="https://masteringlaravel.io?ref=podcast">Sign up for our newsletter</a>!</p>]]>
      </content:encoded>
      <pubDate>Tue, 01 Nov 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/e8ca3240/83237f18.mp3" length="34711405" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>920</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Want to get notified when we release new tools, books, and articles? <a href="https://masteringlaravel.io?ref=podcast">Sign up for our newsletter</a>!</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP, time management</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/e8ca3240/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Isolate the problem</title>
      <itunes:episode>59</itunes:episode>
      <podcast:episode>59</podcast:episode>
      <itunes:title>Isolate the problem</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e92bfe6c-a513-4cd1-8d29-8ba9428fc94f</guid>
      <link>https://share.transistor.fm/s/7f9493a3</link>
      <description>
        <![CDATA[<p>What do you do when you're stuck? Aaron shares a tip on how he breaks down a problem when he's feeling stuck.</p><p>Are you stuck with your Laravel/PHP project? We can help! <a href="https://nocompromises.io?ref=podcast">Book a free call</a>.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>What do you do when you're stuck? Aaron shares a tip on how he breaks down a problem when he's feeling stuck.</p><p>Are you stuck with your Laravel/PHP project? We can help! <a href="https://nocompromises.io?ref=podcast">Book a free call</a>.</p>]]>
      </content:encoded>
      <pubDate>Tue, 18 Oct 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/7f9493a3/caf37ef7.mp3" length="24910722" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>659</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>What do you do when you're stuck? Aaron shares a tip on how he breaks down a problem when he's feeling stuck.</p><p>Are you stuck with your Laravel/PHP project? We can help! <a href="https://nocompromises.io?ref=podcast">Book a free call</a>.</p>]]>
      </itunes:summary>
      <itunes:keywords>PHP, Laravel</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/7f9493a3/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>What should I test?</title>
      <itunes:episode>58</itunes:episode>
      <podcast:episode>58</podcast:episode>
      <itunes:title>What should I test?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">93ca9326-6025-4ddf-a0e1-4e3a38d2113d</guid>
      <link>https://share.transistor.fm/s/ce32cceb</link>
      <description>
        <![CDATA[<p>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.</p><p>Need some help or advice on your Laravel project? <a href="https://nocompromises.io?ref=podcast">We can help</a>!</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Need some help or advice on your Laravel project? <a href="https://nocompromises.io?ref=podcast">We can help</a>!</p>]]>
      </content:encoded>
      <pubDate>Tue, 04 Oct 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/ce32cceb/ee6a87f2.mp3" length="35245287" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>933</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Need some help or advice on your Laravel project? <a href="https://nocompromises.io?ref=podcast">We can help</a>!</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP, testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/ce32cceb/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Picking a strategy for translation in Laravel</title>
      <itunes:episode>57</itunes:episode>
      <podcast:episode>57</podcast:episode>
      <itunes:title>Picking a strategy for translation in Laravel</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">31f0ed61-18fa-4e7e-8f10-3a6b99bde49a</guid>
      <link>https://share.transistor.fm/s/a1f4b5f2</link>
      <description>
        <![CDATA[<p>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.</p><p>Check out the <a href="https://masteringlaravel.io/worksheet?ref=podcast">validation worksheet</a> we built. It may help jump start your Laravel validation rules.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Check out the <a href="https://masteringlaravel.io/worksheet?ref=podcast">validation worksheet</a> we built. It may help jump start your Laravel validation rules.</p>]]>
      </content:encoded>
      <pubDate>Tue, 20 Sep 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/a1f4b5f2/cc691cce.mp3" length="32142905" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>843</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Check out the <a href="https://masteringlaravel.io/worksheet?ref=podcast">validation worksheet</a> we built. It may help jump start your Laravel validation rules.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP, translation</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/a1f4b5f2/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Should a factory follow all business rules?</title>
      <itunes:episode>56</itunes:episode>
      <podcast:episode>56</podcast:episode>
      <itunes:title>Should a factory follow all business rules?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">97454fa4-7d09-4e14-af50-2f6bbd9e7166</guid>
      <link>https://share.transistor.fm/s/2d282ec8</link>
      <description>
        <![CDATA[<p>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.</p><p>Share the love! <a href="https://twitter.com/intent/tweet?text=If%20you%20write%20Laravel%20or%20PHP%2C%20check%20out%20this%20podcast.%20It%27s%20always%20under%2015%20minutes%2C%20but%20packed%20with%20useful%20info.&amp;url=https%3A%2F%2Fshow.nocompromises.io">Tell people on Twitter</a> about the podcast.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Share the love! <a href="https://twitter.com/intent/tweet?text=If%20you%20write%20Laravel%20or%20PHP%2C%20check%20out%20this%20podcast.%20It%27s%20always%20under%2015%20minutes%2C%20but%20packed%20with%20useful%20info.&amp;url=https%3A%2F%2Fshow.nocompromises.io">Tell people on Twitter</a> about the podcast.</p>]]>
      </content:encoded>
      <pubDate>Tue, 06 Sep 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/2d282ec8/64a9abbc.mp3" length="30182811" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>800</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Share the love! <a href="https://twitter.com/intent/tweet?text=If%20you%20write%20Laravel%20or%20PHP%2C%20check%20out%20this%20podcast.%20It%27s%20always%20under%2015%20minutes%2C%20but%20packed%20with%20useful%20info.&amp;url=https%3A%2F%2Fshow.nocompromises.io">Tell people on Twitter</a> about the podcast.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP, factories, testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/2d282ec8/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Understanding different learning styles</title>
      <itunes:episode>55</itunes:episode>
      <podcast:episode>55</podcast:episode>
      <itunes:title>Understanding different learning styles</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">08d2700b-403d-4f21-ada1-7dc21d0a927d</guid>
      <link>https://share.transistor.fm/s/91ee3619</link>
      <description>
        <![CDATA[<p>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.</p><p>Did you like this? We'd appreciate a <a href="https://show.nocompromises.io/subscribe?ref=podcast">review or share of the podcast</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Did you like this? We'd appreciate a <a href="https://show.nocompromises.io/subscribe?ref=podcast">review or share of the podcast</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 23 Aug 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/91ee3619/0f84f3fe.mp3" length="35436981" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>924</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Did you like this? We'd appreciate a <a href="https://show.nocompromises.io/subscribe?ref=podcast">review or share of the podcast</a></p>]]>
      </itunes:summary>
      <itunes:keywords>learning, Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/91ee3619/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Sometimes it's good to be boring</title>
      <itunes:episode>54</itunes:episode>
      <podcast:episode>54</podcast:episode>
      <itunes:title>Sometimes it's good to be boring</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">91835a63-67d6-44a3-b93a-81962cf3ff82</guid>
      <link>https://share.transistor.fm/s/f1112054</link>
      <description>
        <![CDATA[<p>Do you like to fiddle with settings? Joel doesn't. Find out why, and hear about one example where we like deviating from the defaults.</p><p>Learn more about Laravel at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Do you like to fiddle with settings? Joel doesn't. Find out why, and hear about one example where we like deviating from the defaults.</p><p>Learn more about Laravel at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 09 Aug 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/f1112054/6b1d657d.mp3" length="31228733" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>820</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Do you like to fiddle with settings? Joel doesn't. Find out why, and hear about one example where we like deviating from the defaults.</p><p>Learn more about Laravel at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/f1112054/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>What was this developer thinking??</title>
      <itunes:episode>53</itunes:episode>
      <podcast:episode>53</podcast:episode>
      <itunes:title>What was this developer thinking??</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">c03c69aa-e7e4-42c3-a954-0db0eab026a0</guid>
      <link>https://share.transistor.fm/s/8e2ad928</link>
      <description>
        <![CDATA[<p>Maybe you've inherited a project and just looking at how the code is organized makes your head hurt. Before you go ripping it apart and "making it better", it can be useful to take a step back and use a more measured approach.</p><p>Want us to work with your team? <a href="https://nocompromises.io?ref=podcast">Book a free call</a> to see if we can help.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Maybe you've inherited a project and just looking at how the code is organized makes your head hurt. Before you go ripping it apart and "making it better", it can be useful to take a step back and use a more measured approach.</p><p>Want us to work with your team? <a href="https://nocompromises.io?ref=podcast">Book a free call</a> to see if we can help.</p>]]>
      </content:encoded>
      <pubDate>Tue, 26 Jul 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/8e2ad928/b013c494.mp3" length="37133877" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>986</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Maybe you've inherited a project and just looking at how the code is organized makes your head hurt. Before you go ripping it apart and "making it better", it can be useful to take a step back and use a more measured approach.</p><p>Want us to work with your team? <a href="https://nocompromises.io?ref=podcast">Book a free call</a> to see if we can help.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/8e2ad928/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Should you fix all bugs in a legacy project?</title>
      <itunes:episode>52</itunes:episode>
      <podcast:episode>52</podcast:episode>
      <itunes:title>Should you fix all bugs in a legacy project?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">2b28368b-cf02-4390-8aa5-7bb29dba576f</guid>
      <link>https://share.transistor.fm/s/0844dea9</link>
      <description>
        <![CDATA[<p>You've inherited a legacy app. It's "running fine" in production, but when you add an error reporting tool, you see hundreds of errors, warnings, and notices logged each day. What do you do?</p><p>Check out our <a href="https://masteringlaravel.io?ref=podcast">books and courses at masteringlaravel.io</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>You've inherited a legacy app. It's "running fine" in production, but when you add an error reporting tool, you see hundreds of errors, warnings, and notices logged each day. What do you do?</p><p>Check out our <a href="https://masteringlaravel.io?ref=podcast">books and courses at masteringlaravel.io</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 12 Jul 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/0844dea9/96760b6c.mp3" length="30413613" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>803</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>You've inherited a legacy app. It's "running fine" in production, but when you add an error reporting tool, you see hundreds of errors, warnings, and notices logged each day. What do you do?</p><p>Check out our <a href="https://masteringlaravel.io?ref=podcast">books and courses at masteringlaravel.io</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP, bugs, legacy</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/0844dea9/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Learning from other communities</title>
      <itunes:episode>51</itunes:episode>
      <podcast:episode>51</podcast:episode>
      <itunes:title>Learning from other communities</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">3baf3d64-351f-429f-a1e5-d0fd43fe98f6</guid>
      <link>https://share.transistor.fm/s/6a1c3956</link>
      <description>
        <![CDATA[<p>Can a Laravel developer learn something from the Rails or Erlang communities? We share some perspective on how to broaden your horizons, and when might be a good time in your career to do that.</p><p>Download our free ebook <a href="https://masteringlaravel.io/security?ref=podcast">7 Steps to Securing Your Laravel App</a>.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Can a Laravel developer learn something from the Rails or Erlang communities? We share some perspective on how to broaden your horizons, and when might be a good time in your career to do that.</p><p>Download our free ebook <a href="https://masteringlaravel.io/security?ref=podcast">7 Steps to Securing Your Laravel App</a>.</p>]]>
      </content:encoded>
      <pubDate>Tue, 28 Jun 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/6a1c3956/0f061eeb.mp3" length="27083955" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>720</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Can a Laravel developer learn something from the Rails or Erlang communities? We share some perspective on how to broaden your horizons, and when might be a good time in your career to do that.</p><p>Download our free ebook <a href="https://masteringlaravel.io/security?ref=podcast">7 Steps to Securing Your Laravel App</a>.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/6a1c3956/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Uh-oh, that proof of concept is going into production. Now what?</title>
      <itunes:episode>50</itunes:episode>
      <podcast:episode>50</podcast:episode>
      <itunes:title>Uh-oh, that proof of concept is going into production. Now what?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">88e07695-a20a-47d9-9986-c2f8d1ef1410</guid>
      <link>https://share.transistor.fm/s/2684280b</link>
      <description>
        <![CDATA[<p>Many of us have built something we thought was "throw-away" code, only to have someone decide it's good enough to ship to production. How can you prepare for this, and avoid problems when it happens?</p><p>Check out <a href="https://aaronsaray.com">Aaron's blog</a> and <a href="https://joelclermont.com">Joel's blog</a> for even more amazing wisdom.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Many of us have built something we thought was "throw-away" code, only to have someone decide it's good enough to ship to production. How can you prepare for this, and avoid problems when it happens?</p><p>Check out <a href="https://aaronsaray.com">Aaron's blog</a> and <a href="https://joelclermont.com">Joel's blog</a> for even more amazing wisdom.</p>]]>
      </content:encoded>
      <pubDate>Tue, 14 Jun 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/2684280b/a2509b51.mp3" length="38593409" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>1022</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Many of us have built something we thought was "throw-away" code, only to have someone decide it's good enough to ship to production. How can you prepare for this, and avoid problems when it happens?</p><p>Check out <a href="https://aaronsaray.com">Aaron's blog</a> and <a href="https://joelclermont.com">Joel's blog</a> for even more amazing wisdom.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/2684280b/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>The benefits of sharing what you learn</title>
      <itunes:episode>49</itunes:episode>
      <podcast:episode>49</podcast:episode>
      <itunes:title>The benefits of sharing what you learn</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">94c2ecc5-03ad-4170-98d7-3f1463602498</guid>
      <link>https://share.transistor.fm/s/a6a5ca47</link>
      <description>
        <![CDATA[<p>If you are listening to this, you probably enjoy hearing other people share what they've learned. In this episode, we turn the tables and explain why you should consider sharing what you've learned as well.</p><p>Listening to us is just part of the fun. You can read what we've written too at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>If you are listening to this, you probably enjoy hearing other people share what they've learned. In this episode, we turn the tables and explain why you should consider sharing what you've learned as well.</p><p>Listening to us is just part of the fun. You can read what we've written too at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 31 May 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/a6a5ca47/6c0eefbc.mp3" length="23627789" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>626</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>If you are listening to this, you probably enjoy hearing other people share what they've learned. In this episode, we turn the tables and explain why you should consider sharing what you've learned as well.</p><p>Listening to us is just part of the fun. You can read what we've written too at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/a6a5ca47/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>How to deal with interruptions</title>
      <itunes:episode>48</itunes:episode>
      <podcast:episode>48</podcast:episode>
      <itunes:title>How to deal with interruptions</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">dd474429-a6f0-4d5f-af78-bec1ac2f84cb</guid>
      <link>https://share.transistor.fm/s/97d9033c</link>
      <description>
        <![CDATA[<p>How can you handle an interruption to your work, especially if it is an urgent request for help? We discuss how to do this without derailing your planned work for the day.</p><p>Let us know if you have a question or topic you'd like to discuss on the show. <a href="https://masteringlaravel.io/contact?ref=podcast">Contact us</a> with your suggestions, or just to tell us how great we're doing.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>How can you handle an interruption to your work, especially if it is an urgent request for help? We discuss how to do this without derailing your planned work for the day.</p><p>Let us know if you have a question or topic you'd like to discuss on the show. <a href="https://masteringlaravel.io/contact?ref=podcast">Contact us</a> with your suggestions, or just to tell us how great we're doing.</p>]]>
      </content:encoded>
      <pubDate>Tue, 17 May 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/97d9033c/c633762d.mp3" length="22521189" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>595</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>How can you handle an interruption to your work, especially if it is an urgent request for help? We discuss how to do this without derailing your planned work for the day.</p><p>Let us know if you have a question or topic you'd like to discuss on the show. <a href="https://masteringlaravel.io/contact?ref=podcast">Contact us</a> with your suggestions, or just to tell us how great we're doing.</p>]]>
      </itunes:summary>
      <itunes:keywords></itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/97d9033c/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Should I write this weird code or is there a Laravel feature I can use instead?</title>
      <itunes:episode>47</itunes:episode>
      <podcast:episode>47</podcast:episode>
      <itunes:title>Should I write this weird code or is there a Laravel feature I can use instead?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">4ff9aa6c-1072-4f4c-b191-3388dc560621</guid>
      <link>https://share.transistor.fm/s/5077a7d5</link>
      <description>
        <![CDATA[<p>We walk through a recent experience where Joel was about to "burn down the world," as Aaron calls it. Instead, after doing a little exploration of the Laravel framework code, we landed on a much cleaner solution.</p><p><a href="https://nocompromises.io/?ref=podcast">Want some help to make your Laravel SaaS bette</a>r? Book a free 30 minute call.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>We walk through a recent experience where Joel was about to "burn down the world," as Aaron calls it. Instead, after doing a little exploration of the Laravel framework code, we landed on a much cleaner solution.</p><p><a href="https://nocompromises.io/?ref=podcast">Want some help to make your Laravel SaaS bette</a>r? Book a free 30 minute call.</p>]]>
      </content:encoded>
      <pubDate>Tue, 03 May 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/5077a7d5/f73325f5.mp3" length="36707601" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>972</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>We walk through a recent experience where Joel was about to "burn down the world," as Aaron calls it. Instead, after doing a little exploration of the Laravel framework code, we landed on a much cleaner solution.</p><p><a href="https://nocompromises.io/?ref=podcast">Want some help to make your Laravel SaaS bette</a>r? Book a free 30 minute call.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/5077a7d5/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Take time to look back and review</title>
      <itunes:episode>46</itunes:episode>
      <podcast:episode>46</podcast:episode>
      <itunes:title>Take time to look back and review</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f942a15d-c529-4df6-83e6-d322b96add29</guid>
      <link>https://share.transistor.fm/s/38d03340</link>
      <description>
        <![CDATA[<p>It feels good to finish a project, but before you move on, there are benefits to pausing and reflecting on what went well and what could have been better.</p><p>If you're enjoying the podcast, we'd really appreciate it if you <a href="https://show.nocompromises.io/subscribe">shared it with a fellow developer</a>.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>It feels good to finish a project, but before you move on, there are benefits to pausing and reflecting on what went well and what could have been better.</p><p>If you're enjoying the podcast, we'd really appreciate it if you <a href="https://show.nocompromises.io/subscribe">shared it with a fellow developer</a>.</p>]]>
      </content:encoded>
      <pubDate>Tue, 19 Apr 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/38d03340/3fcb4e87.mp3" length="25904997" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>691</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>It feels good to finish a project, but before you move on, there are benefits to pausing and reflecting on what went well and what could have been better.</p><p>If you're enjoying the podcast, we'd really appreciate it if you <a href="https://show.nocompromises.io/subscribe">shared it with a fellow developer</a>.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP, development</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/38d03340/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>The benefits of testing, even under a deadline</title>
      <itunes:episode>45</itunes:episode>
      <podcast:episode>45</podcast:episode>
      <itunes:title>The benefits of testing, even under a deadline</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d39f2cbe-e5bb-409b-88bd-cfb87e82d3ee</guid>
      <link>https://share.transistor.fm/s/9e9745bc</link>
      <description>
        <![CDATA[<p>We have to ship this feature in 2 weeks! Do we have time to test? In this episode we talk through this scenario and share some benefits of testing even under the pressure of a looming deadline.</p><p>Free, practical advice on how to improve your Laravel app at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>We have to ship this feature in 2 weeks! Do we have time to test? In this episode we talk through this scenario and share some benefits of testing even under the pressure of a looming deadline.</p><p>Free, practical advice on how to improve your Laravel app at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 05 Apr 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/9e9745bc/4a2f19fa.mp3" length="27868243" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>720</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>We have to ship this feature in 2 weeks! Do we have time to test? In this episode we talk through this scenario and share some benefits of testing even under the pressure of a looming deadline.</p><p>Free, practical advice on how to improve your Laravel app at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, testing, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/9e9745bc/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>When to calculate a value versus when to store it in the database</title>
      <itunes:episode>44</itunes:episode>
      <podcast:episode>44</podcast:episode>
      <itunes:title>When to calculate a value versus when to store it in the database</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ae71b2a7-431c-4516-973d-592bebbb3431</guid>
      <link>https://share.transistor.fm/s/cea02214</link>
      <description>
        <![CDATA[<p>For some values, it can be tricky to know whether it's better to calculate it on the fly or when to calculate it once and store in the database. We talk through a recent scenario we bumped into, and what factors to weigh when making this decision</p><p>Download our <a href="http://masteringlaravel.io/?ref=podcast">free Laravel tips ebook</a>.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>For some values, it can be tricky to know whether it's better to calculate it on the fly or when to calculate it once and store in the database. We talk through a recent scenario we bumped into, and what factors to weigh when making this decision</p><p>Download our <a href="http://masteringlaravel.io/?ref=podcast">free Laravel tips ebook</a>.</p>]]>
      </content:encoded>
      <pubDate>Tue, 22 Mar 2022 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/cea02214/6c838800.mp3" length="18544163" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>771</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>For some values, it can be tricky to know whether it's better to calculate it on the fly or when to calculate it once and store in the database. We talk through a recent scenario we bumped into, and what factors to weigh when making this decision</p><p>Download our <a href="http://masteringlaravel.io/?ref=podcast">free Laravel tips ebook</a>.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/cea02214/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Should I use an event/listener or a model observer?</title>
      <itunes:episode>43</itunes:episode>
      <podcast:episode>43</podcast:episode>
      <itunes:title>Should I use an event/listener or a model observer?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">45e69015-7211-4ac8-bc76-c360729b14f1</guid>
      <link>https://share.transistor.fm/s/45fb66a4</link>
      <description>
        <![CDATA[<p>We share a few rules that help guide us to determine when to manually fire an event versus when to wire up a model observer.</p><p>Make my phone buzz and download a <a href="https://masteringlaravel.io?ref=podcast">book to make you a better Laravel developer</a>.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>We share a few rules that help guide us to determine when to manually fire an event versus when to wire up a model observer.</p><p>Make my phone buzz and download a <a href="https://masteringlaravel.io?ref=podcast">book to make you a better Laravel developer</a>.</p>]]>
      </content:encoded>
      <pubDate>Tue, 08 Mar 2022 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/45fb66a4/597c8c82.mp3" length="19180947" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>798</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>We share a few rules that help guide us to determine when to manually fire an event versus when to wire up a model observer.</p><p>Make my phone buzz and download a <a href="https://masteringlaravel.io?ref=podcast">book to make you a better Laravel developer</a>.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/45fb66a4/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>How we wrap up a project</title>
      <itunes:episode>42</itunes:episode>
      <podcast:episode>42</podcast:episode>
      <itunes:title>How we wrap up a project</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ff1b7d26-7b8c-4ca8-be0d-721cfd4b5fc0</guid>
      <link>https://share.transistor.fm/s/04da2f7b</link>
      <description>
        <![CDATA[<p>Wrapping up our series on how we work, we talk through the end of a project and how to make sure there are no surprises.</p><p>Download the <a href="https://masteringlaravel.io/security?ref=podcast">free security tips ebook</a> from masteringlaravel.io.<br><a href="https://www.youtube.com/watch?v=51BQfPeSK8k">It's not easy being green</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Wrapping up our series on how we work, we talk through the end of a project and how to make sure there are no surprises.</p><p>Download the <a href="https://masteringlaravel.io/security?ref=podcast">free security tips ebook</a> from masteringlaravel.io.<br><a href="https://www.youtube.com/watch?v=51BQfPeSK8k">It's not easy being green</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 22 Feb 2022 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/04da2f7b/eae4821e.mp3" length="17308309" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>720</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Wrapping up our series on how we work, we talk through the end of a project and how to make sure there are no surprises.</p><p>Download the <a href="https://masteringlaravel.io/security?ref=podcast">free security tips ebook</a> from masteringlaravel.io.<br><a href="https://www.youtube.com/watch?v=51BQfPeSK8k">It's not easy being green</a></p>]]>
      </itunes:summary>
      <itunes:keywords></itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/04da2f7b/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Don't be afraid to change your mind</title>
      <itunes:episode>41</itunes:episode>
      <podcast:episode>41</podcast:episode>
      <itunes:title>Don't be afraid to change your mind</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">483a8596-033c-490d-872d-0c46601adc5f</guid>
      <link>https://share.transistor.fm/s/2a80fa2d</link>
      <description>
        <![CDATA[<p>You learned a best practice, and it served you well. Is it set in stone? Or should you be open to re-evaluate later?</p><p>Get those free e-books at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>You learned a best practice, and it served you well. Is it set in stone? Or should you be open to re-evaluate later?</p><p>Get those free e-books at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 08 Feb 2022 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/2a80fa2d/fa3dccd7.mp3" length="18122217" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>754</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>You learned a best practice, and it served you well. Is it set in stone? Or should you be open to re-evaluate later?</p><p>Get those free e-books at <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, php, best practices</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/2a80fa2d/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>The proper way to argue</title>
      <itunes:episode>40</itunes:episode>
      <podcast:episode>40</podcast:episode>
      <itunes:title>The proper way to argue</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e7d041bc-7943-4654-b5ba-8592cfb990b3</guid>
      <link>https://share.transistor.fm/s/55ffc271</link>
      <description>
        <![CDATA[<p>We've all had disagreements about how to write or organize code, or how a feature should work. We share some tips on how to discuss it productively.</p><p>Be a Joel, not a Cole: <a href="https://masteringlaravel.io?ref=podcast">masteringlaravel.io</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>We've all had disagreements about how to write or organize code, or how a feature should work. We share some tips on how to discuss it productively.</p><p>Be a Joel, not a Cole: <a href="https://masteringlaravel.io?ref=podcast">masteringlaravel.io</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 25 Jan 2022 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/55ffc271/6a74399d.mp3" length="21714187" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>903</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>We've all had disagreements about how to write or organize code, or how a feature should work. We share some tips on how to discuss it productively.</p><p>Be a Joel, not a Cole: <a href="https://masteringlaravel.io?ref=podcast">masteringlaravel.io</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/55ffc271/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>What makes a good staging environment?</title>
      <itunes:episode>39</itunes:episode>
      <podcast:episode>39</podcast:episode>
      <itunes:title>What makes a good staging environment?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">07fb0589-96f1-44d1-979c-395d9f4604f7</guid>
      <link>https://share.transistor.fm/s/a5f5b2f7</link>
      <description>
        <![CDATA[<p>Setting up a useful staging environment involves a number of choices. We discuss our preferred strategies and talk about why having a staging environment is a good thing.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Setting up a useful staging environment involves a number of choices. We discuss our preferred strategies and talk about why having a staging environment is a good thing.</p>]]>
      </content:encoded>
      <pubDate>Tue, 11 Jan 2022 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/a5f5b2f7/03462e0a.mp3" length="24568917" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>1022</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Setting up a useful staging environment involves a number of choices. We discuss our preferred strategies and talk about why having a staging environment is a good thing.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, php, staging</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/a5f5b2f7/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Your project is not special</title>
      <itunes:episode>38</itunes:episode>
      <podcast:episode>38</podcast:episode>
      <itunes:title>Your project is not special</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6875c630-838c-48e5-87b0-9837d325a9bb</guid>
      <link>https://share.transistor.fm/s/055ffce1</link>
      <description>
        <![CDATA[<p>This isn't meant to be an insult. It's actually a good thing that your project isn't completely unique, and you can benefit from what other people have already learned.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>This isn't meant to be an insult. It's actually a good thing that your project isn't completely unique, and you can benefit from what other people have already learned.</p>]]>
      </content:encoded>
      <pubDate>Tue, 28 Dec 2021 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/055ffce1/563a6f88.mp3" length="14302267" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>595</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>This isn't meant to be an insult. It's actually a good thing that your project isn't completely unique, and you can benefit from what other people have already learned.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, design patterns</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/055ffce1/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Planning out a week of work</title>
      <itunes:episode>37</itunes:episode>
      <podcast:episode>37</podcast:episode>
      <itunes:title>Planning out a week of work</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">c3afb665-1bc1-4444-94f2-0388f891bfc6</guid>
      <link>https://share.transistor.fm/s/c5b7cd33</link>
      <description>
        <![CDATA[<p>Continuing our series on "how we work", today we finally get to the dev work. How we organize it, plan it, and communicate with the project stakeholders.</p><p>I heard this site is cool: <a href="https://masteringlaravel.io?ref=podcast">masteringlaravel.io</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Continuing our series on "how we work", today we finally get to the dev work. How we organize it, plan it, and communicate with the project stakeholders.</p><p>I heard this site is cool: <a href="https://masteringlaravel.io?ref=podcast">masteringlaravel.io</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 14 Dec 2021 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/c5b7cd33/0837de38.mp3" length="21691741" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>902</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Continuing our series on "how we work", today we finally get to the dev work. How we organize it, plan it, and communicate with the project stakeholders.</p><p>I heard this site is cool: <a href="https://masteringlaravel.io?ref=podcast">masteringlaravel.io</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, planning</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/c5b7cd33/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>A few things to watch for with Laravel policies</title>
      <itunes:episode>36</itunes:episode>
      <podcast:episode>36</podcast:episode>
      <itunes:title>A few things to watch for with Laravel policies</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">9d9fb4ae-5763-4760-8a7e-9dd83115981f</guid>
      <link>https://share.transistor.fm/s/e903c5fb</link>
      <description>
        <![CDATA[<p>Aaron shares a few things that he's bumped into with policies in his apps, and we talk through some possible solutions or processes to help avoid them.</p><p>Tweet <a href="https://twitter.com/jclermont">@jclermont</a> if there's something you'd like us to discuss.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Aaron shares a few things that he's bumped into with policies in his apps, and we talk through some possible solutions or processes to help avoid them.</p><p>Tweet <a href="https://twitter.com/jclermont">@jclermont</a> if there's something you'd like us to discuss.</p>]]>
      </content:encoded>
      <pubDate>Tue, 30 Nov 2021 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/e903c5fb/09af747d.mp3" length="18038785" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>750</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Aaron shares a few things that he's bumped into with policies in his apps, and we talk through some possible solutions or processes to help avoid them.</p><p>Tweet <a href="https://twitter.com/jclermont">@jclermont</a> if there's something you'd like us to discuss.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, policies, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/e903c5fb/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Onboarding a new project</title>
      <itunes:episode>35</itunes:episode>
      <podcast:episode>35</podcast:episode>
      <itunes:title>Onboarding a new project</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ee8aa850-f06d-4217-8a1c-2540bcf2887a</guid>
      <link>https://share.transistor.fm/s/057ec278</link>
      <description>
        <![CDATA[<p>When you inherit a project, how do you draw a balance before making everything nice to work with and delivering value to the stakeholders?</p><p>Check out <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>When you inherit a project, how do you draw a balance before making everything nice to work with and delivering value to the stakeholders?</p><p>Check out <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 16 Nov 2021 00:00:00 -0600</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/057ec278/c18516ca.mp3" length="22398457" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>932</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>When you inherit a project, how do you draw a balance before making everything nice to work with and delivering value to the stakeholders?</p><p>Check out <a href="https://masteringlaravel.io/?ref=podcast">masteringlaravel.io</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/057ec278/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Paying down technical debt</title>
      <itunes:episode>34</itunes:episode>
      <podcast:episode>34</podcast:episode>
      <itunes:title>Paying down technical debt</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">59fd5927-bf25-412f-8b66-d67b40c89057</guid>
      <link>https://share.transistor.fm/s/9f200623</link>
      <description>
        <![CDATA[<p>Have a question? Want us to discuss a topic? Do you like sending email to random people on the Internet?<br>Contact us at <a href="mailto:podcast@nocompromises.io">podcast@nocompromises.io</a> for all of the above.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Have a question? Want us to discuss a topic? Do you like sending email to random people on the Internet?<br>Contact us at <a href="mailto:podcast@nocompromises.io">podcast@nocompromises.io</a> for all of the above.</p>]]>
      </content:encoded>
      <pubDate>Tue, 02 Nov 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/9f200623/7873ef8a.mp3" length="24392958" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>1015</itunes:duration>
      <itunes:summary>Is all technical debt bad? Can it serve a valuable purpose? We share our opinions along with some tips on how to be strategic when paying down technical debt in your project.</itunes:summary>
      <itunes:subtitle>Is all technical debt bad? Can it serve a valuable purpose? We share our opinions along with some tips on how to be strategic when paying down technical debt in your project.</itunes:subtitle>
      <itunes:keywords>Laravel, php, technical debt</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/9f200623/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Knowing when and how to try something new</title>
      <itunes:episode>33</itunes:episode>
      <podcast:episode>33</podcast:episode>
      <itunes:title>Knowing when and how to try something new</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f5bc76ee-a608-49dd-838e-d3fec7ea5d11</guid>
      <link>https://share.transistor.fm/s/342d4034</link>
      <description>
        <![CDATA[<p>You just attended a conference or finished a book/course and you're all excited to try out some new "best practice". We discuss how to balance this enthusiasm with the needs of your team and project.</p><p>* Check out <a href="https://masteringlaravel.io?ref=podcast">masteringlaravel.io</a><br>* Download our <a href="https://nocompromises.gumroad.com/l/little-laravel?ref=podcast">free Laravel Tips ebook</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>You just attended a conference or finished a book/course and you're all excited to try out some new "best practice". We discuss how to balance this enthusiasm with the needs of your team and project.</p><p>* Check out <a href="https://masteringlaravel.io?ref=podcast">masteringlaravel.io</a><br>* Download our <a href="https://nocompromises.gumroad.com/l/little-laravel?ref=podcast">free Laravel Tips ebook</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 19 Oct 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/342d4034/339bc8d0.mp3" length="19281877" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>802</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>You just attended a conference or finished a book/course and you're all excited to try out some new "best practice". We discuss how to balance this enthusiasm with the needs of your team and project.</p><p>* Check out <a href="https://masteringlaravel.io?ref=podcast">masteringlaravel.io</a><br>* Download our <a href="https://nocompromises.gumroad.com/l/little-laravel?ref=podcast">free Laravel Tips ebook</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, learning</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/342d4034/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Wireframe before coding</title>
      <itunes:episode>32</itunes:episode>
      <podcast:episode>32</podcast:episode>
      <itunes:title>Wireframe before coding</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">347cce00-c219-4cc7-95cf-d06cca3bab70</guid>
      <link>https://share.transistor.fm/s/40e87b64</link>
      <description>
        <![CDATA[<p>As developers, coding is the fun part, but we share why we like to slow down and take some time to wireframe before diving into the editor</p><p>* Download our <a href="https://nocompromises.gumroad.com/l/little-laravel">free Laravel Tips ebook</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>As developers, coding is the fun part, but we share why we like to slow down and take some time to wireframe before diving into the editor</p><p>* Download our <a href="https://nocompromises.gumroad.com/l/little-laravel">free Laravel Tips ebook</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 05 Oct 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/40e87b64/fc52e44a.mp3" length="21283319" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>885</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>As developers, coding is the fun part, but we share why we like to slow down and take some time to wireframe before diving into the editor</p><p>* Download our <a href="https://nocompromises.gumroad.com/l/little-laravel">free Laravel Tips ebook</a></p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, PHP, wireframing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/40e87b64/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Continuous integration doesn't have to be hard</title>
      <itunes:episode>31</itunes:episode>
      <podcast:episode>31</podcast:episode>
      <itunes:title>Continuous integration doesn't have to be hard</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">9550730f-29f2-4c9e-b815-dc2ed555ab64</guid>
      <link>https://share.transistor.fm/s/b4089be7</link>
      <description>
        <![CDATA[<p>* <a href="https://gum.co/actionsbook/nocompromises">Github Actions</a> by Michael Heap (50% discount for podcast listeners)<br>* <a href="https://masteringlaravel.io?ref=podcast">masteringlaravel.io</a> - get a jump start on validation with our free worksheet</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>* <a href="https://gum.co/actionsbook/nocompromises">Github Actions</a> by Michael Heap (50% discount for podcast listeners)<br>* <a href="https://masteringlaravel.io?ref=podcast">masteringlaravel.io</a> - get a jump start on validation with our free worksheet</p>]]>
      </content:encoded>
      <pubDate>Tue, 21 Sep 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/b4089be7/e2ff4dc0.mp3" length="25718595" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>1070</itunes:duration>
      <itunes:summary>Maybe "continuous integration" sounds like a complex thing to setup. We explain why it doesn't have to be, how to start small, and what the benefits are.</itunes:summary>
      <itunes:subtitle>Maybe "continuous integration" sounds like a complex thing to setup. We explain why it doesn't have to be, how to start small, and what the benefits are.</itunes:subtitle>
      <itunes:keywords>Laravel, php, continuous integration, GitHub actions</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/b4089be7/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Deciding what to build</title>
      <itunes:episode>30</itunes:episode>
      <podcast:episode>30</podcast:episode>
      <itunes:title>Deciding what to build</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7dabae76-2183-448d-8fb5-23e2341a86d4</guid>
      <link>https://share.transistor.fm/s/d49d37c3</link>
      <description>
        <![CDATA[<p>Check out our new website: <a href="https://masteringlaravel.io/?ref=podcast">MasteringLaravel.io</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Check out our new website: <a href="https://masteringlaravel.io/?ref=podcast">MasteringLaravel.io</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 07 Sep 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/d49d37c3/193d9ce7.mp3" length="26716275" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>1112</itunes:duration>
      <itunes:summary>So someone has asked you to build an app, or add a feature to an app. How do you decide exactly what to build and how much to charge? We share our approach to these important questions in this episode.</itunes:summary>
      <itunes:subtitle>So someone has asked you to build an app, or add a feature to an app. How do you decide exactly what to build and how much to charge? We share our approach to these important questions in this episode.</itunes:subtitle>
      <itunes:keywords>Laravel, PHP</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/d49d37c3/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Are your logs too noisy?</title>
      <itunes:episode>29</itunes:episode>
      <podcast:episode>29</podcast:episode>
      <itunes:title>Are your logs too noisy?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">8e86ed30-c0d6-41a9-9528-9fffc1eb210e</guid>
      <link>https://share.transistor.fm/s/122c4a58</link>
      <description>
        <![CDATA[<ul><li>The <a href="https://blog.codinghorror.com/the-broken-window-theory/">broken window theory</a> of programming</li><li>New site launch! <a href="https://masteringlaravel.io?ref=podcast">MasteringLaravel.io</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<ul><li>The <a href="https://blog.codinghorror.com/the-broken-window-theory/">broken window theory</a> of programming</li><li>New site launch! <a href="https://masteringlaravel.io?ref=podcast">MasteringLaravel.io</a></li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 24 Aug 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/122c4a58/24469ff1.mp3" length="15923263" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>662</itunes:duration>
      <itunes:summary>Logs and error trackers are a vital tool for maintaining a production app. But if you're not careful, they can get so noisy they stop providing value. We discuss a few reasons why this is the case and our strategy for avoiding this problem.</itunes:summary>
      <itunes:subtitle>Logs and error trackers are a vital tool for maintaining a production app. But if you're not careful, they can get so noisy they stop providing value. We discuss a few reasons why this is the case and our strategy for avoiding this problem.</itunes:subtitle>
      <itunes:keywords>laravel, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/122c4a58/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>How we decide whether or not to take on something new</title>
      <itunes:episode>28</itunes:episode>
      <podcast:episode>28</podcast:episode>
      <itunes:title>How we decide whether or not to take on something new</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">cd9b4b87-7750-4e6a-8286-d024c9a2908e</guid>
      <link>https://share.transistor.fm/s/ea11c6fb</link>
      <description>
        <![CDATA[<p>This episode is a little different. We take a peek behind the scenes as to how we qualify projects, and the sorts of things you might think about before deciding whether or not to take on something new.</p><p>Find out more about <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a>.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>This episode is a little different. We take a peek behind the scenes as to how we qualify projects, and the sorts of things you might think about before deciding whether or not to take on something new.</p><p>Find out more about <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a>.</p>]]>
      </content:encoded>
      <pubDate>Tue, 10 Aug 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont and Aaron Saray</author>
      <enclosure url="https://media.transistor.fm/ea11c6fb/9c69063c.mp3" length="31673389" type="audio/mpeg"/>
      <itunes:author>Joel Clermont and Aaron Saray</itunes:author>
      <itunes:duration>1318</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>This episode is a little different. We take a peek behind the scenes as to how we qualify projects, and the sorts of things you might think about before deciding whether or not to take on something new.</p><p>Find out more about <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a>.</p>]]>
      </itunes:summary>
      <itunes:keywords>Laravel, php, business, clients</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/ea11c6fb/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Are you allowed to do that?</title>
      <itunes:episode>27</itunes:episode>
      <podcast:episode>27</podcast:episode>
      <itunes:title>Are you allowed to do that?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d58182ad-c434-40ae-912a-8db09fe51562</guid>
      <link>https://share.transistor.fm/s/97211925</link>
      <description>
        <![CDATA[<p>Roles and permissions are a core part of most applications. Laravel provides some tools for managing and enforcing this, and third party packages provide even more features. Aaron and Joel share their techniques for enforcing roles and permissions, in a way that won't get harder to manage over time.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p><p>Our favorite permissions package: <a href="https://github.com/spatie/laravel-permission">laravel-permission</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Roles and permissions are a core part of most applications. Laravel provides some tools for managing and enforcing this, and third party packages provide even more features. Aaron and Joel share their techniques for enforcing roles and permissions, in a way that won't get harder to manage over time.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p><p>Our favorite permissions package: <a href="https://github.com/spatie/laravel-permission">laravel-permission</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 27 Jul 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/97211925/7e6a5a41.mp3" length="16491336" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>1030</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Roles and permissions are a core part of most applications. Laravel provides some tools for managing and enforcing this, and third party packages provide even more features. Aaron and Joel share their techniques for enforcing roles and permissions, in a way that won't get harder to manage over time.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p><p>Our favorite permissions package: <a href="https://github.com/spatie/laravel-permission">laravel-permission</a></p>]]>
      </itunes:summary>
      <itunes:keywords>authorization, permissions, laravel, php, roles</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/97211925/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Are you a Laravel developer or a PHP developer?</title>
      <itunes:episode>26</itunes:episode>
      <podcast:episode>26</podcast:episode>
      <itunes:title>Are you a Laravel developer or a PHP developer?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">34dc2407-2e82-4196-9cb8-906d485460b5</guid>
      <link>https://share.transistor.fm/s/dbbacced</link>
      <description>
        <![CDATA[<p>When you're building a Laravel app, you're writing PHP code, but you're dealing with many patterns and conveniences provided by Laravel. So where do you draw the line between the two? Is it important? We discuss this topic and how you can get the most out of what both PHP and Laravel have to offer.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p><p>Fun game to learn/practice regular expression syntax: <a href="https://regexcrossword.com">Regex Crossword</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>When you're building a Laravel app, you're writing PHP code, but you're dealing with many patterns and conveniences provided by Laravel. So where do you draw the line between the two? Is it important? We discuss this topic and how you can get the most out of what both PHP and Laravel have to offer.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p><p>Fun game to learn/practice regular expression syntax: <a href="https://regexcrossword.com">Regex Crossword</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 13 Jul 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/dbbacced/0faec458.mp3" length="17043916" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>1065</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>When you're building a Laravel app, you're writing PHP code, but you're dealing with many patterns and conveniences provided by Laravel. So where do you draw the line between the two? Is it important? We discuss this topic and how you can get the most out of what both PHP and Laravel have to offer.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p><p>Fun game to learn/practice regular expression syntax: <a href="https://regexcrossword.com">Regex Crossword</a></p>]]>
      </itunes:summary>
      <itunes:keywords>laravel, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/dbbacced/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Should developers have access to production?</title>
      <itunes:episode>25</itunes:episode>
      <podcast:episode>25</podcast:episode>
      <itunes:title>Should developers have access to production?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">0593d420-51c8-451c-8e7f-4bd1ec290d44</guid>
      <link>https://share.transistor.fm/s/26426c85</link>
      <description>
        <![CDATA[<p>&gt; Developer: "I just need to SSH in real quick"<br>&gt; Server admin: "No"</p><p>Have you had this discussion? Listen in as Joel and Aaron talk about their experience on teams of different sizes, and how to handle this potential conflict, while still getting your work done.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>&gt; Developer: "I just need to SSH in real quick"<br>&gt; Server admin: "No"</p><p>Have you had this discussion? Listen in as Joel and Aaron talk about their experience on teams of different sizes, and how to handle this potential conflict, while still getting your work done.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 29 Jun 2021 16:03:06 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/26426c85/f999dd8a.mp3" length="12187570" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>761</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>&gt; Developer: "I just need to SSH in real quick"<br>&gt; Server admin: "No"</p><p>Have you had this discussion? Listen in as Joel and Aaron talk about their experience on teams of different sizes, and how to handle this potential conflict, while still getting your work done.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p>]]>
      </itunes:summary>
      <itunes:keywords>security, devops, laravel, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/26426c85/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Pick a coding standard, any one will do</title>
      <itunes:episode>24</itunes:episode>
      <podcast:episode>24</podcast:episode>
      <itunes:title>Pick a coding standard, any one will do</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ff34b0b0-2c46-4678-8425-5d16354c5fa4</guid>
      <link>https://share.transistor.fm/s/aee9398f</link>
      <description>
        <![CDATA[<p>Where should I place this curly brace? Trailing commas or not? Have you encountered disagreements about coding standards on your team. In this episode we explain the benefits of coding standards, how to adopt them on your project, and discuss the two most popular tools in the PHP community for enforcing them.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Where should I place this curly brace? Trailing commas or not? Have you encountered disagreements about coding standards on your team. In this episode we explain the benefits of coding standards, how to adopt them on your project, and discuss the two most popular tools in the PHP community for enforcing them.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 15 Jun 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/aee9398f/55027bef.mp3" length="18777617" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>1173</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Where should I place this curly brace? Trailing commas or not? Have you encountered disagreements about coding standards on your team. In this episode we explain the benefits of coding standards, how to adopt them on your project, and discuss the two most popular tools in the PHP community for enforcing them.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p>]]>
      </itunes:summary>
      <itunes:keywords>coding standards, laravel, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/aee9398f/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>The art of asking and answering questions</title>
      <itunes:episode>23</itunes:episode>
      <podcast:episode>23</podcast:episode>
      <itunes:title>The art of asking and answering questions</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">a1c491b2-8035-4613-bb24-9a4db52e1f0b</guid>
      <link>https://share.transistor.fm/s/b16638a4</link>
      <description>
        <![CDATA[<p>We've all been stuck with something we didn't know. Should you ask for help? And how? Or if someone on your team asks you a question, how can you handle it best? We discuss it all.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>We've all been stuck with something we didn't know. Should you ask for help? And how? Or if someone on your team asks you a question, how can you handle it best? We discuss it all.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 01 Jun 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/b16638a4/701d49a7.mp3" length="15337557" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>958</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>We've all been stuck with something we didn't know. Should you ask for help? And how? Or if someone on your team asks you a question, how can you handle it best? We discuss it all.</p><p>Download our free eBook of Laravel tips: <a href="https://nocompromises.gumroad.com/l/little-laravel">A Little Bit of Laravel</a></p>]]>
      </itunes:summary>
      <itunes:keywords>laravel</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/b16638a4/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Testing 1 ... 2 ... 3, let's talk testing</title>
      <itunes:episode>22</itunes:episode>
      <podcast:episode>22</podcast:episode>
      <itunes:title>Testing 1 ... 2 ... 3, let's talk testing</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">0dfaac87-48be-4cab-a208-1ac2520bae82</guid>
      <link>https://share.transistor.fm/s/39bdbebf</link>
      <description>
        <![CDATA[<p>What are the big 3 types of tests we use on our projects? How do we decide which to use? Listen in as we discuss this and more.</p><p>Need help improving your testing strategy, or just need help to get your team started with testing? Setup a <a href="https://nocompromises.io/?ref=podcast">free consultation call</a>.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>What are the big 3 types of tests we use on our projects? How do we decide which to use? Listen in as we discuss this and more.</p><p>Need help improving your testing strategy, or just need help to get your team started with testing? Setup a <a href="https://nocompromises.io/?ref=podcast">free consultation call</a>.</p>]]>
      </content:encoded>
      <pubDate>Tue, 18 May 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/39bdbebf/321e6df2.mp3" length="14324318" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>895</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>What are the big 3 types of tests we use on our projects? How do we decide which to use? Listen in as we discuss this and more.</p><p>Need help improving your testing strategy, or just need help to get your team started with testing? Setup a <a href="https://nocompromises.io/?ref=podcast">free consultation call</a>.</p>]]>
      </itunes:summary>
      <itunes:keywords></itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/39bdbebf/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Guarded vs fillable, fight!</title>
      <itunes:episode>21</itunes:episode>
      <podcast:episode>21</podcast:episode>
      <itunes:title>Guarded vs fillable, fight!</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">163cea72-fe62-48f3-9d56-7a017aedf5ef</guid>
      <link>https://share.transistor.fm/s/434ed689</link>
      <description>
        <![CDATA[<p>It's no tabs versus spaces, but it's close. Do you use guarded or fillable in your Laravel models? Aaron and Joel share their default approach, as well as several reasons for that choice.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p>Find out more about <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a>.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>It's no tabs versus spaces, but it's close. Do you use guarded or fillable in your Laravel models? Aaron and Joel share their default approach, as well as several reasons for that choice.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p>Find out more about <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a>.</p>]]>
      </content:encoded>
      <pubDate>Tue, 04 May 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/434ed689/78d6d578.mp3" length="16696746" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>1043</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>It's no tabs versus spaces, but it's close. Do you use guarded or fillable in your Laravel models? Aaron and Joel share their default approach, as well as several reasons for that choice.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p>Find out more about <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a>.</p>]]>
      </itunes:summary>
      <itunes:keywords></itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/434ed689/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Don't ignore that pain!</title>
      <itunes:episode>20</itunes:episode>
      <podcast:episode>20</podcast:episode>
      <itunes:title>Don't ignore that pain!</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">da7733fe-ceeb-47bc-85cc-df6362331ca8</guid>
      <link>https://share.transistor.fm/s/a7b937e9</link>
      <description>
        <![CDATA[<p>It's easy to get used to things that cause us friction or pain in our development process. In this episode, we discuss how to avoid that trap and how to evaluate when to invest time in fixing that pain.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p>Find out more about <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a>.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>It's easy to get used to things that cause us friction or pain in our development process. In this episode, we discuss how to avoid that trap and how to evaluate when to invest time in fixing that pain.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p>Find out more about <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a>.</p>]]>
      </content:encoded>
      <pubDate>Tue, 20 Apr 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/a7b937e9/014a21fb.mp3" length="14125065" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>882</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>It's easy to get used to things that cause us friction or pain in our development process. In this episode, we discuss how to avoid that trap and how to evaluate when to invest time in fixing that pain.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p>Find out more about <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a>.</p>]]>
      </itunes:summary>
      <itunes:keywords>laravel</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/a7b937e9/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Validation is your friend</title>
      <itunes:episode>19</itunes:episode>
      <podcast:episode>19</podcast:episode>
      <itunes:title>Validation is your friend</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">09313cc8-2df5-41ce-af5d-d4076a7baf14</guid>
      <link>https://share.transistor.fm/s/6b3fc672</link>
      <description>
        <![CDATA[<p>Validation may seem boring, but it's a vital part of any Laravel application. Joel and Aaron share some tips on validation along with exciting news about a new resource to master Laravel validation rules.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p>Find out more about <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a>.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Validation may seem boring, but it's a vital part of any Laravel application. Joel and Aaron share some tips on validation along with exciting news about a new resource to master Laravel validation rules.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p>Find out more about <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a>.</p>]]>
      </content:encoded>
      <pubDate>Tue, 06 Apr 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/6b3fc672/7dfe63a4.mp3" length="13705442" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>856</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Validation may seem boring, but it's a vital part of any Laravel application. Joel and Aaron share some tips on validation along with exciting news about a new resource to master Laravel validation rules.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p>Find out more about <a href="https://masteringlaravel.io/laravel-validation-book?ref=podcast">Mastering Laravel Validation Rules</a>.</p>]]>
      </itunes:summary>
      <itunes:keywords></itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/6b3fc672/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Always be ready to hand off the project</title>
      <itunes:episode>18</itunes:episode>
      <podcast:episode>18</podcast:episode>
      <itunes:title>Always be ready to hand off the project</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">9f506bf5-6fff-4f79-896e-65592a3b4c43</guid>
      <link>https://share.transistor.fm/s/ef357117</link>
      <description>
        <![CDATA[<p>Why is it important to think about a future project hand-off at the beginning of a client relationship? Aaron and Joel share their approach.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Why is it important to think about a future project hand-off at the beginning of a client relationship? Aaron and Joel share their approach.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p>]]>
      </content:encoded>
      <pubDate>Tue, 23 Mar 2021 00:00:00 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/ef357117/7764336f.mp3" length="14694652" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>918</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Why is it important to think about a future project hand-off at the beginning of a client relationship? Aaron and Joel share their approach.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p>]]>
      </itunes:summary>
      <itunes:keywords>laravel</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/ef357117/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Finding and fixing a performance issue</title>
      <itunes:episode>17</itunes:episode>
      <podcast:episode>17</podcast:episode>
      <itunes:title>Finding and fixing a performance issue</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f16a95c3-35a7-43be-a191-702c15411acb</guid>
      <link>https://share.transistor.fm/s/a493a7d0</link>
      <description>
        <![CDATA[<p>Last episode we discussed how to deal with a "slow app" complaint. This episode we discuss some technical approaches to find and fix the issue.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Last episode we discussed how to deal with a "slow app" complaint. This episode we discuss some technical approaches to find and fix the issue.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p>]]>
      </content:encoded>
      <pubDate>Tue, 09 Mar 2021 00:00:00 -0600</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/a493a7d0/3bdb3fdd.mp3" length="14903217" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>931</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Last episode we discussed how to deal with a "slow app" complaint. This episode we discuss some technical approaches to find and fix the issue.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p>]]>
      </itunes:summary>
      <itunes:keywords></itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/a493a7d0/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Someone said my app is slow. Now what?</title>
      <itunes:episode>16</itunes:episode>
      <podcast:episode>16</podcast:episode>
      <itunes:title>Someone said my app is slow. Now what?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">986e509a-621b-43f1-ba11-3f3ddd6d2b46</guid>
      <link>https://share.transistor.fm/s/5547739c</link>
      <description>
        <![CDATA[<p>The dreaded support ticket gets filed: App is slow! Before you get defensive or close as "Won't fix", consider a few tips on how to successfully approach this situation.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p><a href="https://en.wikipedia.org/wiki/Ed_Balls#Ed_Balls_Day">Ed Balls Day</a> wikipedia article</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>The dreaded support ticket gets filed: App is slow! Before you get defensive or close as "Won't fix", consider a few tips on how to successfully approach this situation.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p><a href="https://en.wikipedia.org/wiki/Ed_Balls#Ed_Balls_Day">Ed Balls Day</a> wikipedia article</p>]]>
      </content:encoded>
      <pubDate>Tue, 23 Feb 2021 00:00:00 -0600</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/5547739c/566f49e1.mp3" length="14052304" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>878</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>The dreaded support ticket gets filed: App is slow! Before you get defensive or close as "Won't fix", consider a few tips on how to successfully approach this situation.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p><a href="https://en.wikipedia.org/wiki/Ed_Balls#Ed_Balls_Day">Ed Balls Day</a> wikipedia article</p>]]>
      </itunes:summary>
      <itunes:keywords></itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/5547739c/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>How long does it take to get your project running?</title>
      <itunes:episode>15</itunes:episode>
      <podcast:episode>15</podcast:episode>
      <itunes:title>How long does it take to get your project running?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">1a1bacd1-a8a1-4c64-85a9-7f99a262cece</guid>
      <link>https://share.transistor.fm/s/2fe18087</link>
      <description>
        <![CDATA[<p>Aaron and Joel have joined a fair number of projects over the years. Listen as they share some tips on how to make process less painful for your team.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Aaron and Joel have joined a fair number of projects over the years. Listen as they share some tips on how to make process less painful for your team.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p>]]>
      </content:encoded>
      <pubDate>Tue, 09 Feb 2021 00:00:00 -0600</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/2fe18087/70f3d0e2.mp3" length="16140832" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>1008</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Aaron and Joel have joined a fair number of projects over the years. Listen as they share some tips on how to make process less painful for your team.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p>]]>
      </itunes:summary>
      <itunes:keywords>laravel</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/2fe18087/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Is it a good idea to install that package?</title>
      <itunes:episode>14</itunes:episode>
      <podcast:episode>14</podcast:episode>
      <itunes:title>Is it a good idea to install that package?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">36deb422-75f8-4c7f-a5d9-6a9c0c0e6d45</guid>
      <link>https://share.transistor.fm/s/c65d48a3</link>
      <description>
        <![CDATA[<p>Laravel and PHP have a rich ecosystem, but it's good to weigh the pros and cons before reaching for a new package. We share some things to consider.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Laravel and PHP have a rich ecosystem, but it's good to weigh the pros and cons before reaching for a new package. We share some things to consider.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p>]]>
      </content:encoded>
      <pubDate>Tue, 26 Jan 2021 00:00:00 -0600</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/c65d48a3/f81a9327.mp3" length="14507428" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>906</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Laravel and PHP have a rich ecosystem, but it's good to weigh the pros and cons before reaching for a new package. We share some things to consider.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p>]]>
      </itunes:summary>
      <itunes:keywords></itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/c65d48a3/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Where do I start making things better?</title>
      <itunes:episode>13</itunes:episode>
      <podcast:episode>13</podcast:episode>
      <itunes:title>Where do I start making things better?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">364143a9-12cb-41c0-bcdd-0c533e5de09c</guid>
      <link>https://share.transistor.fm/s/138958de</link>
      <description>
        <![CDATA[<p>Where are some good starting points for modernizing and improving a legacy codebase? Joel and Aaron discuss a few ideas where you could start.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p>Does anyone read these? Tweet <a href="https://twitter.com/jclermont">@jclermont</a> if you see this.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Where are some good starting points for modernizing and improving a legacy codebase? Joel and Aaron discuss a few ideas where you could start.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p>Does anyone read these? Tweet <a href="https://twitter.com/jclermont">@jclermont</a> if you see this.</p>]]>
      </content:encoded>
      <pubDate>Tue, 12 Jan 2021 00:00:00 -0600</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/138958de/45abdf68.mp3" length="14649514" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>915</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Where are some good starting points for modernizing and improving a legacy codebase? Joel and Aaron discuss a few ideas where you could start.</p><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">Laravel tips</a> newsletter!</p><p>Does anyone read these? Tweet <a href="https://twitter.com/jclermont">@jclermont</a> if you see this.</p>]]>
      </itunes:summary>
      <itunes:keywords></itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/138958de/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>How long is that going to take?</title>
      <itunes:episode>12</itunes:episode>
      <podcast:episode>12</podcast:episode>
      <itunes:title>How long is that going to take?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">b6bc524f-a19f-4644-90fd-74eba21dfaa1</guid>
      <link>https://share.transistor.fm/s/d1a7a8fe</link>
      <description>
        <![CDATA[<p>The eternal question that every developer hears: How long is that going to take? Aaron and Joel discuss some ways to frame that question, and how to provide an estimate that will avoid unnecessary disappointment.</p><ul><li>00:00 Accurate estimates can be difficult</li><li>02:00 Disconnect between a developer and a stakeholder</li><li>03:00 How Aaron approaches an estimate</li><li>06:05 Pad the estimate? Ranges?</li><li>07:38 The importance of open communication</li><li>08:12 Translating "hours" into real world time</li><li>09:50 Planning not pricing</li><li>11:56 Silly bit</li></ul><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">weekly newsletter</a> of Laravel tips.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>The eternal question that every developer hears: How long is that going to take? Aaron and Joel discuss some ways to frame that question, and how to provide an estimate that will avoid unnecessary disappointment.</p><ul><li>00:00 Accurate estimates can be difficult</li><li>02:00 Disconnect between a developer and a stakeholder</li><li>03:00 How Aaron approaches an estimate</li><li>06:05 Pad the estimate? Ranges?</li><li>07:38 The importance of open communication</li><li>08:12 Translating "hours" into real world time</li><li>09:50 Planning not pricing</li><li>11:56 Silly bit</li></ul><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">weekly newsletter</a> of Laravel tips.</p>]]>
      </content:encoded>
      <pubDate>Tue, 29 Dec 2020 00:00:00 -0600</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/d1a7a8fe/9fe452f0.mp3" length="14329901" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>895</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>The eternal question that every developer hears: How long is that going to take? Aaron and Joel discuss some ways to frame that question, and how to provide an estimate that will avoid unnecessary disappointment.</p><ul><li>00:00 Accurate estimates can be difficult</li><li>02:00 Disconnect between a developer and a stakeholder</li><li>03:00 How Aaron approaches an estimate</li><li>06:05 Pad the estimate? Ranges?</li><li>07:38 The importance of open communication</li><li>08:12 Translating "hours" into real world time</li><li>09:50 Planning not pricing</li><li>11:56 Silly bit</li></ul><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">weekly newsletter</a> of Laravel tips.</p>]]>
      </itunes:summary>
      <itunes:keywords>estimating, laravel</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/d1a7a8fe/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Getting started with a legacy codebase</title>
      <itunes:episode>11</itunes:episode>
      <podcast:episode>11</podcast:episode>
      <itunes:title>Getting started with a legacy codebase</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e6fda545-adbc-421e-a7c8-3394d2f64952</guid>
      <link>https://share.transistor.fm/s/0b4c310c</link>
      <description>
        <![CDATA[<p>Stepping into an unfamiliar codebase with a long history can be a challenge. Aaron and Joel share some tips on how to get started and build confidence that you're making things better.</p><ul><li>00:00 What is a "legacy" code base?</li><li>01:00 Getting those first tests in a legacy code base</li><li>03:05 Starting with unit tests can be hard</li><li>04:20 Be extra careful with external APIs</li><li>07:15 Onboarding a new project</li><li>08:35 Getting more specific on the first few tests</li><li>10:38 Silly bit</li></ul><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">newsletter</a> of Laravel tips.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Stepping into an unfamiliar codebase with a long history can be a challenge. Aaron and Joel share some tips on how to get started and build confidence that you're making things better.</p><ul><li>00:00 What is a "legacy" code base?</li><li>01:00 Getting those first tests in a legacy code base</li><li>03:05 Starting with unit tests can be hard</li><li>04:20 Be extra careful with external APIs</li><li>07:15 Onboarding a new project</li><li>08:35 Getting more specific on the first few tests</li><li>10:38 Silly bit</li></ul><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">newsletter</a> of Laravel tips.</p>]]>
      </content:encoded>
      <pubDate>Tue, 15 Dec 2020 00:00:00 -0600</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/0b4c310c/e532d566.mp3" length="13778571" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>861</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Stepping into an unfamiliar codebase with a long history can be a challenge. Aaron and Joel share some tips on how to get started and build confidence that you're making things better.</p><ul><li>00:00 What is a "legacy" code base?</li><li>01:00 Getting those first tests in a legacy code base</li><li>03:05 Starting with unit tests can be hard</li><li>04:20 Be extra careful with external APIs</li><li>07:15 Onboarding a new project</li><li>08:35 Getting more specific on the first few tests</li><li>10:38 Silly bit</li></ul><p>Sign up for our <a href="https://masteringlaravel.io/daily?ref=podcast">newsletter</a> of Laravel tips.</p>]]>
      </itunes:summary>
      <itunes:keywords></itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/0b4c310c/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Why even review when my code is perfect?</title>
      <itunes:episode>10</itunes:episode>
      <podcast:episode>10</podcast:episode>
      <itunes:title>Why even review when my code is perfect?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d126b106-dd86-460b-aff0-c98479ce5740</guid>
      <link>https://share.transistor.fm/s/c5e567e4</link>
      <description>
        <![CDATA[<p>Some shy away from code review, not wanting to be critiqued. Aaron and Joel share some tips on how to get the most out of code reviews, and things to look for as a code reviewer.</p><ul><li>00:00 The value of a code review process</li><li>02:53 Look at it as a learning opportunity</li><li>04:06 Approaching a pull request to review it</li><li>06:05 Should we make this better?</li><li>07:00 Did the programmer have a reason for what they did?</li><li>09:05 Everyone on the team should get their code reviewed</li><li>10:25 Silly bit</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Some shy away from code review, not wanting to be critiqued. Aaron and Joel share some tips on how to get the most out of code reviews, and things to look for as a code reviewer.</p><ul><li>00:00 The value of a code review process</li><li>02:53 Look at it as a learning opportunity</li><li>04:06 Approaching a pull request to review it</li><li>06:05 Should we make this better?</li><li>07:00 Did the programmer have a reason for what they did?</li><li>09:05 Everyone on the team should get their code reviewed</li><li>10:25 Silly bit</li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 01 Dec 2020 00:00:00 -0600</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/c5e567e4/008f76c7.mp3" length="13727572" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>857</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Some shy away from code review, not wanting to be critiqued. Aaron and Joel share some tips on how to get the most out of code reviews, and things to look for as a code reviewer.</p><ul><li>00:00 The value of a code review process</li><li>02:53 Look at it as a learning opportunity</li><li>04:06 Approaching a pull request to review it</li><li>06:05 Should we make this better?</li><li>07:00 Did the programmer have a reason for what they did?</li><li>09:05 Everyone on the team should get their code reviewed</li><li>10:25 Silly bit</li></ul>]]>
      </itunes:summary>
      <itunes:keywords></itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/c5e567e4/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Are you testing me?</title>
      <itunes:episode>9</itunes:episode>
      <podcast:episode>9</podcast:episode>
      <itunes:title>Are you testing me?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">addb8393-d665-4fb9-a927-e0e6b9b82d48</guid>
      <link>https://share.transistor.fm/s/1158f80d</link>
      <description>
        <![CDATA[<p>Aaron and Joel talk about why they write tests and what sorts of tests they find valuable.</p><ul><li>00:00 Why do we write tests?</li><li>03:05 Implied trust in packages</li><li>04:15 What do you test? How do you write them?</li><li>06:30 Testing the happy path</li><li>07:05 Testing the "unhappy" paths</li><li>08:12 It's less work than you think</li><li>11:30 Testing a dumb mistake with range validators</li><li>14:40 Silly bit</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Aaron and Joel talk about why they write tests and what sorts of tests they find valuable.</p><ul><li>00:00 Why do we write tests?</li><li>03:05 Implied trust in packages</li><li>04:15 What do you test? How do you write them?</li><li>06:30 Testing the happy path</li><li>07:05 Testing the "unhappy" paths</li><li>08:12 It's less work than you think</li><li>11:30 Testing a dumb mistake with range validators</li><li>14:40 Silly bit</li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 17 Nov 2020 00:00:00 -0600</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/1158f80d/bb533e2d.mp3" length="17540812" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>1096</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Aaron and Joel talk about why they write tests and what sorts of tests they find valuable.</p><ul><li>00:00 Why do we write tests?</li><li>03:05 Implied trust in packages</li><li>04:15 What do you test? How do you write them?</li><li>06:30 Testing the happy path</li><li>07:05 Testing the "unhappy" paths</li><li>08:12 It's less work than you think</li><li>11:30 Testing a dumb mistake with range validators</li><li>14:40 Silly bit</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>testing, laravel</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/1158f80d/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>What is the one true way to do this?</title>
      <itunes:episode>8</itunes:episode>
      <podcast:episode>8</podcast:episode>
      <itunes:title>What is the one true way to do this?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">18156621-eb59-4229-b8c8-daaa3cfc850e</guid>
      <link>https://share.transistor.fm/s/d88b0417</link>
      <description>
        <![CDATA[<p>We discuss a couple scenarios where there's more than one way to do something, and how we think through our decision.</p><ul><li>00:00 How to pick what file to put this code in?</li><li>01:51 An example of a single-action controller</li><li>03:15 Should everything be single-action?</li><li>04:58 How many methods on a controller is too many?</li><li>06:10 Where do you put authorization logic?</li><li>08:00 Consistency is important</li><li>08:45 Silly bit</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>We discuss a couple scenarios where there's more than one way to do something, and how we think through our decision.</p><ul><li>00:00 How to pick what file to put this code in?</li><li>01:51 An example of a single-action controller</li><li>03:15 Should everything be single-action?</li><li>04:58 How many methods on a controller is too many?</li><li>06:10 Where do you put authorization logic?</li><li>08:00 Consistency is important</li><li>08:45 Silly bit</li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 27 Oct 2020 00:00:00 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/d88b0417/38142077.mp3" length="11753419" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>734</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>We discuss a couple scenarios where there's more than one way to do something, and how we think through our decision.</p><ul><li>00:00 How to pick what file to put this code in?</li><li>01:51 An example of a single-action controller</li><li>03:15 Should everything be single-action?</li><li>04:58 How many methods on a controller is too many?</li><li>06:10 Where do you put authorization logic?</li><li>08:00 Consistency is important</li><li>08:45 Silly bit</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>laravel</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/d88b0417/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Did you just tell me to read the manual?</title>
      <itunes:episode>7</itunes:episode>
      <podcast:episode>7</podcast:episode>
      <itunes:title>Did you just tell me to read the manual?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">3363b120-2a5e-4ad9-af4b-42a297536f93</guid>
      <link>https://share.transistor.fm/s/f6153277</link>
      <description>
        <![CDATA[<p>How do you learn a new technology? Or how do you find out what's changed in the latest version of something you already use? Aaron and Joel share some tips on what they do.</p><ul><li>00:00 So many new things to learn</li><li>00:56 Importance of reading docs</li><li>02:00 Reading versus doing</li><li>03:45 Be curious when reading</li><li>05:20 How to get hands-on practice</li><li>07:30 Learning a new release of an existing tool</li><li>10:15 Improve the docs!</li><li>12:15 Silly bit</li></ul><p><a href="https://pragprog.com/titles/bhwb/exercises-for-programmers/">Exercises for Programmers</a> from Pragmatic Press</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>How do you learn a new technology? Or how do you find out what's changed in the latest version of something you already use? Aaron and Joel share some tips on what they do.</p><ul><li>00:00 So many new things to learn</li><li>00:56 Importance of reading docs</li><li>02:00 Reading versus doing</li><li>03:45 Be curious when reading</li><li>05:20 How to get hands-on practice</li><li>07:30 Learning a new release of an existing tool</li><li>10:15 Improve the docs!</li><li>12:15 Silly bit</li></ul><p><a href="https://pragprog.com/titles/bhwb/exercises-for-programmers/">Exercises for Programmers</a> from Pragmatic Press</p>]]>
      </content:encoded>
      <pubDate>Tue, 13 Oct 2020 00:00:00 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/f6153277/ad25ee6a.mp3" length="15496779" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>968</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>How do you learn a new technology? Or how do you find out what's changed in the latest version of something you already use? Aaron and Joel share some tips on what they do.</p><ul><li>00:00 So many new things to learn</li><li>00:56 Importance of reading docs</li><li>02:00 Reading versus doing</li><li>03:45 Be curious when reading</li><li>05:20 How to get hands-on practice</li><li>07:30 Learning a new release of an existing tool</li><li>10:15 Improve the docs!</li><li>12:15 Silly bit</li></ul><p><a href="https://pragprog.com/titles/bhwb/exercises-for-programmers/">Exercises for Programmers</a> from Pragmatic Press</p>]]>
      </itunes:summary>
      <itunes:keywords>laravel, documentation, learning</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/f6153277/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>Do you have a clear mental model?</title>
      <itunes:episode>6</itunes:episode>
      <podcast:episode>6</podcast:episode>
      <itunes:title>Do you have a clear mental model?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">9beebde2-eb1b-4a13-921b-58290061ec71</guid>
      <link>https://share.transistor.fm/s/bc444f96</link>
      <description>
        <![CDATA[<p>The technologies we work with are extremely detailed. Without a clear mental model of how things work together, it's easy to get lost or confused.</p><ul><li>00:00 A common pattern when a dev is stuck</li><li>01:12 What is a "mental model"?</li><li>02:15 A concrete example of a mental model</li><li>04:30 Discussing rebase versus merge</li><li>06:30 A PHP specific example for rebase</li><li>07:40 Mental models for queue workers</li><li>10:10 Open source helps us understand</li><li>11:30 Silly bit</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>The technologies we work with are extremely detailed. Without a clear mental model of how things work together, it's easy to get lost or confused.</p><ul><li>00:00 A common pattern when a dev is stuck</li><li>01:12 What is a "mental model"?</li><li>02:15 A concrete example of a mental model</li><li>04:30 Discussing rebase versus merge</li><li>06:30 A PHP specific example for rebase</li><li>07:40 Mental models for queue workers</li><li>10:10 Open source helps us understand</li><li>11:30 Silly bit</li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 29 Sep 2020 00:00:11 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/bc444f96/30736768.mp3" length="15487518" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>967</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>The technologies we work with are extremely detailed. Without a clear mental model of how things work together, it's easy to get lost or confused.</p><ul><li>00:00 A common pattern when a dev is stuck</li><li>01:12 What is a "mental model"?</li><li>02:15 A concrete example of a mental model</li><li>04:30 Discussing rebase versus merge</li><li>06:30 A PHP specific example for rebase</li><li>07:40 Mental models for queue workers</li><li>10:10 Open source helps us understand</li><li>11:30 Silly bit</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>laravel</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/bc444f96/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>The best argument is no argument</title>
      <itunes:episode>5</itunes:episode>
      <podcast:episode>5</podcast:episode>
      <itunes:title>The best argument is no argument</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7668f12c-d8ad-43b1-b7f9-5e50999a828b</guid>
      <link>https://share.transistor.fm/s/9bc73bcb</link>
      <description>
        <![CDATA[<p>Disagreements and debate can sap your team's energy. We'll talk about some ways to avoid unnecessary conflicts, and how to successfully handle a difference of opinion on your team.</p><ul><li>00:00 Developers want the "one true way" to do something</li><li>01:45 Handling a difference of opinion</li><li>02:33 Staying consistent within a project</li><li>03:44 Using tools to help consistency</li><li>06:00 Document your project standards</li><li>07:37 Keep an open mind</li><li>11:01 Choose your battles wisely</li><li>12:25 Involve the whole team in the discussion</li><li>13:05 Silly bit</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Disagreements and debate can sap your team's energy. We'll talk about some ways to avoid unnecessary conflicts, and how to successfully handle a difference of opinion on your team.</p><ul><li>00:00 Developers want the "one true way" to do something</li><li>01:45 Handling a difference of opinion</li><li>02:33 Staying consistent within a project</li><li>03:44 Using tools to help consistency</li><li>06:00 Document your project standards</li><li>07:37 Keep an open mind</li><li>11:01 Choose your battles wisely</li><li>12:25 Involve the whole team in the discussion</li><li>13:05 Silly bit</li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 15 Sep 2020 00:00:05 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/9bc73bcb/d633cfb8.mp3" length="15498033" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>968</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Disagreements and debate can sap your team's energy. We'll talk about some ways to avoid unnecessary conflicts, and how to successfully handle a difference of opinion on your team.</p><ul><li>00:00 Developers want the "one true way" to do something</li><li>01:45 Handling a difference of opinion</li><li>02:33 Staying consistent within a project</li><li>03:44 Using tools to help consistency</li><li>06:00 Document your project standards</li><li>07:37 Keep an open mind</li><li>11:01 Choose your battles wisely</li><li>12:25 Involve the whole team in the discussion</li><li>13:05 Silly bit</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>team, laravel, communication</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/9bc73bcb/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>What's with these flaky tests?</title>
      <itunes:episode>4</itunes:episode>
      <podcast:episode>4</podcast:episode>
      <itunes:title>What's with these flaky tests?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">a845dfb8-e4ad-4567-bfd2-afcc3673d84b</guid>
      <link>https://share.transistor.fm/s/bbeb67ac</link>
      <description>
        <![CDATA[<p>Croissants are great because they're flaky, but no one likes a flaky test. We share some strategies on how to make your tests more reliable.</p><ul><li>00:00 Flaky tests are the worst</li><li>02:12 Why randomization can lead to flaky tests</li><li>03:10 A guideline on when to avoid randomization</li><li>05:10 Trying to predict the future?</li><li>06:15 Naming can be a guide</li><li>07:15 Use factory states</li><li>08:00 Another type of flaky test</li><li>11:15 Silly bit</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Croissants are great because they're flaky, but no one likes a flaky test. We share some strategies on how to make your tests more reliable.</p><ul><li>00:00 Flaky tests are the worst</li><li>02:12 Why randomization can lead to flaky tests</li><li>03:10 A guideline on when to avoid randomization</li><li>05:10 Trying to predict the future?</li><li>06:15 Naming can be a guide</li><li>07:15 Use factory states</li><li>08:00 Another type of flaky test</li><li>11:15 Silly bit</li></ul>]]>
      </content:encoded>
      <pubDate>Mon, 31 Aug 2020 19:10:28 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/bbeb67ac/68f77d55.mp3" length="14579693" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>911</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Croissants are great because they're flaky, but no one likes a flaky test. We share some strategies on how to make your tests more reliable.</p><ul><li>00:00 Flaky tests are the worst</li><li>02:12 Why randomization can lead to flaky tests</li><li>03:10 A guideline on when to avoid randomization</li><li>05:10 Trying to predict the future?</li><li>06:15 Naming can be a guide</li><li>07:15 Use factory states</li><li>08:00 Another type of flaky test</li><li>11:15 Silly bit</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>testing, laravel</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/bbeb67ac/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>When should I upgrade my Laravel project?</title>
      <itunes:episode>3</itunes:episode>
      <podcast:episode>3</podcast:episode>
      <itunes:title>When should I upgrade my Laravel project?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">0168ebf8-3ea3-4c44-bb04-c1b043a097fa</guid>
      <link>https://share.transistor.fm/s/08b0bc00</link>
      <description>
        <![CDATA[<ul><li>00:00 The desire to upgrade to a shiny new Laravel version</li><li>02:20 I actually enjoy maintenance</li><li>03:48 An analogy with cars</li><li>04:30 The importance of communication</li><li>05:30 Making it easier to upgrade</li><li>06:30 Do you want to be on the bleeding edge?</li><li>07:52 Silly bit</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<ul><li>00:00 The desire to upgrade to a shiny new Laravel version</li><li>02:20 I actually enjoy maintenance</li><li>03:48 An analogy with cars</li><li>04:30 The importance of communication</li><li>05:30 Making it easier to upgrade</li><li>06:30 Do you want to be on the bleeding edge?</li><li>07:52 Silly bit</li></ul>]]>
      </content:encoded>
      <pubDate>Fri, 14 Aug 2020 16:32:34 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/08b0bc00/aa9c7f46.mp3" length="10930638" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>683</itunes:duration>
      <itunes:summary>
        <![CDATA[<ul><li>00:00 The desire to upgrade to a shiny new Laravel version</li><li>02:20 I actually enjoy maintenance</li><li>03:48 An analogy with cars</li><li>04:30 The importance of communication</li><li>05:30 Making it easier to upgrade</li><li>06:30 Do you want to be on the bleeding edge?</li><li>07:52 Silly bit</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>laravel, upgrade, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/08b0bc00/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>How do you figure out why your code isn't working?</title>
      <itunes:episode>2</itunes:episode>
      <podcast:episode>2</podcast:episode>
      <itunes:title>How do you figure out why your code isn't working?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f9563d84-9ea2-4405-a35d-8c6c5bd8cc51</guid>
      <link>https://share.transistor.fm/s/985606af</link>
      <description>
        <![CDATA[<ul><li>00:00 The thought process when you get stuck</li><li>01:40 An example with CSS</li><li>03:40 Tools that can help locally</li><li>06:15 Using a debugger to learn about Laravel</li><li>06:30 Tools that can help in a remote environment</li><li>08:22 Real talk about debugging in production</li><li>09:57 Troubleshooting database performance</li><li>11:16 Searching the internet for an answer</li><li>13:02 Silly bit</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<ul><li>00:00 The thought process when you get stuck</li><li>01:40 An example with CSS</li><li>03:40 Tools that can help locally</li><li>06:15 Using a debugger to learn about Laravel</li><li>06:30 Tools that can help in a remote environment</li><li>08:22 Real talk about debugging in production</li><li>09:57 Troubleshooting database performance</li><li>11:16 Searching the internet for an answer</li><li>13:02 Silly bit</li></ul>]]>
      </content:encoded>
      <pubDate>Fri, 14 Aug 2020 16:26:02 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/985606af/29091485.mp3" length="14761252" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>922</itunes:duration>
      <itunes:summary>
        <![CDATA[<ul><li>00:00 The thought process when you get stuck</li><li>01:40 An example with CSS</li><li>03:40 Tools that can help locally</li><li>06:15 Using a debugger to learn about Laravel</li><li>06:30 Tools that can help in a remote environment</li><li>08:22 Real talk about debugging in production</li><li>09:57 Troubleshooting database performance</li><li>11:16 Searching the internet for an answer</li><li>13:02 Silly bit</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>debugging, laravel, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/985606af/transcript.txt" type="text/plain"/>
    </item>
    <item>
      <title>When is the right time to automate a dev task?</title>
      <itunes:episode>1</itunes:episode>
      <podcast:episode>1</podcast:episode>
      <itunes:title>When is the right time to automate a dev task?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">c7b78952-d9be-44ac-b24a-a4b538d036a6</guid>
      <link>https://share.transistor.fm/s/f4cc1893</link>
      <description>
        <![CDATA[<ul><li>00:00 The urge to automate everything</li><li>01:49 Document before you automate</li><li>02:45 Weighing time spent versus time saved</li><li>03:30 Automation isn't maintenance-free</li><li>04:08 Types of automation</li><li>05:18 The exception to the rule</li><li>07:05 An example of using a command to update data</li><li>08:00 Silly bit</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<ul><li>00:00 The urge to automate everything</li><li>01:49 Document before you automate</li><li>02:45 Weighing time spent versus time saved</li><li>03:30 Automation isn't maintenance-free</li><li>04:08 Types of automation</li><li>05:18 The exception to the rule</li><li>07:05 An example of using a command to update data</li><li>08:00 Silly bit</li></ul>]]>
      </content:encoded>
      <pubDate>Fri, 14 Aug 2020 16:21:28 -0500</pubDate>
      <author>Joel Clermont</author>
      <enclosure url="https://media.transistor.fm/f4cc1893/ea811e7d.mp3" length="10439546" type="audio/mpeg"/>
      <itunes:author>Joel Clermont</itunes:author>
      <itunes:duration>652</itunes:duration>
      <itunes:summary>
        <![CDATA[<ul><li>00:00 The urge to automate everything</li><li>01:49 Document before you automate</li><li>02:45 Weighing time spent versus time saved</li><li>03:30 Automation isn't maintenance-free</li><li>04:08 Types of automation</li><li>05:18 The exception to the rule</li><li>07:05 An example of using a command to update data</li><li>08:00 Silly bit</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>laravel, automation, php</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://joelclermont.com" img="https://img.transistorcdn.com/OR-Nc3d_Dm65F_vzikt-EmF-Sg5XOZr3regpHxOUkP8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGQxZjZmN2Mt/NmQ3Zi00MWMxLTk3/OGItM2IzYzMwMDUz/ZmM3LzE2NjQ1NzE0/MTEtaW1hZ2UuanBn.jpg">Joel Clermont</podcast:person>
      <podcast:person role="Host" href="https://aaronsaray.com" img="https://img.transistorcdn.com/oHkZzmTkGu7ga_Lr1M_n3NQRL3CuQW1dnC1WGLXxmc8/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9wZXJz/b24vOGNhMDNmNWUt/Mzc2Mi00ODI4LThl/YjEtZjAwZWY5NDNi/MmVjLzE2NjQ1NzE1/MDktaW1hZ2UuanBn.jpg">Aaron Saray</podcast:person>
      <podcast:transcript url="https://share.transistor.fm/s/f4cc1893/transcript.txt" type="text/plain"/>
    </item>
  </channel>
</rss>
