---
title: "Blogs — Anurag Gupta"
description: "Writing on software engineering, infrastructure, and AI."
canonical: https://anuragxd.com/blogs
---

# Blogs

Writing on software engineering, infrastructure, and AI.

## [Managing Kubernetes from my phone](https://anuragxd.com/blogs/crow-kubernetes-from-your-phone)

*2026-05-30* · Markdown: https://anuragxd.com/blogs/crow-kubernetes-from-your-phone.md

Crow is a native SwiftUI iOS client for Kubernetes. mTLS via PKCS#12, generic CRD browsing, WebSocket log streaming, and RBAC-gated mutations.

## [End-to-end user identity across a research platform with Istio, OPA, and token exchange](https://anuragxd.com/blogs/zero-trust-auth-istio-opa-keycloak)

*2026-05-13* · Markdown: https://anuragxd.com/blogs/zero-trust-auth-istio-opa-keycloak.md

How we made the user's JWT travel through every service-to-service call, across Kubernetes and HPC, using mesh-level validation, per-service OPA policies, and chained RFC 8693 token exchange.

## [Building a workflow execution service from scratch in Go](https://anuragxd.com/blogs/building-conquest)

*2026-04-28* · Markdown: https://anuragxd.com/blogs/building-conquest.md

Conquest implements GA4GH WES/TES on Kubernetes. Adapter pattern for multi-language support, Postgres state machines, and the file staging problem.

## [A filesystem-to-S3 sync daemon that doesn't poll](https://anuragxd.com/blogs/redrush-filesystem-s3-sync)

*2026-04-26* · Markdown: https://anuragxd.com/blogs/redrush-filesystem-s3-sync.md

RedRush uses inotify/kqueue for event-driven uploads to S3-compatible storage. Debouncing, recursive watch registration, and the Kubernetes sidecar pattern.

## [Using Gemini to list gemstones on Etsy for my mom](https://anuragxd.com/blogs/gemstone-listing-generator)

*2026-04-19* · Markdown: https://anuragxd.com/blogs/gemstone-listing-generator.md

Structured output from Gemini's multimodal API, JSON schema constraints, marketplace-safe description generation, and automated product image grids.

## [I wrote the same pipeline in Nextflow, Snakemake, and WDL](https://anuragxd.com/blogs/nextflow-snakemake-wdl)

*2026-03-28* · Markdown: https://anuragxd.com/blogs/nextflow-snakemake-wdl.md

Three tiny repos, one variant-calling workflow, and what each language's execution model actually does to your code.

## [Building a TUI database browser with React (yes, React)](https://anuragxd.com/blogs/dataslip-tui-postgres)

*2026-03-22* · Markdown: https://anuragxd.com/blogs/dataslip-tui-postgres.md

DataSlip is a terminal-first Postgres client built with Bun, React, and OpenTUI. Component architecture, focus management, and terminal rendering performance.

## [Popy: a 500 KB clipboard manager because every other one is an Electron app](https://anuragxd.com/blogs/popy-500kb-clipboard-manager)

*2026-03-12* · Markdown: https://anuragxd.com/blogs/popy-500kb-clipboard-manager.md

Writing a native Swift macOS menu bar app. NSPasteboard polling, Keychain storage, global hotkeys via CGEvent, and universal binary CI.

## [ConOps: I wanted Argo CD without the Kubernetes](https://anuragxd.com/blogs/conops-gitops-without-kubernetes)

*2026-02-06* · Markdown: https://anuragxd.com/blogs/conops-gitops-without-kubernetes.md

Building a GitOps controller for Docker Compose in Go. Reconciliation loops, config hashing for drift detection, go-git for in-process clones, and an embedded web UI.

## [Migrating live auth from SuperTokens to Keycloak](https://anuragxd.com/blogs/supertokens-to-keycloak)

*2026-01-29* · Markdown: https://anuragxd.com/blogs/supertokens-to-keycloak.md

Custom SPI for phone-OTP in Java, gradual user adoption via login-time import, dual-session logout, and the oidc-client-ts cutover.

## [The month we self-hosted everything](https://anuragxd.com/blogs/self-hosting-typesense-metabase)

*2025-12-27* · Markdown: https://anuragxd.com/blogs/self-hosting-typesense-metabase.md

Moving Typesense and Metabase onto GKE. StatefulSet tuning, alias-swapped re-indexing, SAML attribute mapping, and the OOM that Prometheus caught.

## [Small PRs to scientific infrastructure](https://anuragxd.com/blogs/contributing-to-ga4gh-oss)

*2025-08-20* · Markdown: https://anuragxd.com/blogs/contributing-to-ga4gh-oss.md

Shipping a streaming zip endpoint to trs-filer, adding S3-compatible storage via boto3, and patching FOCA's MongoDB connection URI handling.

---

Markdown representation of https://anuragxd.com. Request any page with `Accept: text/markdown`, or append `.md` to its URL. Index: https://anuragxd.com/llms.txt · API: https://anuragxd.com/api/index.json
