<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[johngeorgesample.com]]></title><description><![CDATA[John-George Sample's blog]]></description><link>https://johngeorgesample.com</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 20:49:01 GMT</lastBuildDate><atom:link href="https://johngeorgesample.com/rss.xml" rel="self" type="application/rss+xml"/><pubDate>Sun, 16 Aug 2026 20:49:01 GMT</pubDate><language><![CDATA[en]]></language><item><title><![CDATA[Beyond the home office: how I work from anywhere]]></title><description><![CDATA[I've been working remotely since 2019, well before it became mainstream (though lately, it feels like that's shifting again 🫠). My WFH setup is very comfortable but I like to get outside the four walls of my home office every once in a while. This usually means coffee shops, co-working spaces, or…]]></description><link>https://johngeorgesample.com/blog/beyond-the-home-office-how-i-work-from-anywhere</link><guid isPermaLink="true">https://johngeorgesample.com/blog/beyond-the-home-office-how-i-work-from-anywhere</guid><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Stop feeling guilty about alt=""]]></title><description><![CDATA[My favorite resource for deciding when to add an alt tag is the Alt Decision Tree from the W3C. In addition to being a useful guide, it highlights something that isn't well known – null alt tags are not only perfectly acceptable, but even encouraged. Decorative images, as the name implies, don't add…]]></description><link>https://johngeorgesample.com/blog/stop-feeling-guilty-about-null-alt</link><guid isPermaLink="true">https://johngeorgesample.com/blog/stop-feeling-guilty-about-null-alt</guid><pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Nothing scares me anymore: Coding with AI is a superpower I didn't ask for]]></title><description><![CDATA[It makes me faster, but I didn't ask to go faster. Like someone who suddenly gets a superpower, is it irresponsible to not use it? Does the answer change when everyone was given the superpower? I struggled to call myself a developer for years because it felt like I hadn't earned it. Eventually, I…]]></description><link>https://johngeorgesample.com/blog/nothing-scares-me-anymore-coding-with-ai-is-a-superpower-i-didnt-ask-for</link><guid isPermaLink="true">https://johngeorgesample.com/blog/nothing-scares-me-anymore-coding-with-ai-is-a-superpower-i-didnt-ask-for</guid><pubDate>Fri, 30 Jan 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[I stopped writing detailed tickets. Then I started using Claude Code.]]></title><description><![CDATA[I spent more time in Jira than I care to remember during my time as Tech Lead on my last team. Shuffling things from one column to the next, agonizing over the burndown chart, and most importantly, writing tickets. My tickets were solid. Anyone on the team (or more importantly, not on the team)…]]></description><link>https://johngeorgesample.com/blog/i-stopped-writing-detailed-tickets-then-i-started-using-claude-code</link><guid isPermaLink="true">https://johngeorgesample.com/blog/i-stopped-writing-detailed-tickets-then-i-started-using-claude-code</guid><pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[When TypeScript catches JavaScript’s little lies]]></title><description><![CDATA[I love JavaScript’s quirks. They can be frustrating, but I still get a kick out of noticing them. TypeScript is great at calling these out. Recently, I tried something simple: window.location = "some string" Type 'string' is not assignable to type 'Location'. Wat. I almost slapped on a @ts-ignore,…]]></description><link>https://johngeorgesample.com/blog/when-typescript-catches-javascripts-little-lies</link><guid isPermaLink="true">https://johngeorgesample.com/blog/when-typescript-catches-javascripts-little-lies</guid><pubDate>Sun, 31 Aug 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to track empty directories with Git]]></title><description><![CDATA[If you’ve ever tried to track an empty directory with Git, you might have noticed the message “nothing to commit, working tree clean” after running git status. That’s because Git doesn’t track folders — it tracks files. Running git add will add only the files inside . If is empty, running git add…]]></description><link>https://johngeorgesample.com/blog/how-to-track-empty-directories-with-git</link><guid isPermaLink="true">https://johngeorgesample.com/blog/how-to-track-empty-directories-with-git</guid><pubDate>Sat, 22 Mar 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[Using Netlify and LaTeX to keep my resume updated]]></title><description><![CDATA[Because Over-Engineering Is Fun Let's face it, resumes are boring. You know what's not boring? LaTeX (citation needed). What if we combine resumes, LaTeX, and an automated build pipeline to solve a problem no one has? The end result is a Git repo with my resume and a URL that always has the latest…]]></description><link>https://johngeorgesample.com/blog/using-netlify-and-latex-to-keep-my-resume-updated</link><guid isPermaLink="true">https://johngeorgesample.com/blog/using-netlify-and-latex-to-keep-my-resume-updated</guid><pubDate>Wed, 19 Mar 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[What you need to know about working with search param APIs]]></title><description><![CDATA[I end up reading documentation on search param APIs every time I need to work with them. This looks like me tabbing back and forth between MDN’s URL and URLSearchParams pages until I find what I’m looking for. After doing this enough times, I’ve realized I could do better. Thus, this post. It…]]></description><link>https://johngeorgesample.com/blog/what-you-need-to-know-about-working-with-search-param-apis</link><guid isPermaLink="true">https://johngeorgesample.com/blog/what-you-need-to-know-about-working-with-search-param-apis</guid><pubDate>Fri, 12 Jul 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Easy refactoring wins that will increase the readability of your code]]></title><description><![CDATA[1. Extract compound conditionals to methods Compound conditionals, or pieces of logic comprised of two conditions, are almost always better served as a named method. The biggest benefit of this refactoring is making something that was once implicit, explicit. To copy Ben Orenstein's words, it's more…]]></description><link>https://johngeorgesample.com/blog/easy-refactoring-wins-that-will-increase-the-readability-of-your-code</link><guid isPermaLink="true">https://johngeorgesample.com/blog/easy-refactoring-wins-that-will-increase-the-readability-of-your-code</guid><pubDate>Sat, 25 Sep 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[What I wish I knew about Vue when I started]]></title><description><![CDATA[Note: This post was written with Vue 2 in mind. I've enjoyed working with Vue for the past year, but there are a few key ideas that I wish someone would have instilled in me when I was first starting. This grab bag of advice has served me well and I hope you'll keep these tips in mind for your next…]]></description><link>https://johngeorgesample.com/blog/what-i-wish-i-knew-about-vue-when-i-started</link><guid isPermaLink="true">https://johngeorgesample.com/blog/what-i-wish-i-knew-about-vue-when-i-started</guid><pubDate>Fri, 29 Jan 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[How ZSH saves me time]]></title><description><![CDATA[I naturally spend a lot of time in the terminal and I found my way to ZSH after having used Bash long enough to find its shortcomings. These tips aren't exclusive to ZSH, it just happens to be the shell I use. Opening Meetings This might be my favorite of the list. My job utilizes webex for…]]></description><link>https://johngeorgesample.com/blog/how-zsh-saves-me-time</link><guid isPermaLink="true">https://johngeorgesample.com/blog/how-zsh-saves-me-time</guid><pubDate>Fri, 22 Jan 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[Creating a web for everyone]]></title><description><![CDATA[Earlier this year, I attended a tech conference in Pittsburgh, PA called “Abstractions”. It was there I was first introduced to the term “a11y”, a shortened name for “accessibility”. In the context of computing, a11y refers to the equal ability to use computers and computer based technology…]]></description><link>https://johngeorgesample.com/blog/creating-a-web-for-everyone</link><guid isPermaLink="true">https://johngeorgesample.com/blog/creating-a-web-for-everyone</guid><pubDate>Sat, 10 Dec 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Abstractions]]></title><description><![CDATA[As the night draws to a close, so does my first software conference — Abstractions. Abstractions is a new conference that brings together everyone involved in modern software development — designers, developers, DevOps, and community leaders — to teach, learn, and connect. I discovered the event…]]></description><link>https://johngeorgesample.com/blog/abstractions</link><guid isPermaLink="true">https://johngeorgesample.com/blog/abstractions</guid><pubDate>Wed, 24 Aug 2016 00:00:00 GMT</pubDate></item></channel></rss>