<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Aaron Saray</title><description>Aaron Saray coaches engineering managers and developers, builds software that stays simple, and leads through honest communication and education.</description><link>https://aaronsaray.com/blog/</link><language>en-us</language><copyright>This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.</copyright><lastBuildDate>Mon, 12 Oct 2026 00:00:00 GMT</lastBuildDate><atom:link href="https://aaronsaray.com/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Is your test just copying your code?</title><link>https://aaronsaray.com/2026/is-your-test-just-copying-your-code/</link><guid isPermaLink="true">https://aaronsaray.com/2026/is-your-test-just-copying-your-code/</guid><description>&lt;p&gt;I found this when writing tests for a project, sitting right in the &lt;code&gt;routes/web.php&lt;/code&gt; file:&lt;/p&gt;</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate></item><item><title>New Typesetter Release and How AI Helped and Hurt</title><link>https://aaronsaray.com/2026/new-typesetter-release-and-how-ai-helped-and-hurt/</link><guid isPermaLink="true">https://aaronsaray.com/2026/new-typesetter-release-and-how-ai-helped-and-hurt/</guid><description>&lt;p&gt;I just released an updated, brand new 1.0 release of my &lt;a href=&quot;https://typesetter.io&quot;&gt;Typesetter&lt;/a&gt; library. It’s a
library with some helpful wrappers for creating PDFs from markdown. It comes with a CLI and is a Laravel app.&lt;/p&gt;
&lt;p&gt;I started to question the work, though. Was this still my hobby? A useful project? Did I understand what I was ‘writing’ anymore? Did I need to do this?&lt;/p&gt;</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Your Next CTO Doesn&apos;t Need to be so Fancy</title><link>https://aaronsaray.com/2026/your-next-cto/</link><guid isPermaLink="true">https://aaronsaray.com/2026/your-next-cto/</guid><description>&lt;p&gt;In 2022, I was rebelling against the really clever CTO sites and personal branding.&lt;/p&gt;
&lt;p&gt;You don’t want your CTO to be so fancy - you just want the facts. So I created a quick landing page “resume” if you will.&lt;/p&gt;</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate></item><item><title>A match in disguise</title><link>https://aaronsaray.com/2026/a-match-in-disguise/</link><guid isPermaLink="true">https://aaronsaray.com/2026/a-match-in-disguise/</guid><description>&lt;p&gt;Let’s say we’re adding a Slack notification channel, and we go to update the method that labels each channel:&lt;/p&gt;</description><pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate></item><item><title>React to .NET Was Always a Joke</title><link>https://aaronsaray.com/2026/react-to-dot-net/</link><guid isPermaLink="true">https://aaronsaray.com/2026/react-to-dot-net/</guid><description>&lt;p&gt;Back in 2020, I built a free online tool that would convert your React component into a .NET component. No install required.&lt;/p&gt;
&lt;p&gt;Now with AI, I don’t think we really need it. You’ll find it here for posterity.&lt;/p&gt;</description><pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Trimming Filament Strings Globally</title><link>https://aaronsaray.com/2026/trimming-filament-strings-globally/</link><guid isPermaLink="true">https://aaronsaray.com/2026/trimming-filament-strings-globally/</guid><description>&lt;p&gt;When I first started using Laravel, I really didn’t like the global middleware that trimmed strings. But after a while, it became an irreplaceable part of my tool belt, and I am a convert.&lt;/p&gt;
&lt;p&gt;I became so used to this that the first time a user used my Filament input and I saw a space after some text, I was really confused. Why did this happen?&lt;/p&gt;
&lt;p&gt;Let me tell you how to fix this on the form itself, how to do it globally, and what that might cause a problem with.&lt;/p&gt;</description><pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate></item><item><title>When to use Blade&apos;s loop variable, and when not to</title><link>https://aaronsaray.com/2026/when-to-use-blades-loop-variable-and-when-not-to/</link><guid isPermaLink="true">https://aaronsaray.com/2026/when-to-use-blades-loop-variable-and-when-not-to/</guid><description>&lt;p&gt;Laravel is always giving us little helpers.
One of which is Blade’s &lt;code&gt;@foreach&lt;/code&gt; that gives you a &lt;code&gt;$loop&lt;/code&gt; variable.
Inside the loop you get things like &lt;code&gt;$loop-&gt;index&lt;/code&gt; and &lt;code&gt;$loop-&gt;iteration&lt;/code&gt;, plus the two I want to talk about today: &lt;code&gt;$loop-&gt;first&lt;/code&gt; and &lt;code&gt;$loop-&gt;last&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;first&lt;/code&gt; and &lt;code&gt;last&lt;/code&gt; are boolean values that tell you if this is the first iteration or the last iteration of the loop.
Pretty self-explanatory.&lt;/p&gt;
&lt;p&gt;But far too many times I see people abusing these for style - when they should be for flow control.&lt;/p&gt;</description><pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate></item><item><title>End to End Testing is Now Even More Important</title><link>https://aaronsaray.com/2026/end-to-end-testing-is-now-even-more-important/</link><guid isPermaLink="true">https://aaronsaray.com/2026/end-to-end-testing-is-now-even-more-important/</guid><description>&lt;p&gt;I’ve been a huge fan of automated software testing for years.  I tend to reach for unit tests over end-to-end (e2e) tests.
This is probably because of two reasons: a focus on back-end work (primarily) and e2e testing was slow compared to my targeted unit tests.&lt;/p&gt;
&lt;p&gt;With automated AI tooling now, though, I think the tide is changing.  I still value my unit tests, but e2e is becoming my champion.&lt;/p&gt;
&lt;p&gt;I’ll explain how and why my mind changed:&lt;/p&gt;</description><pubDate>Sun, 27 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Write code the way you say it</title><link>https://aaronsaray.com/2026/write-code-the-way-you-say-it/</link><guid isPermaLink="true">https://aaronsaray.com/2026/write-code-the-way-you-say-it/</guid><description>&lt;p&gt;When I see something like this, I immediately want to “fix” it.&lt;/p&gt;</description><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The right place to inject a service into a queued job</title><link>https://aaronsaray.com/2026/the-right-place-to-inject-a-service-into-a-queued-job/</link><guid isPermaLink="true">https://aaronsaray.com/2026/the-right-place-to-inject-a-service-into-a-queued-job/</guid><description>&lt;p&gt;Let’s take a look at this job:&lt;/p&gt;</description><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate></item></channel></rss>