Skip to content
Fig. 1 · Abidh Muhsin, AI engineer

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 neighbours Hover · Tab · Enter
Fig. 4 · Everything

Everything I've made, with its neighbours

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.

Related
Agent Skills That Grow: The Wrapper Pattern for Minting New Scripts

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
agent-skills ↗

Agent skills: adaptive PR review, Bitbucket DC, feature journal

Repo 2026 skills · agent Wiring Feedback Loops Into Agent SkillsAgent Skills That Grow: The Wrapper Pattern for Minting New Scripts
Building an In-house MCP Server for Code Reviews: Lessons After One Year

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
Building 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
dsh-visualizer ↗

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
Painting Widgets Token by Token: Building Claude-Style Generative UI from Scratch

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
pgquire

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.

Product 2026 go · postgresql AttenzoAccuServe
Reverse-Engineering Claude's Inline Diagrams: An Architecture Deep Dive

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
Theme Prompts

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
Wiring Feedback Loops Into Agent Skills

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

Work Cambium 2025 skills · agent Jira report generatorPR-review MCP server
Attenzo

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

Work Cambium 2025 skills · agent PR-review MCP serverAgentic support framework
MagicInvite

A serverless invitation and event page generator built on Cloudflare Workers. Create beautiful, personalized wedding and birthday invitation pages using AI or curated templates.

Product 2025 cloudflare · workers Theme Promptspgquire
PR-review MCP server

Bitbucket, Jira and Confluence context for review agents. One year in production

Work Cambium 2025 skills · agent Building an In-house MCP Server for Code Reviews: Lessons After One YearJira report generator
AccuServe

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.

Product 2023 go · postgresql AttenzoCross-tenant pool-leak fix
Building a High-Performance Image Resizer Proxy with Go

Learn how to build a containerized image resizing service using Go and libvips for on-demand image optimization with S3 caching.

Article 2 min 2022 docker · s3 Image-resizer proxypostgres-pgbackrest-docker
Cross-tenant pool-leak fix

Diagnosed a GORM/driver leak that crossed schemas

Work Cambium 2022 go · postgresql Multi-tenant Go SaaSAccuServe
Image-resizer proxy ↗

Go + libvips, 4× faster than ImageMagick, S3 cache

Repo 2022 docker · s3 Building a High-Performance Image Resizer Proxy with Gopostgres-pgbackrest-docker
Multi-tenant Go SaaS

Per-tenant auth, schema isolation, OpenTelemetry

Work Cambium 2022 go · postgresql Cross-tenant pool-leak fixObservability
Observability

OpenTelemetry in Go services. Jaeger in production

Work Cambium 2022 go · postgresql Multi-tenant Go SaaSAccuServe
postgres-pgbackrest-docker ↗

PITR backups to S3/MinIO

Repo 2022 docker · s3 Image-resizer proxyCloud-native delivery
Cloud-native delivery

Kubernetes, Docker and AWS at QBurst

Work QBurst 2020 docker · s3 postgres-pgbackrest-dockerdockyard
Decorator-Based Selective Loader for Angular HTTP Requests

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
  • Angular 19 + D3 design system. Re-architected a 10-year-old product UI
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.

Cluster 01 8 docs

skills · agent

Theme: Agents & MCP · 7/8
skills agent claude mcp code review evals angular
Fig. 7 · Method

How the map is made

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

MS Software Systems · BITS Pilani