home

Welcome to 8 Protocols

I’m Alvis Ng, a technical lead based in Malaysia.

I write about the systems that shape how we build—from software architecture and AI to product strategy, team culture, and the human mind behind the code.

At 8 Protocols, I share principles, stories, and experiments that keep work sharp and human. Sometimes that means untangling a stubborn frontend structure. Sometimes it’s questioning a “best practice” that everyone treats as gospel. Sometimes it’s about faith, psychology, and the quiet forces that shape why we work the way we do.

I write to keep asking better questions: about craft, about meaning, and about how we balance precision with purpose.

I share these notes and stories at least three times a month. Long enough to stay with you. Short enough for a cup of coffee.

Latest

Jul 12
We Got the Speed We Begged For. Now We Hate the Results

We Got the Speed We Begged For. Now We Hate the Results

AI isn’t soulless. It mirrors us. We asked for speed and got it, then blamed the tool when craft felt thin. The tool is not the skill. The driver is. Bring taste, patience, and judgment, and the work lives. Want meaning? Pay the price in effort. The rest is on us.
9 min read
Jul 08
The Illusion of 100% Test Coverage

The Illusion of 100% Test Coverage

I've watched teams chase 100% and still ship bugs. Coverage proves code ran, not that it worked. Real safety comes from assertions that bite, weird inputs, mutation tests, and tough reviews. Treat coverage as a flashlight, not a finish line.
8 min read
Jul 05
Why Software Development Gets Harder in Teams

Why Software Development Gets Harder in Teams

Teams don’t stall from code alone. They stall when dominance grows, speed turns to sugar, and harmony goes quiet. The fix is candor, shared ownership, and steady refactors before the floor gives way.
7 min read
Jun 29
The Tyranny of Tiny Modules

The Tyranny of Tiny Modules

Modularity is not a numbers game. A 300-line component with a clean flow beats ten shallow ones across folders. Barrels bloat bundles and hide cycles. Write for brains, not style cops: minimize hops, keep related logic close, abstract when it’s earned.
15 min read
Jun 22
Stories that Bind Millions

Stories that Bind Millions

Humans rule by shared stories, not strength. Myths turn strangers into allies, money into trust, brands into tribes. When fiction outruns fact, harm follows. Learn narrative literacy: test tales, ask who benefits, and rewrite the script when truth and compassion demand it.
6 min read
Jun 22
Cutting Redundant Data Fetches with React’s `cache` in React 19

Cutting Redundant Data Fetches with React’s `cache` in React 19

React 19’s cache memoizes server calls per request. Wrap a fetch or DB query, call it from multiple server components, and React runs it once. Fewer duplicate hits, faster pages, consistent data. The cache clears after render. Use it in Next.js 15 with RSC.
7 min read
Jun 20
What Is Information?

What Is Information?

Information’s main job isn’t to mirror reality. It binds people into action. A pigeon note, a shutter flash, a meme: if we share the code, they move us. Test every message twice: what does it connect, and how well does it map the world?
4 min read
Jun 15
The Nights My 7-Year-Old Debugged Me

The Nights My 7-Year-Old Debugged Me

Great code often looks like novice code that simply works. Do not drown juniors in rules. Let them ship, then refactor side by side. Teach the why after the pain shows up. Mentorship over policing. Progress over perfection.
5 min read
Jun 12
The Small Group That Holds You Back

The Small Group That Holds You Back

You are not performing for the world. You are performing for five loud voices in your head. Most people are not watching. Choose your advisors on purpose, expect to be misunderstood, and ship anyway. The only approval you need to live with is your own.
10 min read
Jun 11
The Real Bug Is in Your Brain

The Real Bug Is in Your Brain

The hardest bugs are not in your repo but in your reasoning. Confirmation, optimism, anchoring, availability, and Dunning-Kruger warp decisions. Fight back with disconfirming tests, independent estimates, broader hypotheses, and KISS. Debug your mind first.
14 min read
Jun 10
Row the Boat, Don’t Win the Argument

Row the Boat, Don’t Win the Argument

Teams do not need a courtroom champion. They need builders who move the boat. Trade point-scoring for impact. Ask what problem we are solving, pick battles that matter, invite dissent, and share credit. Do not aim to be right. Aim to be valuable.
14 min read
Jun 10
TypeScript Soup: Taming an Unruly API

TypeScript Soup: Taming an Unruly API

One tiny helper, big payoff. Use template literal types to infer base fields from `nameFr` style keys, then `getLocalized(locale, obj, fields)` returns exactly what you asked for. No copy-paste, no string concat, typos blocked, locales centralized, fallbacks handled.
3 min read