shivsai@bitsandbooks — zsh
shivsai@bitsandbooks:~$
$ ls work/
# find a problem → take it apart → fix it → write about it
  1. found
    The planned commercial migration tool was stuck in approvals for ~3 months, and my business unit of 10,000+ repos (a big share of them LFS-backed, with binaries and submodules) couldn't wait that long.
  2. took apart
    Split the job into the pieces that could fail on their own: repo creation, history transfer, LFS, permissions, downstream CI, and people. Then I found which of those actually set the pace.
  3. fixed
    →Proposed an interim Jenkins mirror-and-push pipeline, piloted it on 10 repos, and the rest of the team adopted it.
    →Wrote the Python automation for repo creation and team/permission mapping, with CSV-driven batches.
    →Cutover flow: sandbox org → owner validation → source read-only → fresh mirror → parity checks (branches, tags, PRs, webhooks, LFS objects, commits) → hypercare, with rollback by flipping the source back to read/write.
    →Peak of 500+ repos/week against a 200/week target.
  4. wrote about it
    The lesson I'd write up: LFS conversion rewrites history, so commit SHAs change and anything pinned to a commit ID breaks. Past a point, owner validation and release calendars set the pace, not the tooling.
// smaller loops, same method
Okta SSO for 8 Jenkins controllers, replacing per-server LDAP. The catch: Jenkins only creates a user record after the first login, so permissions granted ahead of time don't behave the way they did under LDAP.
Licence reclamation as code: a two-phase GitHub Actions workflow (detect, then remove) across Jira, Confluence, GitHub, Copilot and Cursor. ~50 seats reclaimed per app.
Perforce → GitHub pilot: 100 repos migrated with full history through a Jenkins job I built.
$ ls projects/ # built on my own time
$ cat about.md
S
Shivsai Anantwar
// curious by default, methodical by trade
Sr. DevOps / Platform EngineerTRUGlobalIndia · UTC+5:30 · open to remote
// how I work
I spend most days finding the thing that's quietly broken (a bloated pipeline, an over-permissioned role, a manual step everyone's afraid to automate) and fixing it properly instead of patching around it. That's how 10,000+ repos moved to GitHub Enterprise, a GCP estate moved to AWS, and a client with no DR got a tested switchover. I like systems that don't need me to babysit them.
currently: going deeper, building upward
Going back through Linux internals and networking (TCP, DNS, TLS) on purpose, because that's where the hardest production issues end up. Building upward: my GHAS triage agent is in production beta. Next I'm adding tracing, evals and cost routing, and publishing each step with the repo.
0+
repos migrated
0+
repos / week
0
jenkins → okta
0+
yrs devops
// migrations
10,000+ repos / ~8 TB to GitHub Enterprise: my business unit, end to end
GCP → AWS: servers, GKE → EKS, databases and secrets (led)
Disaster recovery from zero: prod replica, validated with a switchover test
Amazon Linux → RHEL across ~25 prod/dev servers ahead of EOL
Perforce → GitHub pilot: 100 repos with full history preserved
$ git log --oneline
→Owned the GitHub Enterprise migration of a 10,000+ repo / ~8 TB business unit end to end; peak 500+ repos/week vs a 200/week target
→Proposed and piloted the interim Jenkins mirror-and-push migration path when the commercial tool was delayed ~3 months; the team adopted it. Wrote the Python repo-creation and permission-mapping automation
→Built the GHAS Alert Triage Agent (FastAPI, React, LLM reasoning layer), now in production beta with GitHub champion users, plus an L1 DevOps support agent
→Moved 8 Jenkins controllers from per-server LDAP to Okta SSO with ACL-based authorisation
→Automated licence reclamation across Jira, Confluence, GitHub, Copilot and Cursor with a two-phase GitHub Actions workflow (~50 seats per app)
→Delivered a 100-repo Perforce → GitHub pilot with full history; ran the GHAS proof of concept (secret scanning, code scanning, Dependabot, push protection); support high-usage teams moving from Jenkins to GitHub Actions
$ cat skills.json
GitHub EnterpriseGitHub ActionsJenkinsGroovyGit LFSJFrog ArtifactoryPerforce → Git migration
open to senior devops / platform roles
full-time remote or long-term contract · India, UTC+5:30
MeShivsaiLinkedInshivsai.r.anantwar@gmail.com
bits & books · find a problem, take it apart, fix it, write about it