<?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet type="text/xsl" href="rss.xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>Pongsak Khamdee</title><description>Technology is changing over time like the human age, documenting the finding helps me remember my footstep</description><link>https://pkhamdee.blog/</link><atom:link href="https://pkhamdee.blog/feed_rss_created.xml" rel="self" type="application/rss+xml" /> <managingEditor>Pongsak Khamdee</managingEditor><language>en</language> <pubDate>Fri, 29 May 2026 08:58:20 -0000</pubDate> <lastBuildDate>Fri, 29 May 2026 08:58:20 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.19.0</generator> <image> <url>https://github.com/pkhamdee.png</url> <title>Pongsak Khamdee</title> <link>https://pkhamdee.blog/</link> </image> <item> <title>Build a Second Brain with Claude Code and Obsidian</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;Build a Second Brain with Claude Code and Obsidian&lt;/h1&gt; &lt;p&gt;&lt;img alt=&#34;&#34; src=&#34;images/vegapunk.png&#34;&gt;&lt;/p&gt; &lt;p&gt;Most note-taking apps are graveyards. You clip an article, it sits in a folder, you never read it again. The knowledge doesn&#39;t connect to anything. It doesn&#39;t compound. After three years you have 4,000 notes and can&#39;t find anything.&lt;/p&gt; &lt;p&gt;This guide builds something different: a &lt;strong&gt;self-maintaining knowledge base&lt;/strong&gt; where Claude Code acts as your librarian. You dump raw material in. Claude reads it, writes structured wiki articles, cross-links related concepts, and files everything. You ask questions. The answers become new notes. The library grows smarter every time you use it.&lt;/p&gt; &lt;p&gt;The architecture is based on &lt;a href=&#34;https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f&#34;&gt;Andrej Karpathy&#39;s LLM Wiki pattern&lt;/a&gt;: a persistent, compounding knowledge base where an LLM does the bookkeeping you&#39;d never do yourself.&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/29/build-a-second-brain-with-claude-code-and-obsidian/</link> <pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/29/build-a-second-brain-with-claude-code-and-obsidian/</guid> </item> <item> <title>Git Workflow for Release Management: Branches vs Tags</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;Git Workflow for Release Management: Branches vs Tags&lt;/h1&gt; &lt;p&gt;&lt;img alt=&#34;&#34; src=&#34;images/git-workflow-overview.png&#34;&gt;&lt;/p&gt; &lt;p&gt;Most teams invent their Git strategy as they go. One developer starts tagging releases. Another uses branches. A third creates a hotfix branch and never deletes it. By the time you need to patch a six-month-old release, nobody remembers what &lt;code&gt;release-final-v2&lt;/code&gt; means or where hotfixes actually landed.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;A clear branching strategy prevents this.&lt;/strong&gt; This post covers a battle-tested Git workflow built around two parallel approaches — version control with branches and version control with tags — and tells you exactly when to use each.&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/29/git-workflow-for-release-management-branches-vs-tags/</link> <pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/29/git-workflow-for-release-management-branches-vs-tags/</guid> </item> <item> <title>CKA Mock Exam — Complete Questions &amp;amp; Solutions</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;CKA Mock Exam — Complete Questions &amp;amp; Solutions&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;Exam Rules Reminder&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Use &lt;code&gt;sudo&lt;/code&gt; to edit files in &lt;code&gt;/etc/kubernetes/manifests/&lt;/code&gt;&lt;/li&gt; &lt;li&gt;Use &lt;code&gt;sudo&lt;/code&gt; for kubelet restart and system-level debugging&lt;/li&gt; &lt;li&gt;Use documentation links provided in each question&lt;/li&gt; &lt;li&gt;SSH into the correct node as specified in the question&lt;/li&gt; &lt;li&gt;Always verify the correct namespace before applying changes&lt;/li&gt; &lt;/ul&gt;</description> <link>https://pkhamdee.blog/2026/05/27/cka-mock-exam--complete-questions--solutions/</link> <pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/27/cka-mock-exam--complete-questions--solutions/</guid> </item> <item> <title>Agent-Driven Software Factory: Replace Vibe Coding With a 12-Agent Pipeline</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;Agent-Driven Software Factory: Replace Vibe Coding With a 12-Agent Pipeline&lt;/h1&gt; &lt;p&gt;&lt;img alt=&#34;&#34; src=&#34;images/ai-software-factory-disc.png&#34;&gt;&lt;/p&gt; &lt;p&gt;Vibe coding is not a software development process.&lt;/p&gt; &lt;p&gt;Fire a prompt, accept the result, ship it. Fast in the same way skipping tests is fast — until something breaks and you can&#39;t explain why. The output is plausible-looking code with no validated problem, no verified requirements, no threat model, no acceptance tests, no deployment strategy. One feature. Eleven things that were supposed to happen but didn&#39;t.&lt;/p&gt; &lt;p&gt;The &lt;a href=&#34;https://github.com/pkhamdee/software-factory-agent&#34;&gt;Software Factory Agent&lt;/a&gt; replaces that with a &lt;strong&gt;12-agent pipeline&lt;/strong&gt;. One developer runs the chain. Specialized agents handle market research, product scoping, UX design, security, implementation, testing, validation, and deployment — each in its own clean context window with only the tools it needs.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Two modes.&lt;/strong&gt; Discovery mode (12 agents) validates the market, defines the product, and designs the UX before any engineering starts. Feature mode (9 agents) skips straight to implementation for incremental work on an existing product.&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/26/agent-driven-software-factory-replace-vibe-coding-with-a-12-agent-pipeline/</link> <pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/26/agent-driven-software-factory-replace-vibe-coding-with-a-12-agent-pipeline/</guid> </item> <item> <title>The Karpathy Skill: Four Rules That Make You a Better AI-Era Engineer</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;The Karpathy Skill: Four Rules That Make You a Better AI-Era Engineer&lt;/h1&gt; &lt;p&gt;&lt;img alt=&#34;&#34; src=&#34;images/karpathy-skill.png&#34;&gt;&lt;/p&gt; &lt;p&gt;Most developers use AI coding assistants wrong.&lt;/p&gt; &lt;p&gt;They fire off a vague prompt, accept the first 200-line response, and then spend the next hour debugging why the &#34;helpful&#34; code broke three other things. The tool is fast — the outcome is slow.&lt;/p&gt; &lt;p&gt;Andrej Karpathy — the Stanford AI researcher who co-founded OpenAI, led Tesla&#39;s Autopilot team, and built &lt;a href=&#34;https://github.com/karpathy/nanoGPT&#34;&gt;NanoGPT&lt;/a&gt; from scratch — distilled decades of engineering intuition into four rules that are now circulating as a &lt;code&gt;CLAUDE.md&lt;/code&gt; template for AI coding assistants. These rules are not about AI. They are about &lt;strong&gt;how senior engineers think&lt;/strong&gt; — and they happen to be exactly what you need to get great results from any AI coding tool in 2026.&lt;/p&gt; &lt;p&gt;This post unpacks every rule with the &lt;em&gt;why&lt;/em&gt;, concrete examples, and practical habits you can start using today.&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/26/the-karpathy-skill-four-rules-that-make-you-a-better-ai-era-engineer/</link> <pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/26/the-karpathy-skill-four-rules-that-make-you-a-better-ai-era-engineer/</guid> </item> <item> <title>PostgreSQL High Availability with Patroni: 2026 Edition</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;PostgreSQL High Availability with Patroni: 2026 Edition&lt;/h1&gt; &lt;p&gt;Running a single PostgreSQL instance in production is a liability. When it goes down — and it will — so does your application. High availability is not optional for production databases; it is the baseline.&lt;/p&gt; &lt;p&gt;This guide builds a production-grade PostgreSQL HA cluster using the fully open-source community stack: &lt;strong&gt;PostgreSQL 17 from PGDG&lt;/strong&gt;, &lt;strong&gt;Patroni 4.x&lt;/strong&gt;, &lt;strong&gt;etcd 3.5&lt;/strong&gt;, &lt;strong&gt;pgbackrest 2.58&lt;/strong&gt;, and &lt;strong&gt;HAProxy&lt;/strong&gt;. No vendor-specific packages. No proprietary repositories. Everything here runs on Rocky Linux 9 or AlmaLinux 9 and stays fully open-source.&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/26/postgresql-high-availability-with-patroni-2026-edition/</link> <pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/26/postgresql-high-availability-with-patroni-2026-edition/</guid> </item> <item> <title>PostgreSQL Performance Tuning for Application Developers (2026 Edition)</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;PostgreSQL Performance Tuning for Application Developers (2026 Edition)&lt;/h1&gt; &lt;p&gt;Slow queries are not a database problem. They are a design problem.&lt;/p&gt; &lt;p&gt;A query that takes 4 seconds on a table with 100 million rows almost always has a fixable root cause: missing index, wrong index type, table bloat, exhausted connection pool, or configuration defaults that were set for a 1GB dataset and never updated. Most performance problems are found — and solved — at the query and schema level before any hardware needs to be touched.&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/26/postgresql-performance-tuning-for-application-developers-2026-edition/</link> <pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/26/postgresql-performance-tuning-for-application-developers-2026-edition/</guid> </item> <item> <title>PostgreSQL Server Tuning: The Complete 2026 Configuration Guide</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;PostgreSQL Server Tuning: The Complete 2026 Configuration Guide&lt;/h1&gt; &lt;p&gt;A freshly installed PostgreSQL server is configured to run safely on a shared laptop from 2005. &lt;code&gt;shared_buffers = 128MB&lt;/code&gt;. &lt;code&gt;work_mem = 4MB&lt;/code&gt;. &lt;code&gt;max_connections = 100&lt;/code&gt;. These defaults have not changed in over a decade — and they are deliberately conservative so the server starts without crashing on anything.&lt;/p&gt; &lt;p&gt;Your production server is not a 2005 laptop.&lt;/p&gt; &lt;p&gt;This guide covers every &lt;code&gt;postgresql.conf&lt;/code&gt; parameter that matters, the OS-level settings that underpin them, and a ready-to-use configuration reference for common server sizes — all updated for PostgreSQL 17 on Linux in 2026. It is the &lt;strong&gt;server configuration&lt;/strong&gt; companion to the &lt;a href=&#34;./postgresql-performance-tuning-2026.md&#34;&gt;query and index tuning guide&lt;/a&gt;, which covers &lt;code&gt;EXPLAIN&lt;/code&gt;, indexes, and PgBouncer.&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/26/postgresql-server-tuning-the-complete-2026-configuration-guide/</link> <pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/26/postgresql-server-tuning-the-complete-2026-configuration-guide/</guid> </item> <item> <title>CKA Cheat Sheet 2026</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;CKA Cheat Sheet 2026&lt;/h1&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Exam Domains:&lt;/strong&gt; Storage 10% | Troubleshooting 30% | Workloads &amp;amp; Scheduling 15% | Cluster Architecture 25% | Services &amp;amp; Networking 20%&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Kubernetes version on exam:&lt;/strong&gt; 1.34+ — &lt;code&gt;kubectl&lt;/code&gt; is pre-configured, &lt;code&gt;sudo&lt;/code&gt; required for node-level tasks. &lt;strong&gt;Allowed docs:&lt;/strong&gt; kubernetes.io/docs, kubernetes.io/blog, helm.sh/docs&lt;/p&gt; &lt;/blockquote&gt; &lt;h2&gt;Quick Wins — Always Do First&lt;/h2&gt; &lt;p&gt;```bash&lt;/p&gt; &lt;h1&gt;Set alias (saves time on every command)&lt;/h1&gt; &lt;p&gt;alias k=kubectl export do=&#34;--dry-run=client -o yaml&#34; # k run pod1 --image=nginx $do &amp;gt; pod.yaml export now=&#34;--force --grace-period=0&#34; # k delete pod pod1 $now&lt;/p&gt; &lt;h1&gt;Autocomplete&lt;/h1&gt; &lt;p&gt;source &amp;lt;(kubectl completion bash) complete -o default -F __start_kubectl k&lt;/p&gt; &lt;h1&gt;Context switching (exam has multiple clusters)&lt;/h1&gt; &lt;p&gt;kubectl config get-contexts kubectl config use-context &lt;context-name&gt; kubectl config current-context ```&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/24/cka-cheat-sheet-2026/</link> <pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/24/cka-cheat-sheet-2026/</guid> </item> <item> <title>Prompt Engineering: The Anthropic Playbook</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;Prompt Engineering: The Anthropic Playbook&lt;/h1&gt; &lt;p&gt;&lt;img alt=&#34;&#34; src=&#34;images/anthropic-prompt-engineering-guide-coverpic.png&#34;&gt;&lt;/p&gt; &lt;p&gt;There is no magic phrase that makes an LLM smarter. There is no secret syntax, no special keyword, no hidden trick that unlocks better results.&lt;/p&gt; &lt;p&gt;What there is: a systematic discipline for giving models what they actually need to do good work. That discipline has a name — &lt;strong&gt;prompt engineering&lt;/strong&gt; — and Anthropic&#39;s Harrison Chase and Christiaan Ryan spent an entire workshop teaching it the right way, using a real production example, and showing exactly where simple intuitions fail.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Source:&lt;/strong&gt; Harrison Chase &amp;amp; Christiaan Ryan, Anthropic — &lt;em&gt;&#34;Prompting 101&#34;&lt;/em&gt; (&lt;a href=&#34;https://www.youtube.com/watch?v=ysPbXH0LpIE&#34;&gt;YouTube&lt;/a&gt;)&lt;/p&gt; &lt;/blockquote&gt;</description> <link>https://pkhamdee.blog/2026/05/23/prompt-engineering-the-anthropic-playbook/</link> <pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/23/prompt-engineering-the-anthropic-playbook/</guid> </item> <item> <title>Building Effective AI Agents: The Anthropic Playbook</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;Building Effective AI Agents: The Anthropic Playbook&lt;/h1&gt; &lt;p&gt;&lt;img alt=&#34;&#34; src=&#34;images/building-effective-ai-agents-coverpic.png&#34;&gt;&lt;/p&gt; &lt;p&gt;Most teams building AI agents are solving the wrong problem.&lt;/p&gt; &lt;p&gt;They spend months wiring together orchestration frameworks, reflection loops, and multi-agent graphs — before they&#39;ve verified that the simplest version of their agent actually works. Then they wonder why the system is expensive, slow, and impossible to debug.&lt;/p&gt; &lt;p&gt;Barry Zhang from Anthropic gave a talk that cuts through all of that. The core message was blunt: &lt;strong&gt;most teams are building agents too early, and when they do build them, they build them wrong.&lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Source:&lt;/strong&gt; Barry Zhang, Anthropic — &lt;em&gt;&#34;How We Build Effective Agents&#34;&lt;/em&gt; (&lt;a href=&#34;https://www.youtube.com/watch?v=D7_ipDqhtwk&#34;&gt;YouTube&lt;/a&gt;)&lt;/p&gt; &lt;/blockquote&gt;</description> <link>https://pkhamdee.blog/2026/05/23/building-effective-ai-agents-the-anthropic-playbook/</link> <pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/23/building-effective-ai-agents-the-anthropic-playbook/</guid> </item> <item> <title>AI Agent Application Demo: Putting a Brain Inside Your App</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;AI Agent Application Demo: Putting a Brain Inside Your App&lt;/h1&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href=&#34;https://github.com/pkhamdee/coffee-agent&#34;&gt;github.com/pkhamdee/coffee-agent&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;There&#39;s a quiet revolution happening in how we write software. For decades, we&#39;ve built applications the same way: write a function, call the next function, handle each case with an &lt;code&gt;if&lt;/code&gt; statement, repeat. The logic is explicit, deterministic, and completely predictable — a flowchart carved into code.&lt;/p&gt; &lt;p&gt;That model still works. But it has a hard ceiling.&lt;/p&gt; &lt;p&gt;When a user wants to do something that doesn&#39;t fit neatly into your flowchart — when they say something ambiguous, change their mind mid-conversation, or combine requests in ways you didn&#39;t anticipate — the rigid-logic app breaks down. You end up writing more and more special-case handling until the code becomes unmaintainable.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;AI agents flip this model.&lt;/strong&gt; Instead of programming every decision upfront, you give your application a reasoning engine — a &lt;em&gt;brain&lt;/em&gt; — and let it figure out what to do. The application stops being a flowchart and starts being a &lt;em&gt;collaborator&lt;/em&gt;.&lt;/p&gt; &lt;p&gt;This post walks through a real, runnable example: a coffee shop ordering chatbot called &lt;strong&gt;Coffee Agent&lt;/strong&gt;. It&#39;s a full-stack app built with NestJS, React, LangGraph, and a local LLM running on Ollama. By the time you finish reading, you&#39;ll understand exactly what an agent is, why this architecture is powerful, and how to build one yourself.&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/20/ai-agent-application-demo-putting-a-brain-inside-your-app/</link> <pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/20/ai-agent-application-demo-putting-a-brain-inside-your-app/</guid> </item> <item> <title>Agentic AI Architectures: Patterns, Frameworks, and MCP for Enterprise Systems</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;Agentic AI Architectures: Patterns, Frameworks, and MCP for Enterprise Systems&lt;/h1&gt; &lt;p&gt;&lt;img alt=&#34;&#34; src=&#34;images/ai-architect-overview.png&#34;&gt;&lt;/p&gt; &lt;p&gt;Most AI tutorials show you how to call an API and get a response. That&#39;s not an agent. An agent is a system that &lt;strong&gt;perceives&lt;/strong&gt;, &lt;strong&gt;plans&lt;/strong&gt;, &lt;strong&gt;acts&lt;/strong&gt;, and &lt;strong&gt;adapts&lt;/strong&gt; — autonomously — using tools, memory, and other agents to complete tasks that no single LLM call could handle.&lt;/p&gt; &lt;p&gt;In 2026, agentic AI is the dominant paradigm for building AI into enterprise software. Not chatbots. Not search bars with AI behind them. Full autonomous systems that can research a topic, write code, test it, file a ticket, notify a Slack channel, and self-correct when something goes wrong — without a human in the loop for every step.&lt;/p&gt; &lt;p&gt;This is the definitive guide. We cover every design pattern, every major framework, the Model Context Protocol that is quietly unifying the entire ecosystem, and how to wire all of it into production enterprise systems.&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/19/agentic-ai-architectures-patterns-frameworks-and-mcp-for-enterprise-systems/</link> <pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/19/agentic-ai-architectures-patterns-frameworks-and-mcp-for-enterprise-systems/</guid> </item> <item> <title>GPU for AI Explained: VRAM, CUDA Cores, Tensor Cores, and Everything In Between</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;GPU for AI Explained: VRAM, CUDA Cores, Tensor Cores, and Everything In Between&lt;/h1&gt; &lt;p&gt;You&#39;ve heard it countless times: &lt;em&gt;&#34;You need a GPU to train AI models.&#34;&lt;/em&gt; But why? What is a GPU actually doing that a CPU can&#39;t? What are CUDA Cores, Tensor Cores, and VRAM — and why do AI engineers obsess over these numbers?&lt;/p&gt; &lt;p&gt;This guide starts from scratch and builds a complete mental model of GPU hardware for AI. By the end, you&#39;ll understand exactly what&#39;s happening inside the chip when your model trains — and how to pick the right hardware for the job.&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/19/gpu-for-ai-explained-vram-cuda-cores-tensor-cores-and-everything-in-between/</link> <pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/19/gpu-for-ai-explained-vram-cuda-cores-tensor-cores-and-everything-in-between/</guid> </item> <item> <title>Master Generative AI — Part 2: Working with LLMs</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;Master Generative AI — Part 2: Working with LLMs&lt;/h1&gt; &lt;p&gt;&lt;em&gt;Part 2 of the &lt;/em&gt;&lt;em&gt;Master Generative AI: A Step-by-Step Challenge&lt;/em&gt;&lt;em&gt; series.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Series Map:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Part 1 → &lt;a href=&#34;./master-genai-01-foundation.md&#34;&gt;Foundation of AI &amp;amp; ML&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Part 2 → &lt;a href=&#34;./master-genai-02-working-with-llms.md&#34;&gt;Working with LLMs&lt;/a&gt;&lt;/strong&gt; ← you are here&lt;/li&gt; &lt;li&gt;Part 3 → &lt;a href=&#34;./master-genai-03-advanced-generative-ai.md&#34;&gt;Advanced Generative AI&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Part 4 → &lt;a href=&#34;./master-genai-04-practical-applications.md&#34;&gt;Practical Applications&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Part 5 → &lt;a href=&#34;./master-genai-05-career-and-projects.md&#34;&gt;Career &amp;amp; Capstone Projects&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;hr&gt; &lt;p&gt;In Part 1 you built the conceptual foundation. Now we get our hands dirty. This part is where theory becomes practice — you&#39;ll write code that tokenizes text, queries embeddings, builds a RAG pipeline, and ships your first working chatbot.&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/19/master-generative-ai--part-2-working-with-llms/</link> <pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/19/master-generative-ai--part-2-working-with-llms/</guid> </item> <item> <title>MCP vs Tool Calling vs Skills: The Mental Model Every AI Builder Needs in 2026</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;MCP vs Tool Calling vs Skills: The Mental Model Every AI Builder Needs in 2026&lt;/h1&gt; &lt;p&gt;You&#39;re building an AI agent. You&#39;ve heard the terms thrown around — &lt;em&gt;tool calling&lt;/em&gt;, &lt;em&gt;MCP&lt;/em&gt;, &lt;em&gt;skills&lt;/em&gt; — and nobody has given you a clean mental model for how they fit together. Are they competing approaches? Different names for the same thing? Should you pick one?&lt;/p&gt; &lt;p&gt;Here&#39;s the answer in one sentence: &lt;strong&gt;they are layers, not alternatives&lt;/strong&gt;. Tool calling is the primitive. MCP is the protocol. Skills are the playbook. Production agents in 2026 use all three.&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/19/mcp-vs-tool-calling-vs-skills-the-mental-model-every-ai-builder-needs-in-2026/</link> <pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/19/mcp-vs-tool-calling-vs-skills-the-mental-model-every-ai-builder-needs-in-2026/</guid> </item> <item> <title>DevOps Project Example: From Code Push to Production with GitOps, FluxCD, and Kubernetes</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;DevOps Project Example: From Code Push to Production with GitOps, FluxCD, and Kubernetes&lt;/h1&gt; &lt;p&gt;Most DevOps tutorials show you a pipeline diagram. This one shows you a real pipeline, built on a real application, running on real Kubernetes clusters — with every tool, every workflow, and every design decision explained.&lt;/p&gt; &lt;p&gt;This post walks through the complete CI/CD system behind &lt;strong&gt;Slotmachine&lt;/strong&gt; — a real-time multiplayer tournament app — from the moment a developer pushes code to GitHub, through six security and quality gates, all the way to automated deployment on both Nutanix on-premise clusters and AWS EKS. No hand-waving. No &#34;and then magic happens.&#34;&lt;/p&gt; &lt;p&gt;The full source code is available in two repositories:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Application repo&lt;/strong&gt;: &lt;a href=&#34;https://github.com/pkhamdee/slotmachine&#34;&gt;github.com/pkhamdee/slotmachine&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Deployment repo&lt;/strong&gt;: &lt;a href=&#34;https://github.com/pkhamdee/slotmachine-deployment&#34;&gt;github.com/pkhamdee/slotmachine-deployment&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;</description> <link>https://pkhamdee.blog/2026/05/19/devops-project-example-from-code-push-to-production-with-gitops-fluxcd-and-kubernetes/</link> <pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/19/devops-project-example-from-code-push-to-production-with-gitops-fluxcd-and-kubernetes/</guid> </item> <item> <title>Nutanix Cloud Platform Overview</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;Nutanix Cloud Platform Overview&lt;/h1&gt; &lt;p&gt;Most enterprises still run their workloads on a tangle of separate systems — one vendor for compute, another for storage, another for networking, yet another for virtualization. Managing all of that is expensive, slow, and fragile. Nutanix was founded on one radical idea: &lt;strong&gt;collapse all of those layers into a single, software-defined platform&lt;/strong&gt; that runs on commodity hardware and is as simple to operate as a public cloud.&lt;/p&gt; &lt;p&gt;In 2026, Nutanix Cloud Platform (NCP) has grown from that original idea into a comprehensive stack spanning private cloud infrastructure, multi-cloud management, enterprise Kubernetes, database-as-a-service, AI infrastructure, and unified storage — all managed through a single pane of glass.&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/19/nutanix-cloud-platform-overview/</link> <pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/19/nutanix-cloud-platform-overview/</guid> </item> <item> <title>Building an LLM from Scratch in PyTorch: The Full Lifecycle Cheatsheet</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;Building an LLM from Scratch in PyTorch: The Full Lifecycle Cheatsheet&lt;/h1&gt; &lt;p&gt;Most LLM tutorials give you one of two things: a high-level diagram with boxes and arrows, or a 10,000-line codebase with no explanation of &lt;em&gt;why&lt;/em&gt; each piece exists.&lt;/p&gt; &lt;p&gt;This post is neither. It&#39;s a step-by-step lifecycle — 8 phases, each with working PyTorch code, the reasoning behind every decision, and an explicit &lt;strong&gt;Do / Don&#39;t&lt;/strong&gt; list that captures the mistakes that cost most beginners weeks of wasted compute.&lt;/p&gt; &lt;p&gt;By the end you&#39;ll have built, trained, modernised, scaled, and aligned a language model — the exact same lifecycle that produced every major LLM you&#39;ve used.&lt;/p&gt; &lt;p&gt;&lt;code&gt;Phase 1: Core Transformer → the engine Phase 2: Train a Tiny LLM → prove the pipeline works Phase 3: Modernise → match 2026 architecture Phase 4: Scale Efficiently → push past toy datasets Phase 5: Mixture of Experts → conditional computation Phase 6: SFT → turn autocomplete into an assistant Phase 7: Reward Modelling → teach the model what &#34;good&#34; looks like Phase 8: RLHF → optimise for human preference&lt;/code&gt;&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/18/building-an-llm-from-scratch-in-pytorch-the-full-lifecycle-cheatsheet/</link> <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/18/building-an-llm-from-scratch-in-pytorch-the-full-lifecycle-cheatsheet/</guid> </item> <item> <title>LLMs and the Transformer Architecture: A Beginner&#39;s Complete Guide</title> <author>Pongsak Khamdee</author> <description>&lt;h1&gt;LLMs and the Transformer Architecture: A Beginner&#39;s Complete Guide&lt;/h1&gt; &lt;p&gt;You&#39;ve chatted with ChatGPT. You&#39;ve asked Claude for help. You&#39;ve seen GitHub Copilot finish your sentences. But have you ever wondered what is actually happening inside these systems? How does a computer — a machine that ultimately only understands 0s and 1s — produce text that reads like it was written by a thoughtful human?&lt;/p&gt; &lt;p&gt;This guide answers that question from the ground up. No PhD required. We&#39;ll start with an analogy a child could follow, then gradually build up to a precise technical understanding of the Transformer architecture that powers every major LLM today.&lt;/p&gt;</description> <link>https://pkhamdee.blog/2026/05/18/llms-and-the-transformer-architecture-a-beginners-complete-guide/</link> <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate> <source url="https://pkhamdee.blog/feed_rss_created.xml">Pongsak Khamdee</source><guid isPermaLink="true">https://pkhamdee.blog/2026/05/18/llms-and-the-transformer-architecture-a-beginners-complete-guide/</guid> </item> </channel> </rss>