I turn production incidents into tools.

Het Patel, DevOps Engineer II at Techdome, Mumbai. Multi-cloud Kubernetes at work, open-source tools for everyone else.

The eye watches what I run. Point at a tool on its inner orbit.

    Inside the eye

    Everything you are about to fly past is something I run or built.

    100+ node clusters, three clouds

    One control plane across AWS, GCP and Azure. When a region fails, its workloads move to the others.

    Every change goes through the ring

    test, hygiene, analyze, stage, approve. Nothing reaches main until all five pass.

    $2M a year, switched off

    Cost automation finds idle cloud resources and right-sizes the rest. Saved over $2M a year.

    7,200 threads, history kept

    A chat migration broke every thread. The repair kept every author and became Threadvault.

    Read the chart

    Three years of keeping production running. The closer you look, the finer the print.

    1. 20/200$2M SAVEDa year, by finding idle cloud resources and right-sizing the rest
    2. 20/10010K DEPLOYScanary releases with automated rollback, through GitOps
    3. 20/70100+ NODES · 3 CLOUDSone control plane across AWS, GCP and Azure, with automated failover
    4. 20/5060% FASTER DEPLOYS · 99.9% UPTIMECI/CD, Kubernetes workloads and observability at DataGrokr
    5. 20/4062 → 0 OPEN SECURITY ALERTSone triage pass on DNS Intelligence, every dismissal written down
    6. 20/207,200 THREADS · HISTORY KEPT · AUTHORS RESTOREDthe chat migration that became Threadvault
    1. Aug 2025 to now

      DevOps Engineer II Techdome

      Multi-cloud Kubernetes, cloud cost automation and GitOps delivery for production workloads.

    2. 2023 to 2025

      DevOps Engineer DataGrokr

      CI/CD pipelines, Kubernetes workloads and observability. Cut deployment time by 60% and kept services at 99.9% uptime.

    3. 2019 to 2023

      B.Tech, Computer Engineering CHARUSAT University

      Aiming to master DevOps end to end, by running every tool in production myself: service mesh, SIEM, runtime detection, GitOps. The Kubernetes lab below is where that happens.

    Works with Kubernetes, Terraform, Helm, Argo CD, Linkerd, GitHub Actions, Prometheus, Grafana, Elasticsearch and Kibana, Falco, CrowdSec, Sealed Secrets, Trivy, Semgrep, CodeQL, OWASP ZAP, Ansible, Vault, Traefik, Cloudflare, OpenTelemetry and n8n, on AWS, GCP, Azure and Oracle Cloud, in Python, TypeScript and Bash.

    Under the lens

    Every tool here started as a real problem. Look closely; the screenshots are the real thing.

    A chat migration broke 7,200 threads. The repair became an open-source CLI.

    1. The move A resource move replayed 7,200 Azure Communication Services chat threads onto a new resource, with participants turned off.
    2. The damage 7,022 messages showed the wrong author, and every thread rejected replies with CommunicationError Forbidden.
    3. The repair Both defects were fixable only because the extract had kept each message's original sender and every participant list.
    4. The tool I wrote the post-mortem, then turned the repair into Threadvault: an open-source CLI that finds these failures before a migration does.

    An SPF record that needs more than 10 DNS lookups fails, and nested includes hide the real count.

    A domain scanner with 26 checks across DNS, TLS, security headers, DNSSEC, email authentication and reputation. It counts SPF lookups through every nested include, the way mail servers do.

    Free for one domain. Pro and Team plans, from $5 a month, add monitoring, alerts on certificate, SPF, DMARC, MX and nameserver changes, and automatic DMARC report collection.

    AWS bills automatically for running old versions. EKS extended support alone is about $365 a month per cluster.

    A read-only CLI that scans every region for EKS, RDS, ElastiCache, OpenSearch, MSK and Lambda versions at or near end of support, with the AWS source for every date.

    npx retirement-radar scan

    Or let it run for you: Radar Cloud connects through a read-only role and scans every account on a schedule (weekly free, daily on paid), with email and Slack alerts and the monthly cost of each finding.

    A backup job that says "success" proves nothing. You only learn the file is empty, stale or corrupt on the day you need it.

    Every six hours it pulls the newest offsite backup of each database, restores it into a throwaway copy (SQLite, or a PostgreSQL server it starts for the test), checks integrity, row counts and freshness, then destroys the copy. It alerts by Slack, Discord or email when a drill starts failing.

    It drills the DNS Intelligence, Radar Cloud and Analytics databases today, and its evidence page is public.

    A guessed ledger misstates the books, and the error surfaces months later inside Tally.

    Turns HDFC bank statements into Tally ERP 9 vouchers for five family books. Every run must tie to the bank's own totals, and it never guesses. Private; Python and FastAPI.

    npx threadvault doctornpm
    Threadvault doctor output in a terminal: the checks it runs on a chat export before a migration.
    DNS Intelligence report for github.com: health score 87, grade A, with DNS records, certificate, email security and blacklist status.
    Radar Cloud dashboard: an account's monthly extended-support bill on the left, the deadline radar in the centre with resources plotted by region and days to end of support, and the selected finding with the next deadline on the right.
    Restore Drill evidence page: 3 of 3 backups restored, a verified stamp, and the four steps of the last drill: find, restore, prove, destroy.

    The candidate-set rule

    1 ledger fitspost it
    0 fitdefault or Suspense
    2 or more fitblock the whole run

    Point it at your domain

    This runs the real DNS Intelligence API: SPF lookups counted through every include, the DMARC policy, and how long the certificate has left.

    Public DNS and TLS only. Nothing is stored.

    Try

    SPF, DMARC and certificate results appear here.

    Production I run myself

    Six services on one server I pay for, held to the bar I keep at work: watched from outside, backed up offsite, and every backup restored and checked every six hours. The numbers below are live.

    01Watched

    StatusProbes every service from outside, every 60 seconds
    WatchdogGitHub Actions checks Status itself every 10 minutes

    02Serving

    • hetops.dev 
    • DNS Intelligence restore-tested
    • Radar Cloud restore-tested
    • Dev Toolkit 
    • Status 
    • Analytics restore-tested

    03Restored

    1. DNS IntelligenceSQLite
      Backup age
       
      Restored in
       
      Checks
       

      Waiting for the drill

    2. Radar CloudSQLite
      Backup age
       
      Restored in
       
      Checks
       

      Waiting for the drill

    3. AnalyticsPostgreSQL
      Backup age
       
      Restored in
       
      Checks
       

      Waiting for the drill

    Live from the HetOps watch and Restore Drill APIs. Drill evidence Status page

    How it's wired

    VisitorsHTTPS to *.hetops.dev
    Cloudflare DNSevery hostname points at one server

    One Oracle Cloud VM · Coolify · TLS at the proxy

    • hetops.dev
    • DNS IntelligenceSQLite
    • Radar CloudSQLite
    • Dev Toolkit
    • AnalyticsUmami + PostgreSQL
    • StatusUptime Kuma, every 60 s
    • Restore Drillrestores every 6 h
    Cloudflare R2offsite copies of every database
    GitHubCI on every PR; Actions checks Status every 10 min from outside
    Staging VMa second Oracle VM: every server change lands here first (Ansible)

    Visitors reach every HetOps hostname over HTTPS through Cloudflare DNS, all on one Oracle Cloud VM run by Coolify. Each database is backed up daily to Cloudflare R2, Restore Drill restores those backups with a read-only key every six hours, Uptime Kuma probes every service every minute, and a GitHub Actions watchdog checks the status page every ten minutes from outside. A second Oracle VM is staging: Ansible applies every server change and Kubernetes upgrade there first, and only then to the live server.

    How I ship

    The same bar for side projects as for production. Nothing reaches main until the ring closes, and nothing reaches npm until I approve it with 2FA.

    1. testNode 20, 22 and 24, plus a real run of the built artifact
    2. hygieneworkflow audit, secret scan, signed and conventional commits
    3. analyzeCodeQL security and quality queries
    4. stagenpm publish staged from CI, with provenance
    5. approvea human, with a second factor

    Signed, protected main

    Signed commits, linear history, required checks and no force-push on every repository.

    • feat(spf): count DNS lookups through nested includes
    • fix(security): block IPv4-mapped IPv6 in every written form
    • fix(auth): never build sign-in links from request headers

    Careful dependencies

    Dependabot waits 7 days before proposing a release, every Action is pinned to a commit, and new dependencies are reviewed for advisories and licences.

    Least privilege

    Read-only by design where possible, enforced by tests. Credentials hashed at rest. Releases need no stored token.

    Read a SECURITY.md

    Break my real Kubernetes lab

    Not a simulation. A real cluster on my server that anyone can break, and the layers that watch it, each one tested by attacking it.

    Edge Cloudflare · CrowdSec Ingress Gateway API · real IPs Mesh Linkerd mTLS Runtime Falco · audit log Data Postgres · 4 identities request
    Every request crosses these rings, from Cloudflare’s edge to the database.

    From people I've worked with

    “What sets Het apart is their ability to accelerate deployments while simultaneously strengthening security measures.”
    Yashvardhan Singh Nathawat DevOps Engineer, Certa.ai
    “Proactive and really intelligent about his approach to development and documentation.”
    Dillon Omane Senior Software Engineer, Verisk
    “Het's communication and writing skills make him stand out from the crowd.”
    Iliyas Maner Lead Cloud Engineer, DataGrokr
    All recommendations on LinkedIn

    Shipping, most days

    Combined across github.com/Het101 and github.com/Hetu29.

    Shipped recently

    1. Radar CloudDeadline Radar: certificates that will not renew, Reserved Instances, Savings Plans and domains with auto-renew off now sit on the same radar as old versions.
    2. Radar CloudDashboard rebuilt around the deadline radar: what each account costs, the radar centre stage, and every finding one click from its blip.
    3. Restore Drill0.3.0: alerts by Slack, Discord, webhook or email when a drill fails, recovers, or stays broken. Results are live on this page.
    4. Restore Drill0.2.0: PostgreSQL dumps restored into a throwaway server started inside the agent, no Docker socket needed.
    5. Restore DrillLive at drill.hetops.dev and open source: every few hours the newest offsite backup of DNS Intelligence and Radar Cloud is restored into a throwaway copy and checked.
    6. Radar CloudLive at radar.hetops.dev: scheduled scans through a read-only IAM role, alerts by email and Slack, Free, Pro and Team plans.
    7. Retirement Radar0.3.0: ElastiCache, OpenSearch and MSK; every date re-checked against AWS.
    8. DNSSPF lookups counted through nested includes, a public SPF checker, and alerts when a domain crosses the limit.
    9. DNSSecurity pass: 62 code-scanning alerts to 0, SSRF checks on every outbound hop, credentials hashed at rest.
    10. DNSPaid Pro and Team plans: monitoring, alerts and automatic DMARC report collection.
    11. Retirement RadarFirst release on npm, then a staged, provenance-signed release pipeline.

    Writing

    All writing

    Got a production problem worth solving?

    Infrastructure, migrations, or a tool that should exist. I reply to every email.

    patel.x.het@gmail.com Email me