<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Alvis Ng · Journal</title><description>Alvis Ng is a technical lead in Malaysia. He writes about software, AI and leading engineers.</description><link>https://www.iamalvisng.com/</link><language>en-gb</language><item><title>The Senior Developer Title Is About to Mean Nothing</title><link>https://www.iamalvisng.com/blog/the-senior-developer-title-is-about-to-mean-nothing/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/the-senior-developer-title-is-about-to-mean-nothing/</guid><description>When AI can simulate ten years of pattern recognition in months, what does “senior” even measure?</description><pubDate>Thu, 18 Dec 2025 00:00:00 GMT</pubDate><category>artificial intelligence</category><category>software development</category><category>programming</category><category>productivity</category><category>technology</category></item><item><title>How to Use AI Without Becoming a Human Clipboard</title><link>https://www.iamalvisng.com/blog/how-to-use-ai-without-becoming-a-human-clipboard/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/how-to-use-ai-without-becoming-a-human-clipboard/</guid><description>The 40/20/40 Framework for AI-Assisted Development That Actually Works</description><pubDate>Thu, 11 Dec 2025 00:00:00 GMT</pubDate><category>artificial intelligence</category><category>software development</category><category>programming</category><category>productivity</category><category>technology</category></item><item><title>Stop Moralizing a Revolution</title><link>https://www.iamalvisng.com/blog/stop-moralizing-a-revolution/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/stop-moralizing-a-revolution/</guid><description>Why Your Guilt About AI-Assisted Coding Is Misplaced</description><pubDate>Tue, 09 Dec 2025 00:00:00 GMT</pubDate><category>artificial intelligence</category><category>programming</category><category>software development</category><category>productivity</category><category>technology</category></item><item><title>Who Fixes the AI Code in 2030?</title><link>https://www.iamalvisng.com/blog/who-fixes-the-ai-code-in-2030/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/who-fixes-the-ai-code-in-2030/</guid><description>AI writes the code. Humans still maintain it. We’re not training enough of them.</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>software development</category><category>artificial intelligence</category><category>programming</category></item><item><title>I Turned My Life Into an Async Function. It Took Years to Debug.</title><link>https://www.iamalvisng.com/blog/i-turned-my-life-into-an-async-function-it-took-years-to-debug/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/i-turned-my-life-into-an-async-function-it-took-years-to-debug/</guid><description>On productivity, presence, and the pattern that steals both</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><category>programming</category><category>productivity</category><category>self improvement</category><category>life lessons</category><category>work life balance</category></item><item><title>Learning to Rank</title><link>https://www.iamalvisng.com/blog/learning-to-rank/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/learning-to-rank/</guid><description>What Every Engineer Building RAG Should Know</description><pubDate>Thu, 27 Nov 2025 00:00:00 GMT</pubDate><category>programming</category><category>productivity</category><category>self improvement</category><category>life lessons</category><category>work life balance</category></item><item><title>Chopping Language, Weaving Meaning</title><link>https://www.iamalvisng.com/blog/chopping-language-weaving-meaning/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/chopping-language-weaving-meaning/</guid><description>Tokens and Embeddings in LLMs</description><pubDate>Sat, 02 Aug 2025 00:00:00 GMT</pubDate><category>artificial intelligence</category><category>tokenization</category><category>large language models</category><category>ai</category></item><item><title>From Bag-of-Words to GPT</title><link>https://www.iamalvisng.com/blog/from-bag-of-words-to-gpt/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/from-bag-of-words-to-gpt/</guid><description>The Breakneck Evolution of Large Language Models</description><pubDate>Mon, 28 Jul 2025 00:00:00 GMT</pubDate><category>artificial intelligence</category><category>machine learning</category><category>large language models</category><category>technology</category><category>future of work</category></item><item><title>A Year with Next.js Server Actions: Lessons Learned</title><link>https://www.iamalvisng.com/blog/a-year-with-next-js-server-actions-lessons-learned/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/a-year-with-next-js-server-actions-lessons-learned/</guid><description>A Deep Dive into the Practicalities, Pitfalls, and Potential of Next.js’s Server-Side Feature</description><pubDate>Wed, 08 Jan 2025 01:15:46 GMT</pubDate><category>backend</category><category>frontend</category><category>javascript</category><category>typescript</category><category>work</category></item><item><title>How do we decide how to solve a problem?</title><link>https://www.iamalvisng.com/blog/how-do-we-decide-how-to-solve-a-problem/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/how-do-we-decide-how-to-solve-a-problem/</guid><description>A KISS-approach to making technical decision in the JavaScript/TypeScript ecosystem</description><pubDate>Wed, 08 Jan 2025 00:56:52 GMT</pubDate><category>backend</category><category>frontend</category><category>javascript</category><category>typescript</category><category>work</category></item><item><title>The Quiet Ones Win Differently</title><link>https://www.iamalvisng.com/blog/finding-strength-when-youre-not-the-favorite/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/finding-strength-when-youre-not-the-favorite/</guid><description>What years of being overlooked taught me about building something that lasts</description><pubDate>Sun, 05 Jan 2025 01:15:46 GMT</pubDate><category>life</category><category>introvert</category><category>psychology</category><category>work</category><category>inspiration</category></item><item><title>Managing complexity: Shared business logic in Next.js (Part 1: Server-Side Architecture)</title><link>https://www.iamalvisng.com/blog/managing-complexity-shared-business-logic-in-next-js-part-1-server-side-architecture/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/managing-complexity-shared-business-logic-in-next-js-part-1-server-side-architecture/</guid><description>A strategic approach to structuring and implementing reusable logic</description><pubDate>Wed, 11 Sep 2024 23:48:58 GMT</pubDate><category>backend</category><category>frontend</category><category>javascript</category><category>typescript</category><category>work</category></item><item><title>Advanced Type Techniques in TypeScript — 05 const Assertions</title><link>https://www.iamalvisng.com/blog/advanced-type-techniques-in-typescript-05-const-assertions/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/advanced-type-techniques-in-typescript-05-const-assertions/</guid><description>Precision and Immutability with const Assertions</description><pubDate>Wed, 13 Mar 2024 22:45:31 GMT</pubDate><category>frontend</category><category>javascript</category><category>typescript</category><category>work</category></item><item><title>Advanced Union Type Techniques in TypeScript — 01 Extracting Types</title><link>https://www.iamalvisng.com/blog/advanced-union-type-techniques-in-typescript/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/advanced-union-type-techniques-in-typescript/</guid><description>Leverage Extract for Enhanced Type Safety and Code Clarity</description><pubDate>Thu, 29 Feb 2024 01:11:28 GMT</pubDate><category>typescript</category><category>frontend</category><category>javascript</category></item><item><title>Advanced Union Type Techniques in TypeScript — 02 Excluding Types</title><link>https://www.iamalvisng.com/blog/advanced-union-type-techniques-in-typescript-02-excluding-types/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/advanced-union-type-techniques-in-typescript-02-excluding-types/</guid><description>Leverage Exclude for Enhanced Type Safety and Code Clarity</description><pubDate>Thu, 29 Feb 2024 01:11:12 GMT</pubDate><category>typescript</category><category>frontend</category><category>javascript</category></item><item><title>Mastering Atoms: The Building Blocks of Modern Frontend</title><link>https://www.iamalvisng.com/blog/mastering-atoms-the-building-blocks-of-modern-frontend/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/mastering-atoms-the-building-blocks-of-modern-frontend/</guid><description>Exploring the Core Elements of UI: A Deep Dive into Atom-Level Design in Frontend Development</description><pubDate>Mon, 15 Jan 2024 12:29:03 GMT</pubDate><category>work</category><category>frontend</category></item><item><title>Atomic Design: Harnessing Its Power for Efficient and Scalable Product Development</title><link>https://www.iamalvisng.com/blog/atomic-design-harnessing-its-power-for-efficient-and-scalable-product-development/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/atomic-design-harnessing-its-power-for-efficient-and-scalable-product-development/</guid><description>A Deep Exploration into the Elements and Benefits of Atomic Design in Product Development</description><pubDate>Mon, 15 Jan 2024 12:28:25 GMT</pubDate><category>frontend</category><category>work</category></item><item><title>Advanced Union Type Techniques in TypeScript — 03 Indexed Types</title><link>https://www.iamalvisng.com/blog/advanced-union-type-techniques-in-typescript-03-indexed-types/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/advanced-union-type-techniques-in-typescript-03-indexed-types/</guid><description>Leverage Indexed Types for Enhanced Type Safety and Code Clarity</description><pubDate>Mon, 15 Jan 2024 12:26:16 GMT</pubDate><category>typescript</category><category>javascript</category><category>frontend</category></item><item><title>Advanced Union Type Techniques in TypeScript — 04 Extracting Types from Discriminated Unions</title><link>https://www.iamalvisng.com/blog/advanced-union-type-techniques-in-typescript-04-extracting-types-from-discriminated-unions/</link><guid isPermaLink="true">https://www.iamalvisng.com/blog/advanced-union-type-techniques-in-typescript-04-extracting-types-from-discriminated-unions/</guid><description>Utilizing Discriminated Unions for Precision and Clarity in Type Handling</description><pubDate>Mon, 15 Jan 2024 12:25:46 GMT</pubDate><category>frontend</category><category>javascript</category><category>typescript</category><category>backend</category></item></channel></rss>