No fixed specialty, I just work on whatever's annoying me at the time. That's been ML, then Linux internals, now tracing and Kubernetes networking. Day job is running lots of Kubernetes clusters, lots of Docker, some networking, some cybersec and whatever I am allowed to poke at.
Not really a themed portfolio below, just stuff I got into.
📫 sakshamsrivastava0000@gmail.com || saksh.am@outlook.in · ✍️ medium.com/@saksh-am · 💼 LinkedIn
find more of me: saksh.fyi · the work version: dev.saksh.fyi · blog: blogs.saksh.fyi
fluent-bit — the official install script silently broke on every Debian/Ubuntu box after packages.fluentbit.io started 302-ing to S3; curl fetched an empty GPG key and gpg gave up. One flag. Merged.
opentelemetry-helm-charts #2377 — the kube-stack chart's values schema rejected instrumentation.java.extensions even though the Operator CRD supports it, so you couldn't load a Java agent extension through Helm at all. Found this trying to deploy the sampler below. Merged.
cyclops — Kubernetes controller (Go, kubebuilder) that watches cert-manager Certificates and emails you when one is expired, never issued, or overdue for renewal. A healthy cluster sends nothing. Built mostly because I wanted to write a controller; it needs no Prometheus stack, and the email carries cert-manager's own ACME failure details. Alpha, but it ships releases.
otel-pattern-sampler — OTel Java agent extension, drops a noisy root span by name (and its whole child tree) before it hits the exporter. Had one span pattern flooding a trace backend at work — ~60 GB every 6 hours — and neither "turn down sampling globally" nor "go edit the app" was a good fix, so this. Backend rotates at 10 days and hasn't filled up since.
summarize-for-noobs — Streamlit app, summarizes text.
Othello-AI — Reversi agents.
torch-mnist / fmnist-torch-cnn — old PyTorch stuff from when I was learning it. Not deleting these.
Also a Java text editor and a bunch of other repos I'm not going to list individually.
Investigating Cultural Bias: A Comparative Study of Large Language Models with Pooja Singh, Sonia Khetarpaul and Unnat Sharma — PReMI 2025, Springer LNCS
We tested how much an LLM's answer changes if you only change who it thinks it's talking to. Built two things for it: The Life of X (swap names/identity markers, see how the story changes) and RECAP (ask for culturally-specific recommendations, grade them by hand and automatically). Ran it on GPT-4, Gemini and Claude. All three default to Western norms unless you tell them not to.
Also fourth author on Benchmarking LLM-powered Chatbots (arXiv, 2023), from before any of this was my job.
On blogs.saksh.fyi, RFC-style memos about things that broke:
- They Did Surgery on a Process — fixing a stuck deploy by changing an environment variable in a running process with gdb
- Logs in Translation — how a log travels from app to store
- Observability, My Dear Watson — what observability actually means
And on Medium, mostly "how does this actually work":
- Process Isolation: Linux Namespaces & cgroups
- What Happens When: Linux boots from power to systemd
- What Happens When: You Hit A URL
- Context Switch: The Illusion of Continuity
Older stuff is ML — transformers, GANs, word embeddings, some RL.
If you've hit any of these problems and want to compare notes, email's above.
