I build the layer between a model and the people relying on it.
I'm Abidh Muhsin. I build agents and MCP tooling in production at Cambium Networks, generative UI that streams into chat, and the Go and Postgres
systems underneath. This map is my portfolio: every article, product
and piece of shipped work I've made, placed by what it's about. The closer two marks sit, the closer the problems.
In production
15yrs
Articles
8
Products
5
Now
Senior Staff Engineer
Map of my work · 25 pieces
· similar topics sit together Articles Products Production work Open source Nearest neighboursHover · Tab · Enter
Fig. 2 · Featured writing
Notes from building
Long-form write-ups of what I'm building, with working code. A few
I'd start with.
Products I've designed, built and run myself. They're the square
marks on the map, sitting next to the articles where I worked out
the ideas behind them.
Every article, product and project in one list. Instead of
“related posts”, the last column shows the two pieces of mine
closest to each one, so the links follow what it's about rather
than which tags happen to match.
Most skills ship with a fixed set of scripts. Here's a pattern that lets the agent create new scripts on the fly, using wrapper libraries as building blocks.
Article 3 min
2026
skills · agent
Wiring Feedback Loops Into Agent Skillsagent-skills
What we learned building and running a local MCP server for code reviews—from fighting AI-generated code bloat to integrating organizational context. Built with Claude Code CLI.
Article 12 min
2026
skills · agent
PR-review MCP serverBuilding dockyard: A Zero-Dependency Docker Dashboard for Developer Machines
Twenty plus containers on one dev box, and an AI agent that starts a new one per chat. A small zero-dependency dashboard for the question that actually matters: what is this container logging right now?
Article 6 min
2026
docker · s3
dockyardBuilding an In-house MCP Server for Code Reviews: Lessons After One Year
dockyard
Zero-dependency Docker dashboard for dev machines
Repo
2026
docker · s3
Building dockyard: A Zero-Dependency Docker Dashboard for Developer MachinesCloud-native delivery
Streams live HTML artifacts into chat. 15★ · 90 commits
Repo
2026
iframe · postmessage
Painting Widgets Token by Token: Building Claude-Style Generative UI from ScratchReverse-Engineering Claude's Inline Diagrams: An Architecture Deep Dive
The follow-up to reverse-engineering Claude's visualizer: a from-scratch implementation with a Pi agent server, visual tools, a sandboxed iframe widget manager, and a postMessage RPC bridge. Watch html widgets paint token by token as the model streams a tool call. Full code, no framework.
Article 12 min
2026
iframe · postmessage
Reverse-Engineering Claude's Inline Diagrams: An Architecture Deep Divedsh-visualizer
A single-file Postgres workbench that runs a real PostgreSQL (PGlite) entirely in your browser. Add its small Go server and the same page works against your real Postgres servers, with read-only guard rails and an optional AI clerk.
How Claude renders inline-diagrams in chat - A deep dive into Claude's visualizer, the system that turns 'draw me a diagram' into interactive iframes with sandboxes, postMessage bridges, and the MCP Apps specification.
Article 17 min
2026
iframe · postmessage
Painting Widgets Token by Token: Building Claude-Style Generative UI from Scratchdsh-visualizer
A curated gallery of 25 distinct design aesthetics as ready-to-use AI prompts. Pick a theme, copy the style guide, and paste into any AI coding assistant to build a fully styled site in one shot.
Product
2026
cloudflare · workers
MagicInvitePainting Widgets Token by Token: Building Claude-Style Generative UI from Scratch
AI agent skills are static by default — instructions that never learn from real usage. Here's a pattern for making skills that improve over time using file-based memory and graduation rules.
Article 4 min
2026
skills · agent
Agent Skills That Grow: The Wrapper Pattern for Minting New Scriptsagent-skills
Agentic support framework
Enterprise network-support chat on the Claude Agent SDK
A full-stack employee attendance and HR management system built with Go and React. Tracks check-ins, leave requests, payroll, and generates attendance reports.
Product
2025
go · postgresql
AccuServepgquire
Jira report generator
MCP tools and evals for an agent that writes delivery reports
A serverless invitation and event page generator built on Cloudflare Workers. Create beautiful, personalized wedding and birthday invitation pages using AI or curated templates.
A full-stack clinic management platform for doctors and healthcare providers. Manage patients, track consultations, and visualize practice analytics — available as a mobile-first PWA.
Learn how to implement a selective page-level loader for specific HTTP requests in Angular using decorators. Control which requests show loaders without cluttering your code.
Article 2 min
2019
skills · agent
AccuServeBuilding a High-Performance Image Resizer Proxy with Go
Fig. 5 · Trajectory
Fifteen years of production
Most of what's on the map was learned on the job: services that
had to stay up, tenants that had to stay apart, and lately agents
that have to be right often enough to be trusted.
Cambium Networks Senior Staff Engineer 2022 – now · India
Enterprise agentic chat framework for network support on the Claude Agent SDK
MCP tools and evals for a PR-review agent and a Jira report generator
Claude Code CLI integrated into Agile development workflows
Multi-tenant Go SaaS, schema-per-tenant PostgreSQL, OpenTelemetry
Diagnosed a GORM pool leak that allowed cross-tenant schema access
QBurst Tech Lead / Associate Architect 2020 – 22 · India
libvips image-resizer microservice in Go with S3 caching
Go API and PostgreSQL performance. Docker, Kubernetes, AWS
Python microservices for ML-based auto-scheduling
Angular 1.x → 10 migration, 60% faster
Infosys Systems Engineer → Tech Lead 2011 – 20 · India · London · Kuala Lumpur
Java Spring microservices, Hadoop clusters, Infosys BigData Hub
Onsite lead in London for a legacy → CRM cloud migration
Client-facing in Kuala Lumpur, coordinating onsite and offshore teams
1.5 years as a trainer for the Java web ecosystem
Fig. 6 · 5 themes, found automatically
What my work is actually about
I think of my work as 5 themes. Instead of sorting it by hand,
I let it group itself by vocabulary and named each group by its most
distinctive terms. 17 of 24 pieces (71%) land in the theme I'd have put them in. The rest are where my
work crosses over, and I find those the most telling.
I built the map myself: about 400 lines of dependency-free
TypeScript that run when the site builds, in 236 ms. The same
numbers drive the map, the themes, the related links on every article
and the query box. When I publish something new, the map redraws itself.
01 · Vectorise
TF-IDF over everything I've written down about the work
Titles, summaries, section headings and tags, lower-cased and
lightly stemmed. Tags count double because they're my own
signal. Terms used only once are dropped, which leaves 133 shared terms.
02 · Cluster
Spherical k-means, unsupervised
k-means++ seeding from a fixed PRNG, keeping the best of 24
restarts by total cosine to centroid. I check the groups against
my own themes afterwards:
17/24 match.
03 · Lay out
LSA, then exact t-SNE
A rank-6 SVD smooths over one-off word choices, then t-SNE at
perplexity
4 runs 1000 seeded iterations to a final KL of 0.169.
Neighbourhoods are meaningful. Distances between clusters
aren't. Depth is a third t-SNE axis fitted with the map held
still, so pieces that only look close on the page sit at
different depths.
04 · Retrieve
Queries use the same basis
Your query is vectorised with the corpus IDF and ranked by
cosine. It is then placed on the map at the similarity-weighted
centroid of its top three matches.
Get in touch
Building agents that have to work in production?
I'm happy to talk about agent architecture, MCP tooling,
rendering model output safely, or a role on a team that ships
those things.