<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Beginner on Khang Nghiem</title><link>https://www.khangnghiem.com/tags/beginner/</link><description>Recent content in Beginner on Khang Nghiem</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 15 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.khangnghiem.com/tags/beginner/index.xml" rel="self" type="application/rss+xml"/><item><title>How the JVM HotSpot Works: Explained Simply</title><link>https://www.khangnghiem.com/post/jvm-hotspot/</link><pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate><guid>https://www.khangnghiem.com/post/jvm-hotspot/</guid><description>&lt;p&gt;Have you ever noticed that a Java application feels a little slow right after it starts, but gets faster after a few minutes of running? That is not a bug. That is the JVM doing its job.&lt;/p&gt;
&lt;p&gt;This post explains why that happens, in plain language.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="start-with-a-story"&gt;Start with a story&lt;/h2&gt;
&lt;p&gt;Imagine you just started working at a restaurant as a chef.&lt;/p&gt;
&lt;p&gt;On your first day, you follow every recipe step by step. You open the book, read the first step, do it, read the second step, do it. It works, but it is slow. You are spending as much time reading as you are cooking.&lt;/p&gt;</description></item><item><title>Redis for Beginners: The Cache That Does More Than You Think</title><link>https://www.khangnghiem.com/post/redis-for-beginners/</link><pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate><guid>https://www.khangnghiem.com/post/redis-for-beginners/</guid><description>&lt;p&gt;Most Redis tutorials start with &amp;ldquo;Redis is an in-memory key-value store.&amp;rdquo; That sentence is accurate and tells you almost nothing useful. This post starts from the problem Redis was built to solve, then explains each data structure and pattern from the problem it solves, not from what it is called.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="part-1-why-redis-exists"&gt;Part 1: Why Redis Exists&lt;/h2&gt;
&lt;h3 id="the-latency-gap-nobody-talks-about"&gt;The latency gap nobody talks about&lt;/h3&gt;
&lt;p&gt;You build a web app. At first, everything is fast. Then traffic grows. You look at your query logs and see the same queries running thousands of times per minute: &amp;ldquo;get user profile,&amp;rdquo; &amp;ldquo;get product details,&amp;rdquo; &amp;ldquo;get homepage feed.&amp;rdquo; The data barely changes, but you are hitting the database every single time.&lt;/p&gt;</description></item><item><title>Kafka for Beginners: How It Works and Why It Exists</title><link>https://www.khangnghiem.com/post/kafka-for-beginners/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.khangnghiem.com/post/kafka-for-beginners/</guid><description>&lt;p&gt;Most explanations of Kafka start with &amp;ldquo;Kafka is a distributed event streaming platform.&amp;rdquo; That sentence is accurate and tells you nothing useful. This post starts from the problem Kafka was built to solve, then explains each piece of the system from why it exists, not from what it is called.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="part-1-why-kafka-exists"&gt;Part 1: Why Kafka Exists&lt;/h2&gt;
&lt;h3 id="the-problem-with-direct-service-calls"&gt;The problem with direct service calls&lt;/h3&gt;
&lt;p&gt;Suppose you have an e-commerce system. When a user places an order, several things must happen: the inventory service deducts stock, the notification service sends a confirmation email, the analytics service records the sale, and the fraud detection service runs a check.&lt;/p&gt;</description></item></channel></rss>