<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Half Frontend</title>
        <link>https://blog.kalan.dev/en</link>
        <description>Good technical writing conveys not just knowledge, but perspective. This is where I think and write.</description>
        <lastBuildDate>Sat, 11 Apr 2026 06:35:37 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <copyright>© 2026 Kalan</copyright>
        <item>
            <title><![CDATA[Dancing with AI]]></title>
            <link>https://blog.kalan.dev/en/software-development/dancing-with-ai</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/software-development/dancing-with-ai</guid>
            <pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[From ChatGPT 3.5 to Claude Code, software development has undergone dramatic changes in less than three years. Observations, reflections, and confusion from a software engineer amid this transformation]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[Stop Using Access Keys Already]]></title>
            <link>https://blog.kalan.dev/en/devnote/stop-using-aws-access-keys</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/devnote/stop-using-aws-access-keys</guid>
            <pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Access Keys are an easily overlooked security risk on AWS. Use OIDC with IAM Roles so GitHub Actions can securely access AWS resources without any secrets.]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[In 2026, You May Not Need AWS]]></title>
            <link>https://blog.kalan.dev/en/software-development/you-might-not-need-aws</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/software-development/you-might-not-need-aws</guid>
            <pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Before choosing a cloud platform, calculate the real cost your team pays for AWS.]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[Why You Should Deploy Services with ECS]]></title>
            <link>https://blog.kalan.dev/en/software-development/ecs-deployment-guide</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/software-development/ecs-deployment-guide</guid>
            <pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[When running containerized services on AWS, why ECS is a more pragmatic choice than EC2 or EKS, and how deployment complexity eats into your budget]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[Database Primary Keys: AUTO_INCREMENT, UUID, and UUIDv7]]></title>
            <link>https://blog.kalan.dev/en/devnote/uuidv7-primary-key</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/devnote/uuidv7-primary-key</guid>
            <pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Backend developers often have to decide on a primary key: auto increment or UUID? What about collisions? How much faster is UUIDv7 compared with created_at + index? After benchmarking 20 million rows and looking at the design trade-offs, this post gives you the answer.]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[Huffman Coding — Saying More with the Fewest Bits]]></title>
            <link>https://blog.kalan.dev/en/cs/huffman-coding</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/cs/huffman-coding</guid>
            <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Huffman coding is one of the most classic lossless compression algorithms in information theory. Starting from the concept of information content, this article breaks down the principles of Huffman coding step by step, and includes an interactive tool so you can try it yourself.]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[The Secret Behind JPEG Compression — Discrete Cosine Transform]]></title>
            <link>https://blog.kalan.dev/en/cs/jpeg-arrow-of-compression</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/cs/jpeg-arrow-of-compression</guid>
            <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Everyone is familiar with JPG, but there are many compression techniques behind it worth learning from. This article breaks down JPEG’s compression principles step by step—from the YCbCr color space and discrete cosine transform to quantization tables and Huffman coding—and includes an interactive DCT visualization tool.]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[Reconsidering the Software Engineering Disillusionment]]></title>
            <link>https://blog.kalan.dev/en/software-development/ai-generation-software-disenchantment</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/software-development/ai-generation-software-disenchantment</guid>
            <pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[With the dramatic progress of LLMs, the shape of software development has already been completely transformed; building an application now has almost no barrier to entry.]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[Sunwide View]]></title>
            <link>https://blog.kalan.dev/en/random/higuruma</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/random/higuruma</guid>
            <pubDate>Mon, 16 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sunwide View and Vigilante Justice]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[Shura]]></title>
            <link>https://blog.kalan.dev/en/random/shura</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/random/shura</guid>
            <pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Spring and Shura]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[Tang Poetry]]></title>
            <link>https://blog.kalan.dev/en/random/tang-poetry</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/random/tang-poetry</guid>
            <pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Tang poetry is pretty suitable for working people to read, right? The more miserable someone’s life is, the better their poetry seems to be written. Looking at how pitiful they were can help us reflect on ourselves.]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[Attempt]]></title>
            <link>https://blog.kalan.dev/en/random/try</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/random/try</guid>
            <pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Write on manuscript paper, scan it, and turn it into an image]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[The Things Quitting Taught Me]]></title>
            <link>https://blog.kalan.dev/en/random/quit-quit-quit</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/random/quit-quit-quit</guid>
            <pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[There are no second chances in life. Every resignation teaches us plenty, and slowly helps us understand the strengths we can play to. But before you quit, have you really thought it through? In this post, I’ll share some hard-earned lessons from the front lines as a developer, as a guide for my future self and in the hope that it helps anyone who has ever felt torn about whether to leave.]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[Does a Startup Need a CTO?]]></title>
            <link>https://blog.kalan.dev/en/random/does-startup-need-cto</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/random/does-startup-need-cto</guid>
            <pubDate>Wed, 28 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[In the AI era, the key to startup success is industry insight. Many execution-related tasks can be handled by experienced engineers, which makes me question whether a CTO is truly necessary.]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[Bad Writing Habits]]></title>
            <link>https://blog.kalan.dev/en/random/bad-writing-habits</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/random/bad-writing-habits</guid>
            <pubDate>Tue, 27 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Some old writing habits I’ve picked up over the years—I had AI analyze them, and it also happened to spark some thoughts about a recent change in my mindset.]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[Why I Switched from Google Analytics to Plausible]]></title>
            <link>https://blog.kalan.dev/en/random/plausible-over-ga4</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/random/plausible-over-ga4</guid>
            <pubDate>Sun, 25 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[I really dislike using Google Analytics. Besides being clunky to use, it has so many features that it’s overwhelming, and the dashboard interface and loading speed are so complicated that I don’t even want to open it. Until I finally found the ideal service a few years ago—Plausible.]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[Make Your Hyperlink Underlines Look Better: text-underline-offset]]></title>
            <link>https://blog.kalan.dev/en/frontend/text-underline-offset</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/frontend/text-underline-offset</guid>
            <pubDate>Sun, 25 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[By default, underlines sit very close to the text, and some designers dislike this style. Personally, I don’t think it looks very good either.]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[Have I Been Useful?]]></title>
            <link>https://blog.kalan.dev/en/random/am-i-being-helpful</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/random/am-i-being-helpful</guid>
            <pubDate>Fri, 09 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA["I really like a scene from *Frieren: Beyond Journey's End*.]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[9 Things I Came to Realize at Age Thirty]]></title>
            <link>https://blog.kalan.dev/en/random/things-i-realized-after-30</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/random/things-i-realized-after-30</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sharing some of the insights and thoughts I’ve had after turning thirty]]></description>
            <author>Kalan</author>
        </item>
        <item>
            <title><![CDATA[2025 Retrospective]]></title>
            <link>https://blog.kalan.dev/en/year-in-review/2025-year-in-review</link>
            <guid isPermaLink="false">https://blog.kalan.dev/en/year-in-review/2025-year-in-review</guid>
            <pubDate>Wed, 31 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[My wish for 2025, made in 2024, was to no longer have to return to office work and still be able to support myself. I didn’t quite achieve that goal, but I would say 2025 was one of the years in which I grew the most.]]></description>
            <author>Kalan</author>
        </item>
    </channel>
</rss>