Skip to content
View omkar619-dev's full-sized avatar
๐ŸŽฏ
Focusing
๐ŸŽฏ
Focusing

Block or report omkar619-dev

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please donโ€™t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this userโ€™s behavior. Learn more about reporting abuse.

Report abuse
omkar619-dev/README.md

Hi ๐Ÿ‘‹, I'm Omkar Shendge

Backend engineer @ Staple AI ยท building toward distributed systems & AI infrastructure

profile views


Backend engineer based in India ๐Ÿ‡ฎ๐Ÿ‡ณ. I learn by building production-grade systems end to end โ€” writing the service, containerizing it, wiring the CI/CD, deploying it, load-testing it, and keeping it observable. Right now I'm pushing deeper into distributed systems, platform / SRE, and AI infrastructure.

๐ŸŒฑ Open source

I contribute to the infrastructure I run โ€” nine distinct changes merged across seven projects (all merged PRs). The ones worth reading:

  • Grafana Mimir โ€” store-gateway leaked one TCP connection per get_range because loadChunks closed the bucket range reader without draining it, so net/http discarded the connection instead of pooling it. Root-caused from a user's connection-exhaustion report and fixed by draining before close.
  • Argo CD โ€” a fix for operationState carrying values from a failed sync attempt landed on master, but the cherry-pick bot failed minutes later, so every supported release still shipped the bug. After two independent reports against released versions I carried it back to 3.3, 3.4 and 3.5 by hand.
  • KubeRay โ€” killing kubectl ray session by PID left its kubectl port-forward child reparented to init, still holding all four listeners. The dashboard kept answering 200 after the session was gone and the next session couldn't bind.
  • Grafana Mimir โ€” max-connections-per-host reads as a process-wide cap, but the limit lives on one bucket client's transport, so a process running several components opens a multiple of it. Measured 29 concurrent connections against a configured 25 to prove more than one transport was live.
  • Grafana Mimir โ€” the Kafka Helm chart mounted its data claim one directory above KAFKA_LOG_DIRS, so containerd satisfied the image volume instead and the claim went unused.

Plus Traefik, KEDA and Thanos โ€” a Redis provider requirement that silently breaks when unset, a Temporal deprecated-API removal, and a link check that had been failing every PR for two weeks.

Currently open across Envoy Gateway, Argo Workflows, Cilium, Thanos, Dapr, Postgres Operator, KubeRay and Traefik.

๐Ÿงฑ What I've built

driftlab โ€” Jepsen asks whether a server keeps its promises. driftlab asks whether the client library you import keeps its documented delivery guarantees under faults. A driver per library/version records a JSONL history in Jepsen's vocabulary; a pure offline checker reports lost-write, poll-skip, non-monotonic poll, duplicate, stall and phantom. Calibrated against a known NATS regression so a clean run on the fixed version proves the harness actually bites. Two findings reported upstream so far: nats.go 2180 and 2181.

chat-go โ€” real-time chat in Go. WebSocket gateway with Redis pub/sub fan-out, Kafka as the durable log feeding three independent consumer groups (history, pgvector search indexing, local-LLM RAG bot), Postgres + pgvector, and streaming catch-up summaries over the socket. Includes a hardening write-up and a documented scaling limit I left in deliberately.

news-feed-go โ€” production-grade news feed in Go: auth, post CRUD, a follow graph, hybrid push/pull fan-out, ranking, Redis cache-aside, pgvector semantic search, notifications and full observability. Built as a real system rather than a toy MVP.

StudentSystemGo โ€” a Go REST API layered all the way up to production as a system-design playground:

  • Multi-stage Docker build ยท GitHub Actions CI/CD to AWS EC2, later redeployed on K3s
  • Nginx load balancer across multiple app instances with circuit breaking
  • MySQL primary + replica with read/write split ยท Redis rate limiting + cache-aside
  • S3 + CloudFront media storage provisioned with Terraform
  • RabbitMQ worker queue ยท Prometheus metrics ยท k6 load tests
  • Deep-dive docs covering architecture, deployment, observability & load testing

๐Ÿ”ญ What I'm building right now

  • driftlab, next โ€” a Kafka driver alongside the NATS one, so the same checker runs against two ecosystems and the anomaly vocabulary has to hold up in both.
  • Distributed systems via MIT 6.5840 โ€” MapReduce โœ… ยท KV server + lock โœ… ยท Raft in progress.
  • chat-go, next phase โ€” presence and multi-gateway coordination, then WebRTC for voice/video across real networks, with a TURN relay and a measured connection success rate.
  • GitOps homelab on K3s + ArgoCD โ€” moving my self-hosted services to declarative, Git-driven deployments.

๐Ÿ›ฃ๏ธ Where I'm headed

Backend today โ†’ distributed systems and platform / SRE. Same throughline everywhere: own systems end-to-end, and bring that rigor to the infrastructure that runs AI. Next on the roadmap โ€” Raft carried through to a working consensus implementation, and an internal developer platform built around a credential broker and a blast-radius engine rather than a service catalogue.

๐Ÿ› ๏ธ Tech I work with

Languages

Go TypeScript Python Bash

Backend & Data

PostgreSQL pgvector MySQL / MariaDB Redis Kafka NATS RabbitMQ

Infra & DevOps

Docker Kubernetes K3s Argo CD Helm Terraform AWS Nginx GitHub Actions Linux Cloudflare

Observability & Testing

Prometheus Grafana k6

๐Ÿ“ซ Connect with me

Pinned Loading

  1. chat-go chat-go Public

    Real-time chat in Go โ€” WebSocket gateway with Redis pub/sub fan-out, Kafka as the durable log with three independent consumer groups (history, pgvector search indexing, local-LLM RAG bot), Postgresโ€ฆ

    Go

  2. kuberay kuberay Public

    Forked from ray-project/kuberay

    A toolkit to run Ray applications on Kubernetes

    Go

  3. news-feed-go news-feed-go Public

    Production-grade news feed in Go: auth, post CRUD, follow graph, hybrid push/pull fan-out, ranking, Redis cache-aside, pgvector semantic search, notifications and full observability.

    Go

  4. mimir mimir Public

    Forked from grafana/mimir

    Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus.

    Go

  5. grafana/mimir grafana/mimir Public

    Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus.

    Go 5.3k 855

  6. omkar-homelab-gitops omkar-homelab-gitops Public

    GitOps configuration for my home lab