<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Yogesh Lonkar</title>
		<link>https://yogesh.lonkar.org/</link>
		<description>Recent content on Yogesh Lonkar</description>
		<generator>Hugo</generator>
		<language>en-IN</language>
		
		
		
			<copyright>© lonkar.org</copyright>
		
		
			<lastBuildDate>Wed, 23 Sep 2026 20:41:42 +0530</lastBuildDate>
		
			<atom:link href="https://yogesh.lonkar.org/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Ten years of tmux, and the 1,495 lines of zsh it cost me</title>
				<link>https://yogesh.lonkar.org/posts/ten-years-of-tmux/</link>
				<pubDate>Tue, 22 Sep 2026 11:30:00 +0530</pubDate>
				<guid>https://yogesh.lonkar.org/posts/ten-years-of-tmux/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;TL;DR I&amp;rsquo;ve used tmux since 2016 because I can script it. Over ten years my config grew into 1,495 lines of zsh across 13 scripts, and in May 2026 the status bar alone was burning 15.4% of a core on battery. The fix was one &lt;code&gt;#()&lt;/code&gt; call instead of six, and the scripts moved into one Rust daemon, &lt;a href=&#34;https://github.com/lonkar-org/tmux-companion&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tmux-companion&lt;/a&gt;. The bar costs 1.8% of a core on a spike and 0.3% idle now.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Claude and my stale posts</title>
				<link>https://yogesh.lonkar.org/posts/claude-and-my-stale-posts/</link>
				<pubDate>Thu, 17 Sep 2026 06:30:00 +0530</pubDate>
				<guid>https://yogesh.lonkar.org/posts/claude-and-my-stale-posts/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;This post itself is the exception to what follows: Claude wrote it from the week long session, using my notes and its own commit history, and I edited it. The career posts and the hosting post started as my writing. This one did not.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;This is a first draft.&#xA;I have used Claude on this blog for two days.&#xA;I will come back to this post when I have used it for two months.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Engineer: Chapter 2</title>
				<link>https://yogesh.lonkar.org/posts/engineer-chapter-2/</link>
				<pubDate>Thu, 30 Jan 2025 20:13:20 +0100</pubDate>
				<guid>https://yogesh.lonkar.org/posts/engineer-chapter-2/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://yogesh.lonkar.org/posts/engineer/&#34; &gt;Chapter 1&lt;/a&gt; ended in 2017 with a Jenkins plugin and a wish to grow upward instead of sideways.&#xA;This chapter covers the years since.&lt;/p&gt;&#xA;&lt;h2 id=&#34;production-engineer&#34;&gt;&#xA;  Production engineer&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#production-engineer&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;One idea from my production engineering degree that stuck: poka-yoke, mistake-proofing.&#xA;In college I read it as &amp;ldquo;prevent errors&amp;rdquo;.&#xA;It took years of platform work to see the real point.&#xA;You remove the mechanism of mistake so the person can spend their attention on the part of the job that needs it.&#xA;That&amp;rsquo;s developer experience in one sentence, and I didn&amp;rsquo;t know it till I was doing the job.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Engineer: Chapter 1</title>
				<link>https://yogesh.lonkar.org/posts/engineer/</link>
				<pubDate>Fri, 29 Nov 2024 15:33:37 +0100</pubDate>
				<guid>https://yogesh.lonkar.org/posts/engineer/</guid>
				<description>&lt;p&gt;I graduated in 2011, two years later than planned.&#xA;It didn&amp;rsquo;t bother me then and it doesn&amp;rsquo;t now.&#xA;People who learn it are surprised, so here is why.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-two-missing-years&#34;&gt;&#xA;  The two missing years&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#the-two-missing-years&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;In the second year of my degree I left to work with computers.&#xA;Assembling machines and installing pirated Windows was one of the few ways to earn from a computer in Pune then.&#xA;It paid for smokes and beer.&#xA;Writing software was more fun than screwing boards into cases, and nobody would pay me to write it without a degree.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Free static hosting with Cloudflare Pages, Terraform and GitHub Actions</title>
				<link>https://yogesh.lonkar.org/posts/static-hosting-cloudflare-pages-terraform/</link>
				<pubDate>Thu, 08 Jul 2021 20:23:49 +0200</pubDate>
				<guid>https://yogesh.lonkar.org/posts/static-hosting-cloudflare-pages-terraform/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;TL;DR You have a static site and a domain. Cloudflare Pages serves it, Terraform sets up the hosting from a few files in your repo, R2 keeps Terraform&amp;rsquo;s memory, and GitHub Actions runs it all when you push. The bill is zero. The &lt;a href=&#34;https://github.com/lonkar-org/static-hosting-cloudflare-pages&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;example repo&lt;/a&gt; walks through the setup one commit at a time.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I wrote the first version of this post in 2021.&#xA;Since 2019 I had hosted a few sites for friends and family on AWS: S3 for files, CloudFront in front, Cloudflare for DNS only.&#xA;Route53 charged half a dollar per domain per month, more than S3 and CloudFront together for sites that small.&#xA;That post was about shaving that fee.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
