<?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>fallhunter</title>
	<atom:link href="https://fallhunter.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://fallhunter.com</link>
	<description></description>
	<lastBuildDate>Fri, 10 Apr 2026 23:51:40 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Hello world!</title>
		<link>https://fallhunter.com/1/hello-world/</link>
					<comments>https://fallhunter.com/1/hello-world/#comments</comments>
		
		<dc:creator><![CDATA[fallhunter]]></dc:creator>
		<pubDate>Fri, 10 Apr 2026 23:04:26 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://fallhunter.com/?p=1</guid>

					<description><![CDATA[Welcome to WordPress. This is your first post. Edit or delete it, then start writing!]]></description>
										<content:encoded><![CDATA[
<p>Welcome to WordPress. This is your first post. Edit or delete it, then start writing!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fallhunter.com/1/hello-world/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>The Case for Boring Technology</title>
		<link>https://fallhunter.com/16/the-case-for-boring-technology/</link>
					<comments>https://fallhunter.com/16/the-case-for-boring-technology/#respond</comments>
		
		<dc:creator><![CDATA[fallhunter]]></dc:creator>
		<pubDate>Fri, 10 Apr 2026 08:30:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://fallhunter.com/2026/04/10/the-case-for-boring-technology/</guid>

					<description><![CDATA[There is a famous talk by Dan McKinley called &#8220;Choose Boring Technology.&#8221; The core argument is simple: every team has a limited budget for novelty. Spend it on your actual product, not your infrastructure. Innovation Tokens McKinley introduces the concept of innovation tokens — you get about three. Each new or unfamiliar technology you adopt [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>There is a famous talk by Dan McKinley called &#8220;Choose Boring Technology.&#8221; The core argument is simple: every team has a limited budget for novelty. Spend it on your actual product, not your infrastructure.</p><h2 class="wp-block-heading">Innovation Tokens</h2><p>McKinley introduces the concept of innovation tokens — you get about three. Each new or unfamiliar technology you adopt costs one token. Use them wisely. PostgreSQL might be less exciting than the latest distributed database, but it has decades of battle-testing, excellent documentation, and a massive community.</p><h2 class="wp-block-heading">Boring Does Not Mean Bad</h2><p>Boring technology is technology that works. It has known failure modes. It has Stack Overflow answers. It has monitoring tools. It has people who have operated it at scale and written about what went wrong.</p><p>The most reliable systems I have worked on were built with boring choices. The most painful ones were built with resume-driven development. Choose wisely, and save your innovation tokens for the problems only you can solve.</p>]]></content:encoded>
					
					<wfw:commentRss>https://fallhunter.com/16/the-case-for-boring-technology/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Terminal Workflows That Save Me Hours Every Week</title>
		<link>https://fallhunter.com/15/terminal-workflows-that-save-me-hours-every-week/</link>
					<comments>https://fallhunter.com/15/terminal-workflows-that-save-me-hours-every-week/#respond</comments>
		
		<dc:creator><![CDATA[fallhunter]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 13:15:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://fallhunter.com/2026/04/09/terminal-workflows-that-save-me-hours-every-week/</guid>

					<description><![CDATA[I spend most of my day in the terminal. Over the years, I have accumulated a collection of aliases, scripts, and workflows that eliminate repetitive tasks. Here are the ones that have the biggest impact on my productivity. Aliases and Functions Simple aliases for common git operations save thousands of keystrokes per week. But custom [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I spend most of my day in the terminal. Over the years, I have accumulated a collection of aliases, scripts, and workflows that eliminate repetitive tasks. Here are the ones that have the biggest impact on my productivity.</p><h2 class="wp-block-heading">Aliases and Functions</h2><p>Simple aliases for common git operations save thousands of keystrokes per week. But custom shell functions are where the real power lies. I have a function that creates a new branch, sets up the PR template, and opens my editor in one command.</p><h2 class="wp-block-heading">Tmux and Session Management</h2><p>Tmux changed how I work. Persistent sessions mean I never lose my context. Named windows keep projects organized. And the ability to pair-program by sharing a session is underrated.</p><h2 class="wp-block-heading">FZF: The Universal Fuzzy Finder</h2><p>If you install one tool from this list, make it fzf. Fuzzy finding through command history, file paths, git branches, and process lists transforms how you navigate your system. Combine it with ripgrep and fd for an incredibly fast search workflow.</p>]]></content:encoded>
					
					<wfw:commentRss>https://fallhunter.com/15/terminal-workflows-that-save-me-hours-every-week/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Security Basics Every Developer Should Know</title>
		<link>https://fallhunter.com/14/security-basics-every-developer-should-know/</link>
					<comments>https://fallhunter.com/14/security-basics-every-developer-should-know/#respond</comments>
		
		<dc:creator><![CDATA[fallhunter]]></dc:creator>
		<pubDate>Wed, 08 Apr 2026 10:00:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://fallhunter.com/2026/04/08/security-basics-every-developer-should-know/</guid>

					<description><![CDATA[Security is not someone else s job. Every line of code you write is a potential attack surface. The good news is that most vulnerabilities come from a small set of well-known mistakes — and they are all preventable. The OWASP Top Ten Injection, broken authentication, sensitive data exposure, XML external entities, broken access control [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Security is not someone else s job. Every line of code you write is a potential attack surface. The good news is that most vulnerabilities come from a small set of well-known mistakes — and they are all preventable.</p><h2 class="wp-block-heading">The OWASP Top Ten</h2><p>Injection, broken authentication, sensitive data exposure, XML external entities, broken access control — the OWASP Top Ten has been the standard checklist for web security for over two decades. If you have not read it recently, take an hour and review the latest version.</p><h2 class="wp-block-heading">Practical Steps</h2><p>Parameterize your queries. Hash your passwords with bcrypt or argon2. Validate input on the server, never trust the client. Set security headers. Keep dependencies updated. Use HTTPS everywhere. These are not advanced techniques — they are the baseline.</p><p>The best time to think about security is before you write the code. The second best time is right now.</p>]]></content:encoded>
					
					<wfw:commentRss>https://fallhunter.com/14/security-basics-every-developer-should-know/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Lessons from Running a Side Project for Five Years</title>
		<link>https://fallhunter.com/13/lessons-from-running-a-side-project-for-five-years/</link>
					<comments>https://fallhunter.com/13/lessons-from-running-a-side-project-for-five-years/#respond</comments>
		
		<dc:creator><![CDATA[fallhunter]]></dc:creator>
		<pubDate>Tue, 07 Apr 2026 16:30:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://fallhunter.com/2026/04/07/lessons-from-running-a-side-project-for-five-years/</guid>

					<description><![CDATA[Five years ago, I launched a small tool to scratch my own itch. It was never meant to be a product. But somehow, people found it, started using it, and kept coming back. Here is what I learned along the way. Ship Early, Iterate Often The first version was embarrassing. A single PHP file with [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Five years ago, I launched a small tool to scratch my own itch. It was never meant to be a product. But somehow, people found it, started using it, and kept coming back. Here is what I learned along the way.</p><h2 class="wp-block-heading">Ship Early, Iterate Often</h2><p>The first version was embarrassing. A single PHP file with inline CSS. But it solved a real problem, and that was enough. Over time, I rewrote it twice, added features users actually asked for, and removed features I thought were clever but nobody used.</p><h2 class="wp-block-heading">Sustainability Over Growth</h2><p>I never tried to scale. No venture capital, no growth hacking, no marketing budget. The project grows when someone finds it useful and tells a friend. That pace is sustainable. I can maintain it in a few hours a month, and it still brings value to its small community of users.</p><p>Not every project needs to be a startup. Sometimes a small, useful tool is exactly enough.</p>]]></content:encoded>
					
					<wfw:commentRss>https://fallhunter.com/13/lessons-from-running-a-side-project-for-five-years/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Building a Home Lab on a Budget</title>
		<link>https://fallhunter.com/12/building-a-home-lab-on-a-budget/</link>
					<comments>https://fallhunter.com/12/building-a-home-lab-on-a-budget/#respond</comments>
		
		<dc:creator><![CDATA[fallhunter]]></dc:creator>
		<pubDate>Mon, 06 Apr 2026 09:45:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://fallhunter.com/2026/04/06/building-a-home-lab-on-a-budget/</guid>

					<description><![CDATA[You do not need enterprise hardware to learn enterprise skills. A home lab can be built from a single Raspberry Pi, an old laptop, or even a few cheap VPS instances. The goal is not to replicate a data center — it is to have a safe space to experiment and break things. My Setup [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>You do not need enterprise hardware to learn enterprise skills. A home lab can be built from a single Raspberry Pi, an old laptop, or even a few cheap VPS instances. The goal is not to replicate a data center — it is to have a safe space to experiment and break things.</p><h2 class="wp-block-heading">My Setup</h2><p>I run a small cluster of three machines: a mini PC as the main server, a Raspberry Pi for DNS and monitoring, and a NAS for storage. Total cost was under 300 dollars, most of it secondhand.</p><h2 class="wp-block-heading">What I Run</h2><p>Docker makes it easy to spin up services. I run Gitea for personal repos, Grafana and Prometheus for monitoring practice, a Postgres instance for database experiments, and Nginx as a reverse proxy tying it all together.</p><p>The best part of a home lab is permission to fail. No SLAs, no customers, no pagers. Just curiosity and a terminal.</p>]]></content:encoded>
					
					<wfw:commentRss>https://fallhunter.com/12/building-a-home-lab-on-a-budget/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>The Art of Writing Clean Commit Messages</title>
		<link>https://fallhunter.com/11/the-art-of-writing-clean-commit-messages/</link>
					<comments>https://fallhunter.com/11/the-art-of-writing-clean-commit-messages/#respond</comments>
		
		<dc:creator><![CDATA[fallhunter]]></dc:creator>
		<pubDate>Sun, 05 Apr 2026 14:00:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://fallhunter.com/2026/04/05/the-art-of-writing-clean-commit-messages/</guid>

					<description><![CDATA[Your git log is a story. Each commit message is a sentence in that story. When the messages are thoughtful, the history becomes a powerful debugging and onboarding tool. When they are lazy, the history becomes noise. What Makes a Good Commit Message A good commit message answers three questions: What changed? Why did it [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Your git log is a story. Each commit message is a sentence in that story. When the messages are thoughtful, the history becomes a powerful debugging and onboarding tool. When they are lazy, the history becomes noise.</p><h2 class="wp-block-heading">What Makes a Good Commit Message</h2><p>A good commit message answers three questions: What changed? Why did it change? What effect does the change have? The subject line should be imperative and under 72 characters. The body should provide context that the diff alone cannot convey.</p><h2 class="wp-block-heading">Common Anti-Patterns</h2><p>&#8220;Fixed stuff.&#8221; &#8220;WIP.&#8221; &#8220;asdfasdf.&#8221; We have all written these. But every vague commit is a future debugging session made harder. Take thirty seconds to write a real message. Your future self — and your teammates — will thank you.</p><p>Conventions like Conventional Commits can help, but the real goal is communication, not format compliance.</p>]]></content:encoded>
					
					<wfw:commentRss>https://fallhunter.com/11/the-art-of-writing-clean-commit-messages/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Understanding DNS: The Internet Phone Book</title>
		<link>https://fallhunter.com/10/understanding-dns-the-internet-phone-book/</link>
					<comments>https://fallhunter.com/10/understanding-dns-the-internet-phone-book/#respond</comments>
		
		<dc:creator><![CDATA[fallhunter]]></dc:creator>
		<pubDate>Sat, 04 Apr 2026 11:00:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://fallhunter.com/2026/04/04/understanding-dns-the-internet-phone-book/</guid>

					<description><![CDATA[Every time you type a URL into your browser, a complex chain of lookups happens behind the scenes. DNS — the Domain Name System — is one of the most critical pieces of internet infrastructure, yet most developers only think about it when something breaks. Let us walk through what actually happens when you visit [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Every time you type a URL into your browser, a complex chain of lookups happens behind the scenes. DNS — the Domain Name System — is one of the most critical pieces of internet infrastructure, yet most developers only think about it when something breaks.</p><p>Let us walk through what actually happens when you visit a website, from your local resolver cache all the way up to the authoritative nameservers.</p><h2 class="wp-block-heading">The Lookup Chain</h2><p>Your browser checks its cache first. Then the operating system cache. Then your configured DNS resolver — often your ISP or a public resolver like 1.1.1.1 or 8.8.8.8. If none of them have the answer, the resolver walks the DNS hierarchy: root servers, TLD servers, and finally the authoritative server for the domain.</p><p>Understanding this chain helps you debug propagation delays, TTL issues, and the occasional mystery of &#8220;it works on my machine but not in production.&#8221;</p>]]></content:encoded>
					
					<wfw:commentRss>https://fallhunter.com/10/understanding-dns-the-internet-phone-book/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A Field Guide to Debugging Production Issues</title>
		<link>https://fallhunter.com/9/a-field-guide-to-debugging-production-issues/</link>
					<comments>https://fallhunter.com/9/a-field-guide-to-debugging-production-issues/#respond</comments>
		
		<dc:creator><![CDATA[fallhunter]]></dc:creator>
		<pubDate>Fri, 03 Apr 2026 08:15:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://fallhunter.com/2026/04/03/a-field-guide-to-debugging-production-issues/</guid>

					<description><![CDATA[It is 2 AM. Your monitoring dashboard is lit up red. Users are reporting errors. The last deployment was three hours ago. Sound familiar? Production debugging is a skill that is rarely taught but frequently needed. In this guide, I share the mental models and practical techniques I have developed over years of on-call rotations. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>It is 2 AM. Your monitoring dashboard is lit up red. Users are reporting errors. The last deployment was three hours ago. Sound familiar?</p><p>Production debugging is a skill that is rarely taught but frequently needed. In this guide, I share the mental models and practical techniques I have developed over years of on-call rotations.</p><h2 class="wp-block-heading">Step One: Do Not Panic</h2><p>The first instinct is to start changing things. Resist it. Before you touch anything, gather data. Check your logs, look at your metrics, and form a hypothesis. The worst production incidents are the ones made worse by hasty fixes.</p><h2 class="wp-block-heading">Isolate and Reproduce</h2><p>Can you reproduce the issue? If yes, you are halfway to a fix. If no, you need more observability. Add structured logging, trace requests end-to-end, and build dashboards before you need them — not during an incident.</p>]]></content:encoded>
					
					<wfw:commentRss>https://fallhunter.com/9/a-field-guide-to-debugging-production-issues/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Why I Switched to a Minimal Tech Stack</title>
		<link>https://fallhunter.com/8/why-i-switched-to-a-minimal-tech-stack/</link>
					<comments>https://fallhunter.com/8/why-i-switched-to-a-minimal-tech-stack/#respond</comments>
		
		<dc:creator><![CDATA[fallhunter]]></dc:creator>
		<pubDate>Thu, 02 Apr 2026 10:30:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://fallhunter.com/2026/04/02/why-i-switched-to-a-minimal-tech-stack/</guid>

					<description><![CDATA[After years of chasing the latest frameworks and libraries, I made a deliberate choice to simplify. Fewer dependencies, less abstraction, more control. The result has been surprisingly liberating. The modern web ecosystem encourages complexity. Every problem has a package, every pattern has a framework. But at some point, the overhead of managing all those moving [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>After years of chasing the latest frameworks and libraries, I made a deliberate choice to simplify. Fewer dependencies, less abstraction, more control. The result has been surprisingly liberating.</p><p>The modern web ecosystem encourages complexity. Every problem has a package, every pattern has a framework. But at some point, the overhead of managing all those moving parts starts to outweigh the benefits.</p><h2 class="wp-block-heading">What Changed</h2><p>I replaced my React SPA with server-rendered HTML and a sprinkle of vanilla JS. I dropped my ORM in favor of raw SQL. I traded Kubernetes for a single VPS with a deploy script. The apps still work. They are faster. And I actually understand every line of my infrastructure.</p><p>This is not advice for everyone. Large teams need different tools than solo developers. But if you have been feeling the weight of your stack, it might be worth questioning what is truly necessary.</p>]]></content:encoded>
					
					<wfw:commentRss>https://fallhunter.com/8/why-i-switched-to-a-minimal-tech-stack/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
