Understanding Things — Kean Neng Lim
Software engineering, AI engineering, and how systems actually behave.
I'm a software engineer who has a difficult time leaving things unexplained. When I encounter something interesting, I tend to take it apart until I understand what is actually happening underneath the abstraction: what the pieces are, why they exist, how they interact, and what happens when they fail. These days, that usually leads me into AI, software architecture, distributed systems, and the machinery underneath modern software. I also find that the same way of thinking applies surprising well to engineering organizationsd and the people inside them. Systems are systems, whether they're made of software, infrastructure, incentives, or humans. This site is where I distill some of that learning into writing.
I write about software, AI, systems, and whatever else I can't stop trying to understand. Everything here is researched, reasoned through, and written by me.
Featured
Designing Deterministic Boundaries Around Probabilistic AI
LLMs are probabilistic components. Reliable systems are built by deciding, explicitly, which parts of the system are allowed to be probabilistic and wrapping everything else in code that behaves the same way every time.
What Is an LLM?
A precise mental model for what a large language model actually computes, why that computation is useful, and where its limits come from structurally rather than incidentally.
Recent articles
Engineering Teams Have Feedback Loops Too
The same feedback-loop analysis engineers apply to systems — latency, signal delay, damping — applies just as directly to the teams that build those systems, and it's a more useful lens than most process advice.
Caching Is a Consistency Problem
A cache isn't a performance feature that happens to need invalidation. It's a second copy of the truth, and every caching decision is really a decision about how wrong that copy is allowed to be, and for how long.
Why Retrieval and Reasoning Should Be Separate
Retrieval-augmented generation collapses two very different failure modes into one system when retrieval and reasoning aren't treated as distinct stages with distinct contracts.
What Is a Vector Database?
What a vector database actually adds on top of raw embeddings — approximate nearest neighbor search at scale — and the trade-offs that come with the word "approximate."
What Are Vector Embeddings?
How text becomes a point in space, why "similar" ends up meaning something precise and measurable, and where that precision quietly breaks down.
Categories
AI Engineering Foundations
Accurate mental models for the core concepts behind modern AI systems — written for software engineers, not beginners.
AI / Software Architecture
Architectural reasoning about boundaries, state, interfaces, and failure modes in systems that combine deterministic and probabilistic components.
Systems Engineering
Generalizable engineering principles about how systems behave in production, independent of any single project.
Engineering Organizations
Engineering teams and organizations viewed as socio-technical systems.