Anh Chu,
HCMC / 00:00 ICT

LEAD PRODUCT MANAGER / KATALON BUILDS SOFTWARE LIKES TO KNOW HOW THINGS WORK

Learn by breaking.

At Katalon, I lead product work for True Platform, the company’s software-testing platform. Outside work, I build software tools, maintain a motorcycle and home server, and play guitar.Product manager and software builder in Ho Chi Minh City. I am usually fixing a tool, motorcycle, or home server.

10.8231° N 106.6297° E SCROLL TO EXPLORE / 01
DAY JOB
KATALON TESTING PLATFORM
SIDE PROJECTS
ABOUT 30 CODE PROJECTS
HOME BASE
HO CHI MINH CITY
CURRENTLY
RUNNING SEVERAL AI CODING ASSISTANTS
SEE
THE WORK
  1. 01 Journal Notes on product, code and the homelab.01Activation is a design problem JOURNAL
  2. 02 GitHub Sixty seven public repositories. GITHUB.COM
  3. 03 npm Eleven packages, about 23,000 downloads a year. NPMJS.COM
  4. 04 LinkedIn LINKEDIN.COM
  5. 05 CV PDF, 2 PAGES

THE TEAM / WHEN THEY BUILD IT

I push back
on the how.

I bring the team the demand, the pain and the gap, not a solution to implement. Then we argue about the how. I stay close enough to the product technically to follow the options and challenge the ones that overreach.

I BRING
DEMAND / PAIN / GAP
I CHALLENGE
TECHNICAL OPTIONS
WE LAND
THE RIGHT SCOPE
Knowing the product technically means I can have the same conversation with anyone in the room.

MYSELF / WHEN NOTHING FITS

I build
what fits.

Work or home, if nothing that exists does what I need, I build the thing that does. Prototypes stay coupled to product code, so a working version gets in front of real demand in days, then adopt, pivot or tear down.

agent-session-bridge / bridge.py
326  def cmd_wait(args):
328      """Always returns, safe to call inline in any harness."""
344      deadline = time.time() + timeout
345      while True:

359          if time.time() >= deadline:
360              print("wait:timeout")
361              return

Tools I built
for myself.

Most started because something in my own workflow was annoying or slow. A few later became useful to other people.

ABOUT 30 CODE PROJECTS22K PACKAGE DOWNLOADS / YEAR
01 / 07

PLANNING TOOL / TYPESCRIPT

gh-roadmap

I wanted product planning to happen in the same place as engineering work. This adds roadmap and kanban views, customer requests, and account information on top of GitHub issues.

PROBLEM
The roadmap and the actual engineering work kept diverging.
WHAT I BUILT
Keep GitHub issues as the official record instead of creating another database.
CURRENT USE
I still use it every week to plan product work.
FASTIFYSQLITEREACTOCTOKIT
VIEW CODE ↗
02 / 07

DOCUMENT SEARCH TOOL / PYTHON

llm-wiki-pm

I got tired of rereading the same reports. This turns meetings, research, and strategy documents into structured pages that can be updated, access-controlled, and searched.

PROBLEM
Ordinary document search keeps returning old conclusions after the decision has changed.
WHAT I BUILT
Turn each current conclusion into an editable page with access controls and links to its sources.
CURRENT USE
I now check the current page instead of rereading the original reports.
CLAUDE INTEGRATIONKEYWORD + CONCEPT SEARCHSOURCE TRACKING
VIEW CODE ↗
03 / 07

AI CODING ASSISTANT DASHBOARD / GO

termyard

I kept losing AI coding assistants inside terminal tabs. Termyard puts every terminal session in one local dashboard and alerts me only when an agent is blocked or needs a decision.

PROBLEM
AI coding assistants running in parallel disappeared into separate terminal tabs.
WHAT I BUILT
Show me only the sessions that are blocked or waiting for a decision.
CURRENT USE
I keep this dashboard open whenever several AI coding assistants are working.
GOTMUXWEB UIRUNS LOCALLY
VIEW CODE ↗
04 / 07

LOCAL FILE BROWSER / TYPESCRIPT

wiki-viewer

A browser for local files that grew into something other people use: editing, search, user accounts, and an API that software tools can use.

PROBLEM
People edited files in the browser while software tools edited them directly, which could cause conflicts.
WHAT I BUILT
Keep the files directly on disk for speed, then add source history and checks that prevent overwriting newer changes.
CURRENT USE
The published package gets about 12,000 downloads a year.
NODEFULL-TEXT SEARCHAGENT APIMULTI-USER
VIEW PACKAGE ↗
05 / 07

CODING AGENT EXTENSIONS / TYPESCRIPT

pi extensions

Nine published extensions for the pi coding agent: running several agents in parallel with live steering, code navigation, per-file edit locks so parallel sessions stop overwriting each other, memory, and retrospectives.

PROBLEM
Running more than one coding agent at once meant they quietly clobbered each other's edits.
WHAT I BUILT
Small single-purpose extensions instead of one large tool, so each can be installed on its own.
CURRENT USE
The nine packages get about 9,700 downloads a year between them.
TYPESCRIPTNPMLSPPARALLEL AGENTS
VIEW PACKAGES ↗
06 / 07

AGENT OPERATIONS / TYPESCRIPT

cc-autopilot

A self-hosted task manager that runs work through coding agents. Tasks go in with priorities, it opens the agent sessions, streams what they are doing while they work, and hands anything that needs a decision back to me.

PROBLEM
Handing work to several agents at once meant sitting over each session to know what any of them was doing.
WHAT I BUILT
One queue in front of the agents, output streamed live, and the decisions routed back to a single place.
CURRENT USE
It runs on my own machine, with its state on disk and nothing leaving the network.
TYPESCRIPTSELF-HOSTEDLIVE OUTPUTLOCAL ONLY
VIEW CODE ↗
07 / 07

MUSIC REMOTE / JAVASCRIPT

cider-remote

Remote control and listen-along for the Cider music client, so the desktop app can be driven from a phone on the same network and a second person can follow what is playing.

PROBLEM
The music player sat on one machine with no way to control it from anywhere else in the house.
WHAT I BUILT
A small server beside the player and a client that talks to it over the local network.
CURRENT USE
A weekend build that stayed, because it is how the music gets changed.
ELECTRONLOCAL NETWORKWEEKEND BUILD
VIEW CODE ↗

Things I spend time on
after work.

01 / MOTORCYCLES

I am always working on my motorcycle.

I ride it, I fix it, and I keep modifying it. Some changes stick and some I undo the next weekend. That is how I learned what a quarter-turn of an adjuster changes.

02 / GUITAR

I mostly play chords and occasionally make noise.

I like unusual chords, slightly off-key singing, and clean guitar tones pushed until they start to distort.

03 / HOME SERVER SETUP

A home network I am always rebuilding.

It runs OpenWrt, an Orange Pi, network storage, Home Assistant, and AirPlay. The logs help me find the problem whenever two devices stop communicating.

04 / SIM RACING

In sim racing, I measure mistakes in tenths of a second.

The car’s telemetry data shows exactly where I lost time. It also makes it difficult to blame the equipment.

05 / AUTOMATIONS

I automate the small things I keep repeating.

Transactions sync themselves into my portfolio tracker. The lights, the air conditioning and most of the electronics run on routines. An agent sits across the infrastructure and makes the changes I would otherwise do by hand.

06 / 3D PRINTING

I keep finding things to print.

A Bambu A1 Mini, usually at a 0.2mm layer height. Shelf attachments, phone cases, a laptop stand, a replacement part for a helmet, and a steady run of models and toys. Some of it is genuinely useful, the rest is decoration.

07 / MAO

Mao supervises from beside the keyboard.

She takes the spot next to the keyboard in the morning and stays there for the rest of the working day. That is the whole arrangement.

05 / SAY HELLO

Tell me about the problem you’re solving.

[email protected] EMAIL ME ↗