Skip to content
iamevs
  • Writing
  • About
  • Search
  • Portfolio

iamevs

Writing from Vijayasenthil — notes on craft, systems, and the decisions that survive.

PortfolioAboutRSSGitHubLinkedInXe.vijayasenthil@gmail.comCopyright © 2026 Vijayasenthil

Experiments

Building my own chess analyzer

What I learned by refusing a dashboard of engine numbers and building a quieter instrument for studying my own games.

Vijayasenthil · 9 September 2026 · 1 min read

Contents

  1. The actual problem
  2. Architecture
  3. Implementation
  4. Lessons

I did not need another chess product. I needed a way to sit with a game I had just played and see the moments I actually misjudged.

Most tools I tried were loud. Evaluations stacked on evaluations. Lines I would never play. A feeling that the software was more interested in being complete than in helping me think.

So I built a small analyzer of my own.

The actual problem

After a session I already know, roughly, where the game turned. What I cannot reconstruct is why a move felt right at the time. An engine can tell me I was worse. It cannot tell me what I believed.

The analyzer had to answer a narrower question: what did I think was happening, and what was actually happening?

Architecture

The board lives in the browser. The engine runs in a worker. Games I want to keep sit in a thin store. That is the whole system.

What I refused

No opening book UI. No social layer. No rating graph pretending to be insight.

engine/worker.ts
type Evaluation = {
  depth: number;
  score: number;
  line: string[];
};
 
export function interpret(eval: Evaluation) {
  if (eval.depth < 12) return "too shallow to argue with";
  return eval.line.slice(0, 4).join(" ");
}

The interesting code is not the engine. Stockfish already exists. The interesting code is the restraint around it.

Implementation

I started with a board I could click without thinking. Then a PGN paste. Then a single engine line, not a forest of them.

The first version showed too much. I removed the extra lines. I made the evaluation a secondary voice — present, but not the headline.

That decision did more for the product than any feature I added later.

Lessons

A personal tool fails when it tries to impress its owner. It works when it disappears into the hour after a game.

I still open this one. That is the only metric I trust.

chessengineeringtools

Related

  • Why I built vs-pod

    A personal development environment that started as scattered notes and became a workshop I would actually keep using.

  • Lessons from building products

    A short list of things I keep relearning by shipping work that has to live with me afterwards.

Contents

  1. The actual problem
  2. Architecture
  3. Implementation
  4. Lessons