<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<atom:link href="https://jessewarden.com/feed" rel="self" type="application/rss+xml" />
	<link>https://jessewarden.com</link>
	<description>Software &#124; Fitness &#124; Gaming</description>
	<lastBuildDate>Wed, 21 Oct 2026 14:44:26 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://jessewarden.com/wp-content/uploads/2016/08/cropped-Lambda2-32x32.png</url>
	<title>Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<link>https://jessewarden.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Customizing TypeScript Compiler Errors</title>
		<link>https://jessewarden.com/2026/10/customizing-typescript-compiler-errors.html</link>
					<comments>https://jessewarden.com/2026/10/customizing-typescript-compiler-errors.html#respond</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 14:44:26 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<guid isPermaLink="false">https://jessewarden.com/?p=7340</guid>

					<description><![CDATA[HOLY COW, GUZY, you can customize TypeScript compiler errors now! Well&#8230; you probably could before, but&#8230; not easily. This new TypeScript 7.1 API allows you to get info about what the compiler found, and translate it to &#8230; you know, English. Elm did that. Rust became popular, but people were like &#8220;this ain&#8217;t English, bruh&#8221; [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">HOLY COW, GUZY, you can customize TypeScript compiler errors now! Well&#8230; you probably could before, but&#8230; not easily. This new TypeScript 7.1 API allows you to get info about what the compiler found, and translate it to &#8230; you know, English.</p>



<span id="more-7340"></span>



<p class="wp-block-paragraph">Elm did that. Rust became popular, but people were like &#8220;this ain&#8217;t English, bruh&#8221; so then they copied Elm. Now, finally, tooling for TypeScript can copy Elm.</p>



<p class="wp-block-paragraph">k, but what&#8217;s a specific use case beyond &#8220;leveling up TypeScript&#8221; you may ask? Great question! For the past few months, I&#8217;ve been building tooling around improving cyber security for logs; e.g. ensuring we don&#8217;t leak sensitive customer or passwords into our logs.</p>



<p class="wp-block-paragraph">Most dynamic languages, AND typed languages, will use substring and regex searches in sinks; e.g. where your data leaves your application through a log (console.log, AWS Power Tools, pino, etc). This ensures &#8220;the 1 place it exits, we ensure no NPI/PCI leaks occur&#8221;. Rad.</p>



<p class="wp-block-paragraph">&#8230; but devs who are into types are like &#8220;wait a minute, wait a minute&#8230; &#8216;if it compiles, it works&#8217; if that&#8217;s true&#8230; then why can&#8217;t we &#8216;if it compiles, it&#8217;s safe&#8217;?&#8221; So they, and me, will leverage types to ensure:</p>



<ol class="wp-block-list">
<li>sensitive data is typed; could be a Brand, Product, Union&#8230; whatever</li>



<li>sinks (e.g. logs) do not allow sensitive data</li>
</ol>



<p class="wp-block-paragraph">You could do that via types, type proofs, both. So cool, we can now &#8220;If it compiles, it is safe&#8221;, BUT ALSO &#8220;because TypeScript gradually typed and not sound&#8221; still have the runtime redaction too.</p>



<p class="wp-block-paragraph">Except there is one problem: the compiler error messages are trash. Let&#8217;s see an example. Below, we&#8217;re creating an American Social Security Number (aka ssn) as a Sensitive data brand type. We&#8217;re then creating a log function that doesn&#8217;t allow it ssn&#8217;s to be logged.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="970" height="560" src="https://jessewarden.com/wp-content/uploads/2026/10/image1.png" alt="" class="wp-image-7341" srcset="https://jessewarden.com/wp-content/uploads/2026/10/image1.png 970w, https://jessewarden.com/wp-content/uploads/2026/10/image1-300x173.png 300w, https://jessewarden.com/wp-content/uploads/2026/10/image1-768x443.png 768w" sizes="(max-width: 970px) 100vw, 970px" /></figure>



<p class="wp-block-paragraph">So that&#8217;s cool; you can see in the image that ssn isn&#8217;t compiling when you pass it as a parameter to the log function.</p>



<p class="wp-block-paragraph">However, what&#8217;s NOT cool is the compiler error you get for it: &#8220;Type &#8216;Sensitive‹string, &#8220;Social Security Number&#8221;›&#8217; is not assignable to type &#8216;undefined&#8217;.&#8221;</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="147" src="https://jessewarden.com/wp-content/uploads/2026/10/image2-1024x147.png" alt="" class="wp-image-7342" srcset="https://jessewarden.com/wp-content/uploads/2026/10/image2-1024x147.png 1024w, https://jessewarden.com/wp-content/uploads/2026/10/image2-300x43.png 300w, https://jessewarden.com/wp-content/uploads/2026/10/image2-768x110.png 768w, https://jessewarden.com/wp-content/uploads/2026/10/image2-1536x221.png 1536w, https://jessewarden.com/wp-content/uploads/2026/10/image2.png 1864w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">So never is weird; it&#8217;s even weird in Elm. However, it&#8217;s used a lot more in TypeScript so you can assert a compiler error. Sometimes, as you can see, the error doesn&#8217;t even say never, it says undefined. That said, it still <em>sounds</em> weird when you say that compiler out loud. Usually from a Domain Driven Design perspective you&#8217;d be like &#8220;A can&#8217;t be B&#8221; or &#8220;a PendingAccount cannot be a ConfirmedAccount&#8221;. But&#8230; &#8220;Cow can&#8217;t be assigned to never/undefined&#8221; like&#8230; wat?</p>



<p class="wp-block-paragraph"><a href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-1-beta/">ENTER TYPESCRIPT 7.1 COMPILER API</a> (e.g. import typescript/sync). You can get all the diagnostic errors, and if it&#8217;s one you recognize, like &#8220;Sensitive SSN to never&#8221; you can map it to &#8220;Social Security Numbers cannot be logged&#8221;</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="150" src="https://jessewarden.com/wp-content/uploads/2026/10/image3-1024x150.png" alt="" class="wp-image-7343" srcset="https://jessewarden.com/wp-content/uploads/2026/10/image3-1024x150.png 1024w, https://jessewarden.com/wp-content/uploads/2026/10/image3-300x44.png 300w, https://jessewarden.com/wp-content/uploads/2026/10/image3-768x112.png 768w, https://jessewarden.com/wp-content/uploads/2026/10/image3-1536x224.png 1536w, https://jessewarden.com/wp-content/uploads/2026/10/image3.png 1848w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">SO BALLER</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2026/10/customizing-typescript-compiler-errors.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Update on Quitting Coffee Again</title>
		<link>https://jessewarden.com/2026/10/update-on-quitting-coffee-again.html</link>
					<comments>https://jessewarden.com/2026/10/update-on-quitting-coffee-again.html#respond</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Mon, 19 Oct 2026 09:56:58 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<guid isPermaLink="false">https://jessewarden.com/?p=7338</guid>

					<description><![CDATA[Spent about a week going from too many cups a day (but cut off at 11-11:30am) to 2 cups only. Then about 2 weeks to 1 cup only. The 1 cup only had 1 positive, 1 familiar weird, and 1 ultra horrible consequence: Positive: While a bit tired from lack of sleep, I don&#8217;t have [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Spent about a week going from too many cups a day (but cut off at 11-11:30am) to 2 cups only. Then about 2 weeks to 1 cup only.</p>



<span id="more-7338"></span>



<p class="wp-block-paragraph">The 1 cup only had 1 positive, 1 familiar weird, and 1 ultra horrible consequence:</p>



<p class="wp-block-paragraph"><strong>Positive</strong>: While a bit tired from lack of sleep, I don&#8217;t have caffeine crashes in afternoon.</p>



<p class="wp-block-paragraph"><strong>Weird</strong>: dreams getting more intense again; not _as_ intense as no coffee, but I can tell.</p>



<p class="wp-block-paragraph"><strong>Horrible</strong>: I wake up, like clockwork, at 4:30 &#8211; 5am, every day. I know 6 hours isn&#8217;t enough. I&#8217;ve tested this on the weekend, and I can nap for up to 2 to 3 hours, so my body is angry or confused about something.</p>



<p class="wp-block-paragraph">I had depression for about 2 days; was NOT the horribleness that was 8 years ago, but it super in the background, and I didn&#8217;t notice it till I really thought about why I was feeling meh. I&#8217;m sure sleep deprivation aggravated it, but passed like last weekend.</p>



<p class="wp-block-paragraph">Despite intense workouts 6 days a week, I wake up early morning, usually from a stomach ache, but I can just tell my brain is WAY more ready to wake up compared to usual if I were to wake up in the middle of the night. Only once in the past 3 weeks of this happening could I fall back asleep till my normal 7am.</p>



<p class="wp-block-paragraph">I was attempting this to be my first day with no coffee, but I&#8217;m going to try another week of just a small cup. I was using those large cups, which I think are like actually &#8220;2 cups&#8221; (I&#8217;ll measure later), and we have this tea cup which is barely 1 cup so&#8230; it&#8217;s a pretty significant drop. I can tell my body knows what&#8217;s coming and is fighting to keep it around. So I&#8217;ll give it another week with these little cups, then try again Monday. Hopefully that fixes this weird, new sleep problem. I wasn&#8217;t supposed to go backwards, but I have empathy my brain chemistry is just confused from decades of caffeine abuse.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2026/10/update-on-quitting-coffee-again.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tech Leads: Teach</title>
		<link>https://jessewarden.com/2026/10/tech-leads-teach.html</link>
					<comments>https://jessewarden.com/2026/10/tech-leads-teach.html#respond</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Mon, 19 Oct 2026 09:48:04 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<guid isPermaLink="false">https://jessewarden.com/?p=7331</guid>

					<description><![CDATA[Request to Tech Leads to teach Juniors the fundamentals now more than ever. I&#8217;ve seen a disturbing trend where Juniors and mid-level devs are using LLM&#8217;s to generate PR&#8217;s where they didn&#8217;t hand code any of it, and upon questioning, they don&#8217;t understand much of it. When I then explain things in the PR and/or [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Request to Tech Leads to teach Juniors the fundamentals now more than ever. I&#8217;ve seen a disturbing trend where Juniors and mid-level devs are using LLM&#8217;s to generate PR&#8217;s where they didn&#8217;t hand code any of it, and upon questioning, they don&#8217;t understand much of it. When I then explain things in the PR and/or in person, I realize they&#8217;re missing swaths of basics, and while exciting for me, it&#8217;s concerning they&#8217;ve gone this long without someone giving them the rundown of how this all works.</p>



<span id="more-7331"></span>



<p class="wp-block-paragraph">This results in months of building software, but not learning much about building software. This also results in TONS of PR changes requested, and PR&#8217;s, even with an AI to help review the PR&#8217;s, now go from weeks to months to get merged.</p>



<p class="wp-block-paragraph">You can see this reflected in this chart from <a href="https://arstechnica.com/ai/2026/10/ai-coding-agents-generate-more-code-but-not-more-software/">the ArsTechnica article</a> where with AI the number of PR&#8217;s goes up, and so too does the number of requested changes. Correlation does not equal causation, no doubt, but I&#8217;ve seen it myself, so it resonates and seems a legit finding.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="687" src="https://jessewarden.com/wp-content/uploads/2026/10/aiagentcode-1024x687.png" alt="" class="wp-image-7332" srcset="https://jessewarden.com/wp-content/uploads/2026/10/aiagentcode-1024x687.png 1024w, https://jessewarden.com/wp-content/uploads/2026/10/aiagentcode-300x201.png 300w, https://jessewarden.com/wp-content/uploads/2026/10/aiagentcode-768x516.png 768w, https://jessewarden.com/wp-content/uploads/2026/10/aiagentcode.png 1384w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">I have a feeling they&#8217;re also doing multiple of these large batch, slop grenades at once because they&#8217;re waiting on reviews from exhausted Tech Leads / co-workers to review (haven&#8217;t checked out their Github profile to conform, tho). The co-workers/Tech Leads are exhausted because:</p>



<ol class="wp-block-list">
<li>there are more PR&#8217;s</li>



<li>the PR&#8217;s are larger batch</li>



<li>the code _looks_ ok at first, but you realize it&#8217;s missing fundamental architecture/types/testing good practices, so you have to be on your A game when reviewing.</li>



<li>This repeated high-intensity of review tires you out.</li>



<li>When done, there are twice as many PR&#8217;s like this to go.</li>
</ol>



<p class="wp-block-paragraph">Lose-lose for both sides here. Some devs will just tap out, exhausted and &#8220;LGTM&#8221;. That doesn&#8217;t help anybody.</p>



<p class="wp-block-paragraph"><a href="https://en.wikipedia.org/wiki/Automation_bias">Automation Bias</a> is a thing; people who don&#8217;t know a subject well think AI can automate it. In this case Juniors are using a lot of tokens to produce little, usable code.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="575" src="https://jessewarden.com/wp-content/uploads/2026/10/token-usage-1024x575.png" alt="" class="wp-image-7333" srcset="https://jessewarden.com/wp-content/uploads/2026/10/token-usage-1024x575.png 1024w, https://jessewarden.com/wp-content/uploads/2026/10/token-usage-300x168.png 300w, https://jessewarden.com/wp-content/uploads/2026/10/token-usage-768x431.png 768w, https://jessewarden.com/wp-content/uploads/2026/10/token-usage-1536x863.png 1536w, https://jessewarden.com/wp-content/uploads/2026/10/token-usage-2048x1150.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Microsoft&#8217;s Justin Reock, in Developer Experience <a href="https://youtube.com/watch?v=Se8jHLliLXE">shared their latest data</a> showing that Juniors use more tokens than Seniors to get the same result. Pre-AI, the data showed the code Seniors wrote tended to last longer whereas code Juniors wrote was changed a lot. That same rule holds now, but the changes have skyrocketed because it&#8217;s much easier &amp; faster for them to generate code they don&#8217;t understand.</p>



<p class="wp-block-paragraph">I know many of us feel like the Phoenix from the original X-Men movie when she&#8217;s holding back the lakes worth of water WHILE lifting a jet.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="426" src="https://jessewarden.com/wp-content/uploads/2026/10/Screenshot-2026-10-19-at-5.47.17-AM-1024x426.png" alt="" class="wp-image-7334" srcset="https://jessewarden.com/wp-content/uploads/2026/10/Screenshot-2026-10-19-at-5.47.17-AM-1024x426.png 1024w, https://jessewarden.com/wp-content/uploads/2026/10/Screenshot-2026-10-19-at-5.47.17-AM-300x125.png 300w, https://jessewarden.com/wp-content/uploads/2026/10/Screenshot-2026-10-19-at-5.47.17-AM-768x319.png 768w, https://jessewarden.com/wp-content/uploads/2026/10/Screenshot-2026-10-19-at-5.47.17-AM-1536x639.png 1536w, https://jessewarden.com/wp-content/uploads/2026/10/Screenshot-2026-10-19-at-5.47.17-AM.png 1972w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">You&#8217;re trying to help people WHILE not dying yourself. It&#8217;s rough. Just know, currently, these AI&#8217;s aren&#8217;t learning and are making some things worse. However, your efforts on _people_ are worth it; they learn, the slop gets less, and after a couple of months, they can help you. Keep going.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2026/10/tech-leads-teach.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Two Cases On Why We Should Read The Code</title>
		<link>https://jessewarden.com/2026/09/two-cases-on-why-we-should-read-the-code.html</link>
					<comments>https://jessewarden.com/2026/09/two-cases-on-why-we-should-read-the-code.html#respond</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Wed, 30 Sep 2026 14:24:48 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<guid isPermaLink="false">https://jessewarden.com/?p=7326</guid>

					<description><![CDATA[Two cases to read the code. I know everything is nuanced, skills vary, and the scope of what we&#8217;re building varies. I&#8217;m aware even Kent Beck recently said &#8220;TRY to automate not reviewing the code&#8221;. This is just 2 examples where reading the code is required, even today, with multiple + wonderful LLM support tooling. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Two cases to read the code. I know everything is nuanced, skills vary, and the scope of what we&#8217;re building varies. I&#8217;m aware even Kent Beck recently said &#8220;TRY to automate not reviewing the code&#8221;. This is just 2 examples where reading the code is required, even today, with multiple + wonderful LLM support tooling.</p>



<span id="more-7326"></span>



<p class="wp-block-paragraph">I&#8217;m reviewing a mid-level dev&#8217;s PR who&#8217;s not on our team. First concern is its on our most important repo with high consequence of failure. The work could be piloted on a less risky repo, but she chose this one. She may not be aware of that context. Nowhere in the docs does it state that for the LLM&#8217;s to know, more is there a &#8220;map between repos&#8221; for our team for the LLM to have context. Should we build that? Yes. Do we have that now for the LLM? No. Does the dev know this? No. So I explain all that. She had no idea. She questioned the entire approach. This is the good part of iterative development; failing quickly; reducing the time it takes to learn. This is normal and good.</p>



<p class="wp-block-paragraph">Second concern is it&#8217;s quite large. Not just many files, but many new files, some are quite long. I explain even without Github Stacks, we should be doing small PR&#8217;s with few changes and architected for a smaller blast radius. She appreciated the review; apparently getting PR reviews, from a human, are rare in some teams. :: face palm :: She had never heard of Github stacks or even just branching off of a branch; I explained the easier version if she wanted to avoid the github complexity rabbit hole that is gh stacks. Newer LLM&#8217;s have some of this in their training data, but unless you specify it, I&#8217;ve not seen them recommend it unless the repo has rules.</p>



<p class="wp-block-paragraph">Third, approaching the work this was new for her. I don&#8217;t know what team experiences she had, nor where they are in in their CD journey, but I explained we don&#8217;t really plan that out. The whole point is to take small steps, learn, and use those learnings to inform where we should go next. So I don&#8217;t really plan or even know what the next PR&#8217;s will be, their size, nor the files. That said, I looked at her original PR and gleaned 3 smaller PR&#8217;s with only a few changes each that might form a great exercise to learn how to work in small steps since she had already trod this path once AND it&#8217;d be easier for me to have a more focus discussion on architecture since the changes are small. The LLM&#8217;s can help here if you know how to ask; I don&#8217;t think she even know you could ask such a thing yet.</p>



<p class="wp-block-paragraph">Fourth, there were various architecture challenges, many of which she&#8217;d have no context unless she was on our team. Much of the code base was OOP, little dependency injection, heavy use of mocks, little types, and a consistent use of exceptions to drive responses. I&#8217;m attempting to move the team towards a more functional, typed, and errors as values approach. LLM&#8217;s _really_ struggle with navigating this as each integration has a flurry of options, and unless you narrow each one, it&#8217;ll just best guess. This is compounded in Brownfield code bases. This takes 110% of my focus just to help navigate this large space frigate through an asteroid field while drinking my coffee using sketchy inertial dampeners. There&#8217;s no way a Junior or Mid-level could both navigate this, know all the options, nor the vision not being on our team. I suggested we pair program on this so I could show how this vision has challenge, and what to do when you&#8217;re presented with a crossroads of architecture decisions to lead by example.</p>



<p class="wp-block-paragraph">Fifth, one architecture one that was prevalent was a lack of DRY around a new framework they are using. It also uses exceptions, but checks the 5 types via instanceof; kind of like their own version of Promise.then/catch. The issue is all the parsing code is on the developer; since they didn&#8217;t use error types, you get error:unknown, and about 20+ lines of type narrowing code ensues in at least 4 call sites. At first I&#8217;m like &#8220;use types&#8221; to prevent all this. Then I was like &#8220;well, geez&#8230; ok, now you need a Zod schema to at least parse to one of the error shapes you&#8217;re expecting&#8221;. Then I was like &#8220;wait a minute, you&#8217;re doing this all over the place, why isn&#8217;t the framework handling this all for you via abstractions and types?&#8221;. Errors as types, types as values, Zod schemas parsing to known shapes, and leaky abstractions are all new concepts to her, and when you throw all of these at once, it&#8217;s quite overwhelming. We had a good brief discussion on perhaps making some new PR&#8217;s to the framework itself to help here since many others are going to run into the same implementation challenge. The framework has 200% docs, rules, and skills setup for LLM&#8217;s to be mostly Spec Driven Development style, but none of that was linked here in our repo, in her rules, or in however this was coded, LLM or not, I suppose. Again, the LLM is having to integrate this framework which has a different style into our repo which has 2 styles, with very little guidance on what to do at crossroads, so you need human in the loop guidance here.</p>



<p class="wp-block-paragraph">Sixth, the shotgun parsing and lack of an anti-corruption layer was heavy, which in turn caused a lot of shotgun parsing because the maybe&#8217;s/optional&#8217;s were everywhere. In Brownfield, that&#8217;s fine, you just slowly add the parsing higher up, leaving it in a better place than you found it. But in the Greenfield code we&#8217;re adding, you have an opportunity to do things better, while still interfacing with the old in clear boundaries. So I explained Parse, Don&#8217;t Validate, Shotgun Parsing, and how you &#8220;design for the types you want, not what you&#8217;re given by some back-end&#8221; and how Zod can handle all this in colocated code. Again, it&#8217;s a lot throw at someone who&#8217;s never heard of all this a cohesive concept. LLM&#8217;s, even Opus 3.5, has all this in its training data. It may not be aware of Zod Codecs or the encoding angle, but even ghetto-fabulous SWE 1.6 can pick that up quickly if you give it a golden example. You have to be clear, though, about all of those rules, AND how to integrate them, (e.g. use Zod .transform/.pipe to map from downstream Data Transfer Objects, aka DTO&#8217;s ,to our domain Value Objects aka VO&#8217;s, so nice types come out).</p>



<p class="wp-block-paragraph">Seventh, the LLM she was using read our code and started throwing custom class exceptions. The miss was we have a mapping layer at the top to ensure the responses match what we tell the user, so both the exception has to be shaped a certain way, the tests have to check for specific id&#8217;s, AND placement has to be thought out because since there are no types, the tests have to be aware of what level this is thrown from to test it. I explained we&#8217;re moving away from this approach to Railway programming using Neverthrow to have typed errors. I still can&#8217;t tell if this landed, but I know LLM&#8217;s can help you a ton here; I still use LLM&#8217;s to help debug Promise/ResultAsync chains when the return type isn&#8217;t requite right; they have an uncanny ability to fix it, even if you use the wrong explicit return type. Errors as Values is a huge mind shift for those used to imperative coding, especially those not from Go or Rust or FP languages. Especially tricky is the boundaries we have to map back to exceptions so our harness to &#8220;read all the errors and translate to the correct user response&#8221;. Easy with a .map, hard if you&#8217;re like &#8220;why do I need a .map?&#8221; LLM&#8217;s can grok that part easily, what&#8217;s hard for them is identifying the correct boundary. I don&#8217;t know all the boundaries, nor does she; we&#8217;d have to explore together to figure them out.</p>



<p class="wp-block-paragraph">Eighth, and this is extremely common among TypeScript devs not from an FP background, the types are more for spelling, not for doing any type of Type Driven Development, or &#8220;if it compiles, it works&#8221; philosophy. So I had to give multiple ideas for certain sections on what could be done to offload to the type system instead of numerous tests, mocks or not. Some situations were impossible, and I had to give a couple of examples to show how you can model it so those impossible situations don&#8217;t occur anymore. There were a few switch statements that had default in them, and I had to explain how exhaustiveness checking in TypeScript works, and how the LLM&#8217;s will tell you to use never, but ignore them, and how some of that wasn&#8217;t her fault because the data they were using was draw DTO&#8217;s with optionals and nulls, and some approaches on how to possibly refactor and fix that. The LLM&#8217;s are extremely aware of how to type well, and they can easily bounce between OCAML pragmatism eschewing currying, to full Scala (feels like Java) where you don&#8217;t need tests &#8220;because we typed the universe&#8221;. You have to know those styles, AND the verbosity that TypeScript entails, AND figure out where your team falls in that extremely long spectrum, AND what to type now vs later given TypeScript is gradually typed. All of that, and if you&#8217;re learning this? Oh man, it&#8217;s harder in TypeScript because it&#8217;s so verbose compared to other languages, so the LLM (or me) has to know the level you&#8217;re at to teach it. Whew!</p>



<p class="wp-block-paragraph">Had I not reviewed the code:</p>



<p class="wp-block-paragraph">&#8211; the blast radius was high for this PR, with no easy ability to identify what would have caused it given so many changes</p>



<p class="wp-block-paragraph">&#8211; condoning this behavior, human or LLM, sets a precedent that&#8217;s ok to make large PR&#8217;s. It&#8217;s not ok, and I will not condone it.</p>



<p class="wp-block-paragraph">&#8211; would have missed so many wonderful opportunities to teach; I even got a message saying &#8220;Thanks for the review, those are rare nowadays&#8221; which about made my heart sink; happy she appreciated the attention, but this should be the norm to teach, not to be a meat proxy and just &#8220;have the LLM approve it&#8221;</p>



<p class="wp-block-paragraph">&#8211; she now knows of all of this to better drive the LLM; before she wouldn&#8217;t even think to ask, and the code style + lack of rules-in-repo ensured the LLM would never volunteer alternatives</p>



<p class="wp-block-paragraph">I got to help teach, she got setup for success, we both learned how to better drive the LLM&#8217;s. THIS is why I read the code.</p>



<p class="wp-block-paragraph">2nd case is a lot simpler. Junior has a small PR to move a service to a new one with a feature flag. This new service is GraphQL, not REST, but the idea is the data will come back and map to our same domain objects. The issue, however, is despite using Zod in the new code, he&#8217;s still got Shotgun Parsing going on. If Zod safeParse works, he returns void, and continues on vs. using that safe-to-use domain data. There&#8217;s a fundamental understanding of how data validation should work, how TypeScript type narrowing works, and an LLM misunderstanding of how our code base wants you to do things given it&#8217;s brownfield and is lacking repo rules.</p>



<p class="wp-block-paragraph">Again, I get to level him up, and we both learned how we could better articulate to the LLM how to do things, both in prompts and rules, and adding yet another golden data set to give to LLM&#8217;s for the future. THAT again, is why I have to read the code.</p>



<p class="wp-block-paragraph">Yes, LLM&#8217;s are helping me. I&#8217;ve got Claude and Codex running my 3 Domain Driven Design, Unit Test, and Architecture review skills as well as SWE 1.6 in Windsurf. We have an Enterprise LLM code review that I&#8217;ve contributed to as well when I saw a core review was a bit off. So all hands are a deck for this, and helping. None of them, though, know the purpose, or does the Mid-level dev nor Junior know some of these fundamentals in architecture to ASK the LLM&#8217;s for help. Together, we all get smarter, and help the LLM&#8217;s help us more.</p>



<p class="wp-block-paragraph">Yes, there are cases where I&#8217;m not reading the code; libraries that we use, integration points that never change, infra configurations that a multitudes of red tape and cyber checks to ensure they work and are safe. However, I&#8217;m erring on the side of read all of it because I&#8217;m consistently seeing code and architecture I wouldn&#8217;t want to be on call for in production, there are so many wonderful opportunities to teach and learn myself, misunderstandings from both Dev&#8217;s and LLM&#8217;s, and all of these help me refine the LLM&#8217;s to help me, and hopefully others self-teach, in this regard.</p>



<p class="wp-block-paragraph">Finally, the most important part, is to learn. Are these requirements correct? Does this architecture allow future change more easily? Is this safe, or will we get dinged by cyber? I could go on and on; so far, the LLM&#8217;s aren&#8217;t catching all of these things, or are confused on when to apply my rules correct to all situations.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2026/09/two-cases-on-why-we-should-read-the-code.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Quitting Coffee Again</title>
		<link>https://jessewarden.com/2026/09/quitting-coffee-again.html</link>
					<comments>https://jessewarden.com/2026/09/quitting-coffee-again.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Sun, 27 Sep 2026 14:33:35 +0000</pubDate>
				<category><![CDATA[Health]]></category>
		<guid isPermaLink="false">https://jessewarden.com/?p=7317</guid>

					<description><![CDATA[About 8 years ago, I quit coffee. It was, and still is, my only caffeine intake. I&#8217;m doing it again to see if it helps my sleep issues. Motivation When I first did it, I was motivated by 3 things that happened at the same time: Surprising Caffeine &#38; Fitness Learning&#8217;s Both of those taught [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">About 8 years ago, I quit coffee. It was, and still is, my only caffeine intake. I&#8217;m doing it again to see if it helps my sleep issues.</p>



<span id="more-7317"></span>



<h2 class="wp-block-heading">Motivation</h2>



<p class="wp-block-paragraph">When I first did it, I was motivated by 3 things that happened at the same time:</p>



<ol class="wp-block-list">
<li>Primary Care Doctor recommended I get diagnosed for ADHD; specialist says I wasn&#8217;t, told me to Google sleep studies around diet (it was more specific keywords than that, I found good articles)</li>



<li>Saw an interview with Matthew Walker on Joe Rogan who talked about the half-life of caffeine. This lead to a rabbit hole of research.</li>



<li>I was having sleep issues and hitting fitness limits.</li>
</ol>



<h2 class="wp-block-heading">Surprising Caffeine &amp; Fitness Learning&#8217;s</h2>



<p class="wp-block-paragraph">Both of those taught 3 key things that completely invalidated the &#8220;years of learning&#8221; I thought I had accrued from my fitness &amp; diet years:</p>



<ul class="wp-block-list">
<li>caffeine has a half life of almost 12 hours</li>



<li>yes, you can drink too much caffeine, resulting in disturbed sleep</li>



<li>coffee was consistently sold as a table stakes benefit to fitness; little did I know it was sabotaging my entire life</li>
</ul>



<p class="wp-block-paragraph">There were other good learning&#8217;s that arose from that, but suffice to say I was immediately extremely frustrated. When I started getting into fitness, I approached it from a nerd perspective and just read everything I could, and watched all the YouTube videos. Not 1 person, fitness guru, dietician, nor sports science grad said ANYTHING about the negative effects of caffeine. There were only 2 consistent things you&#8217;d read/hear: &#8220;Don&#8217;t drink to much&#8221; or &#8220;you can use black coffee to break a fast&#8221;. That first NEVER had any explanation, or was expanded upon.</p>



<p class="wp-block-paragraph">Most of the fitness blogs / thought leaders I really liked were super heavy on prioritizing your fitness pyramid into sleep first, diet second. Yet despite the common &#8220;turn off lights, avoid blue light on phone&#8221; etc. nothing about caffiene can ruin all of that, rather &#8220;use coffee with your BCCA&#8217;s to really make this workout count!&#8221;.</p>



<h2 class="wp-block-heading">Life Changing</h2>



<p class="wp-block-paragraph">To say removing caffeine from my life was world changing was an understatement. The amazing things that changed and 1 horrible thing:</p>



<ul class="wp-block-list">
<li>I fell asleep immediately; like a switch turning off when my head hit pillow</li>



<li>I woke up and could immediately function</li>



<li>I woke up and felt &#8220;refreshed&#8221;</li>



<li>I struggled to be creative as quickly</li>
</ul>



<p class="wp-block-paragraph">Let&#8217;s talk about them in order.</p>



<h3 class="wp-block-heading">Fall Asleep Immediately</h3>



<p class="wp-block-paragraph">The immediately falling asleep was wild. I only experienced this 3 times in my life: twice when doing extreme workout routines and on particular days I was just so tired, or when extremely sleep deprived from traveling. Even those didn&#8217;t compare to this.</p>



<p class="wp-block-paragraph">First, I&#8217;d start dreaming BEFORE I fell asleep. I read that many REM deprived individuals experience this, especially longer term alcoholics who will dream while they are awake. This is because the brain is so deprived of REM sleep.</p>



<p class="wp-block-paragraph">Second, it was consistent falling asleep where you&#8217;re just &#8220;out like a light&#8221;. No long waiting, no getting comfortable, just &#8220;click&#8221;; immediately out.</p>



<p class="wp-block-paragraph">Third, the dreams were unbelievably vivid. No nightmares except once (I had a slight tummy ache, which is normal for me to have a not-so-great dream when I don&#8217;t feel well). I still had the inability to remember most of the dreams, but still remembered way more details, and breadth then I&#8217;d usually have while on caffeine. This was consistent; every night, long, vivid dreams. Despite being fine and normal, nothing scary, I was still a bit apprehensive going to sleep some nights because I knew I was in store for some weird dreams. Despite me being an intense individual, I wasn&#8217;t used to having these intense of dreams, this often, for this long.</p>



<h3 class="wp-block-heading">Immediate Wake Up</h3>



<p class="wp-block-paragraph">This one was weird too. Typically I&#8217;d struggle to wake up. Hit snooze 50 times, get up and feel super groggy until the 3rd cup of coffee. Mornings were always rough for me. I chalked it up to my circadian rhythms, just being a night person.</p>



<p class="wp-block-paragraph">I&#8217;d be dreaming and then &#8220;I&#8217;m awake&#8221;. My eyes would open, and I&#8217;d be able to immediately sit up once I realized I was awake. I could even walk immediately to the kitchen. The sheer fact I was conscious, could sit up, and start my daily routines immediately was &#8230; just crazy. I often avoided people, social media, and my family on purpose because I just hated mornings so much and was such in a bad mood until the caffeine kicked it, and I was my normal, positive, high-strung self.</p>



<h3 class="wp-block-heading">Refreshed</h3>



<p class="wp-block-paragraph">This one was the most wild. Once I stood up&#8230; I felt better. BETTER. Like &#8220;I&#8217;m glad I slept&#8221; and &#8220;I feel refreshed&#8221;. I cannot articulate the level of disrespect and anger I felt for those who would create medical forms asking you &#8220;Do you wake up feeling refreshed?&#8221;. I likened those people creating those questions as &#8220;Do you own 50 Lamborghini&#8217;s on your Unicorn ranch on the moon?&#8221; or &#8220;What will you invest in once we have world peace?&#8221;. These people are completely out of touch with reality. Nobody wakes up &#8220;refreshed&#8221;. Healthly or not, fit or not, we&#8217;re all tired, and even morning people I&#8217;ve talked morning people, and they too struggle to get started. Please remove this dumb question from these forms. It is a myth; nobody wakes up &#8220;refreshed&#8221;. I can&#8217;t take you seriously.</p>



<p class="wp-block-paragraph">Then it happened to me. I did wake up refreshed. Every day. For weeks. It took me a long while to reconcile what was happening, and my anger towards feeling &#8220;misled&#8221; by the fitness industry deepened. Being older now, I don&#8217;t blame them. Many are young and aren&#8217;t as adversely affected. Many doing the writing/influencing have amazing genetics. The research and narratives around caffeine were buried; even the keyword searches or algorithms used to filter content on social did NOT surface anything negative about caffeine. All was positive with the silly warnings of &#8220;don&#8217;t drink too much caffeine&#8221; with nobody explaining what too much meant.</p>



<p class="wp-block-paragraph">I later learned that caffeine is one of the largest traded and consumed drugs in the world. It&#8217;s not just an American &#8220;work till you drop, sleep when you&#8217;re dead&#8221; culture thing; it&#8217;s a worldwide incentive and cultural norm.</p>



<h3 class="wp-block-heading">Brain Speed at 60%</h3>



<p class="wp-block-paragraph">I call this this one my &#8220;Brain Thesaurus Problem&#8221;.</p>



<p class="wp-block-paragraph">This was the 1 negative, and why I stopped and went back to coffee. It felt like there was a &#8220;dark veil&#8221; across my thinking. Like I was thinking in slow motion. The only way I can give you an idea what it was like is imagine if I said &#8220;Give me some words of when something is really good&#8221;.</p>



<p class="wp-block-paragraph">With coffee, I&#8217;d immediately blurt out in quick succession &#8220;rad, amazing, epic, super duper, dope, amaze&#8221;. But now&#8230; it was almost like I&#8217;d search for the words, and they weren&#8217;t there. I don&#8217;t know if some kind of wires just weren&#8217;t connecting anymore or what, but it&#8217;d take till about noon to 1pm to get back to the ability to fire on all cylinders. Physically I was fine. Mentally I felt really good. But, as a programmer, you are constantly being creative and connecting a lot of thoughts together whether through verbal communication, in chat, or in code while typing and reading. This was extremely frustrating.</p>



<p class="wp-block-paragraph">The only thing I can think was my body&#8217;s natural Cortisol and Orexin deliveries to my brain in the morning were broken or unused since I started drinking caffeine heavily as a teenager, and coffee in in particular around 14. Given my high metabolism, and strict school schedule, I was always up early and eating, and caffeine usually played a role. That&#8217;s nearly 25 years of me ignoring/overriding those morning wake up hormones.</p>



<p class="wp-block-paragraph">Anyway, given what I do for a living, after 2 weeks of this, I had to go back. Even just 1 cup of coffee and within minutes my brain worked as normal, further convincing me my body&#8217;s normal hormones were just broken for the morning.</p>



<h3 class="wp-block-heading">Last Warning: Depression</h3>



<p class="wp-block-paragraph">I&#8217;ve learned a lot of things the hard way, and started to learn many industries seem to leave out important, negative details. For example, all the amazing hype around a Keto diet, I found no mention of the Keto Flu until after I tried it. Almost as bad as when I got Covid shots, I felt like I had the flu; felt like absolute trash, on the couch for days.</p>



<p class="wp-block-paragraph">Quitting caffeine, even in the slow, wean myself off manner still had a horrible side-effect that thankfully was temporary: depression.</p>



<p class="wp-block-paragraph">I get sad sometimes just like everyone else, and I&#8217;ve had episodes during my teenage years where things were extremely hard. But those were nothing compared to this. The worst depression I&#8217;ve ever experienced in my life was the 10 days when I was no longer drinking any caffeine in the mornings, not even decaf. It wasn&#8217;t the kind where you sleep more than normal, or feel detached from friends, family, your hobbies. This was a constant, deep in my soul &#8220;things are bad&#8221; feeling. I&#8217;m a strong will type of guy, quit smoking cold turkey, go 220% into new things I&#8217;m learning, can&#8217;t be hypnotized, etc. So when I get sad, I usually get angry, and that helps bring me out of it.</p>



<p class="wp-block-paragraph">There was no anger here. Only emptiness and a deep sense that the world was sad. No dread, no anxiety, just an emptiness with me being stuck in some empty expanse of nothing, with no one, and a weak yearning to no longer be there. On the 11th day it stopped; there was like a 2% linger, but I knew it had &#8220;passed&#8221;. On the 12th day, gone totally.</p>



<p class="wp-block-paragraph">You can see why I am now more careful when I hear about new things from the fitness and diet industry.</p>



<h2 class="wp-block-heading">Why Doing This Again?</h2>



<p class="wp-block-paragraph">As I&#8217;ve gotten older, my energy levels have dropped. I&#8217;m still super high-strung compared to many I know, but it&#8217;s nothing like my 20&#8217;s. I first noticed a problem at 42 where I couldn&#8217;t finish workouts. I&#8217;d find the days I could power through, albeit barely, were when I had good sleep. People told me it was age, but I don&#8217;t think that&#8217;s 100% it. I took up Backpacking and riding a heavy motorcycle off-road, and found in most cases I had energy to do those things. After years of experiments during my 20&#8217;s and 30&#8217;s with sleep, diet, and exercise I could tell it was sleep and diet.</p>



<p class="wp-block-paragraph">The second reason is AI. A lot of the LLM&#8217;s have accelerated the rate at which I have to review, and reject or fix, crap code. Social Media has made things worse as both bots and devs who don&#8217;t know any better have gone full AI Pyschosis, cargo culting the bad practices. This has galvanized me to help teach the juniors and mid-level devs the best practices, and hold back the rushing river of slop code and technical debt. To do that, I have to be at my best emotionally, and to do that, I have to fix my sleep, diet, and fitness. Given sleep is always the most important, I&#8217;m trying to fix it.</p>



<h2 class="wp-block-heading">How Did My Life Change</h2>



<p class="wp-block-paragraph">While I went back to drinking coffee, I did some strict changes I haven&#8217;t deviated from the past 8 years.</p>



<ol class="wp-block-list">
<li>I go to bed the same time every night; 11pm</li>



<li>I ensure I allow for 8 hours of sleep, even if I don&#8217;t get it. This means alarms are set for 7am. If I need to awaken earlier, I go to bed earlier even if I sit there waiting to fall asleep.</li>



<li>I ensure it&#8217;s dark at least 60-30 minutes before when I go to sleep; usually 10pm I&#8217;ll turn off all the lights (excluding my laptop, I&#8217;m a nerd)</li>



<li>I don&#8217;t drink caffeine within 12 hours of my bedtime; so I ensure to have my last coffee by/before 11am.</li>
</ol>



<h2 class="wp-block-heading">What&#8217;s Different This Time?</h2>



<p class="wp-block-paragraph">The first thing that&#8217;s different is I&#8217;m greatly expanding the wean time. I think I did like a month last time, where I did 3 cups for 3 days, then 2 for a few days, then 1, then decaf for a week, then none. I think that was way too fast.</p>



<p class="wp-block-paragraph">I currently finished 2 weeks of just 2 large cups a day. Today is the first day of just 1 large cup. I&#8217;m going to try that for 2 weeks before I decide to make a change. Even on the 2 cups a day, I already noticed 2 days where I had the &#8220;Blocked Creativity&#8221; problem; I was trying to explain some code to a co-worker in our 9:30am meeting and struggled to find the words. I knew what was happening, but the wired connections weren&#8217;t there. After about a minute of struggling, it finally connected, albeit slowly&#8230; like when Starlink internet will occasionally just be slow for a minute and then slowly starts working again. If the 1 cup of day makes the above worse, I may go to 1 1/2 for a couple of weeks.</p>



<p class="wp-block-paragraph">Even with just the 2 cups, I already started to feel my dreams get more intense. They aren&#8217;t as long, and I don&#8217;t have any of the immediate sleep, immediate wake up effects yet, but they&#8217;re getting close; I&#8217;d say 140% intensity compared to normal.</p>



<p class="wp-block-paragraph">The other odd thing is I keep waking up SUPER early. This didn&#8217;t happen last time; I&#8217;d sleep consistently for 7 to 8 hours. This results in me getting super tired midday, often taking a nap, and then being super groggy the rest of the day. This was part of the impetus to try to fix my sleep in the first place. I&#8217;m hoping this is just a temporary health/diet thing. Summer is over and it&#8217;s already getting darker sooner, and it&#8217;s mostly dark in the mornings now so hopefully my body will adjust.</p>



<p class="wp-block-paragraph">I&#8217;m also doing more cardio now, or at least trying. I was running 3 nights a week for 3 weeks + started improving diet (haven&#8217;t _totally_ cut out alcohol on weekends yet), but noticed the scale didn&#8217;t move at all. Usually when I start cooking healthy, it does. I&#8217;m about 178lbs, which was my max during my Powerlifting days, but since the motorcycle shoulder accident a year ago, I wasn&#8217;t doing my of anything. My normal natural weight is 166; that&#8217;s where I can do moderate Body Building / Cardio, and my body just &#8220;likes to be&#8221;. Perhaps age has increased things <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f604.png" alt="😄" class="wp-smiley" style="height: 1em; max-height: 1em;" />. I&#8217;ve started <a href="https://www.bodi.com/products/body-beast">Body Beast&#8217;s Lean</a> version to lose weight for Halloween. I&#8217;ve been doing Body Beast off and on for almost 10 years, and I&#8217;ll usually do the Bulk version.</p>



<p class="wp-block-paragraph">I&#8217;ll attempt to increase my cardio as the Lean version only has 1 day a week devoted to it, so I&#8217;ll probably throw in 2 days of running. The motorcycle and backpacking trips usually take it out of me, so will probably throw a couple of them in too. We&#8217;ll see how that pans out as usually 6 weeks to 2 months in, my body, even in my early 30&#8217;s, started to struggle with the &#8220;increase in weight balanced with the fact we&#8217;ve been doing this for 2 months of high intensity&#8221;. I&#8217;ve found since the intensity never stops, I could simply drop the weight some to ensure I have the energy to continue. I do NOT feel guilty anymore doing this either. I&#8217;d rather drop from my 20lb dumbbells to my 15 or 10&#8217;s just so I can keep going for 2 more weeks. I started skipping the cut phase and just extending the last Bulk phase for 2 to 3 weeks until my body just said &#8220;stop&#8221;. May skip that this time, and do the cut phase more aggressively this time.</p>



<p class="wp-block-paragraph">I found my body is super sensitive to protein intake, meaning, muscle mass just drops. However, because I&#8217;m so high strung, I cannot live without carbs. So I may go try a vegan / animal protein on and off again the last week to see how that works. I&#8217;m not really into tracking macros or calories anymore, but I did have massive success using cardio + weights + vegan 6 days a week to decrease fat. However, this time I could compensate with some animal protein to see how much I can tolerate. That, and it&#8217;d only be for 2 weeks vs. 3 months like last time. We&#8217;ll see.</p>



<p class="wp-block-paragraph">Anyway, will report back when I&#8217;m at 0 cups a day.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2026/09/quitting-coffee-again.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
