Hi, I'm Ashu.I write software in the open.
I'm from Almora, up in the hills of Uttarakhand, and I live in Delhi now. For six years I've worked on open source: Go on the server, React and TypeScript on the screen. These days I work on alerting at SigNoz.
Rocket climbs as you scroll. It's 329 merged PRs to the top.
Basecamp: one docs fix
It started with a friend. In 2019 they got selected for Google Summer of Code, and I wanted to see what open source was about for myself.
My first merged pull request was a docs fix for webpack, in February 2019. I was in my third year of college in Delhi. One page of their guide was out of date, so I changed it, and someone merged it.
After that I kept sending small things. CSS fixes for OSSN’s fixme, a link in the React Native docs, a margin bug in Gatsby. The first one that touched real library code was in p5.js: round() got an optional second argument, so you could round to a number of decimal places. A few months later I deleted an old method from p5 too, which felt just as good.
In early 2020 I spent a lot of time in the Vega editor: a focus bug, search in the signal view, and later gist limits on its backend.
2019 → early 2020 · webpack, p5.js, Gatsby, React Native, Vega
Nebraska: who gets the update, and when
Flatcar Container Linux is an OS for running containers, and it updates itself. That’s harder than it sounds when you have thousands of machines. You don’t want all of them rebooting into a new version on the same afternoon.
Nebraska is the piece that decides. Machines check in and ask “is there something new for me?” Nebraska looks at their group, their channel and the rollout rules, and says yes, not yet, or no. It’s a Go service on PostgreSQL, and it runs in production at Akamai, Microsoft Azure and Google Cloud.
I applied to Kinvolk, the Berlin company behind Flatcar, went through the interviews, and joined as an intern in March 2020, while I was still in my final year of college. Nebraska was my first project. My first PR there went in on 4 March: a pagination fix in the activity list. That same month I swapped moment.js for the plain Date API, replaced jQuery with fetch, and added ESLint.
The internship ended in June. By then about 45 of my PRs had been merged, and in July 2020 I joined Kinvolk full-time.
Over the next year and a half I touched almost every part of it:
- Wrote the frontend tests, and ported the whole frontend to TypeScript.
- Built two new designs for the UI, and swapped Victory charts for Recharts.
- Moved the Go data layer off a legacy ORM onto goqu, and turned the instance list into a single join query with search.
- Smaller safety things too, like a limit on request body size for the update endpoints.
82 merged PRs · Go, PostgreSQL, React, TypeScript
Headlamp: a Kubernetes UI that other people can extend
Headlamp also started at Kinvolk. It’s a web UI for Kubernetes, built so that other teams can add to it with plugins instead of forking it.
My first Headlamp PR, in July 2020, was “Create desktop app”. It wrapped Headlamp in Electron so the same code runs on Linux, macOS and Windows. Two months later I added OIDC login, so companies could sign in with their own identity provider (Dex, Keycloak, Azure AD). Many of them couldn’t use it before that.
In 2021 Microsoft acquired Kinvolk, so Headlamp and I both moved to Microsoft. I kept working on Headlamp there for the next five years. It’s now a Kubernetes SIG UI project. In March 2026 I was added to the maintainers list.
Some of the things I built along the way:
- The plugin system, and later plugins of my own: the Helm app catalog, and Flux.
- Port forwarding, a notification area, dark theme, node drain and cordon, a settings page.
- The desktop app’s update and release notes flow.
- Making big clusters fast: virtualised lists and code splitting cut render time by about 60%.
I also mentored six people through LFX and Google Summer of Code. Every one of them shipped a plugin that people use, for Volcano, Cluster API, Kubeflow and Knative.
130 merged PRs in Headlamp · 27 in the plugins repo
Teaching Headlamp to answer questions
I wrote Headlamp’s AI assistant plugin. You ask it something about your cluster in plain English, and it turns that into Kubernetes API calls and streams the answer back into a chat panel. In September 2025 I made it able to run MCP servers, so it could use outside tools as well as its own.
In March 2026 I worked with the folks behind HolmesGPT to bring their agent into the assistant. That integration became a demo in the KubeCon EU 2026 keynote. I didn’t give the keynote. I built and prepped the demo that ran in it.
The same assistant now ships inside AKS desktop.
LangChain · MCP · HolmesGPT · React
SigNoz: alerts worth waking up for
In October 2026 I joined SigNoz, an open source observability platform built on OpenTelemetry. I work on alerting, in the Go backend and the React frontend.
A good alert tells you something you need to act on. A bad one wakes you at 3am for nothing, and after a few of those you stop trusting any of them. So far I’ve added a configuration area for notification channels, routing policies and planned downtime, plus search and saved views for the alert rules list.
12 merged PRs in the first three weeks
Off the trail
- HomeAlmora. I go back as often as I can.
- WeekendsTrekking and hiking.
- Table tennisI play whenever I can find a table and someone to lose to.
- Right nowI just bought a PS5 and I'm playing God of War.