system status: online

Raghav Dakshkeeps infrastructure boring, on purpose.

DevOps EngineeriGaming Math & Systems (personal)
Kubernetes (CKA in progress)/CI/CD/Cloud infrastructure

Sole infrastructure owner at an early-stage startup — CI/CD pipelines, cloud migration, and cost management, learned by running production systems rather than tutorials alone. Outside of that, I build slot-game math for a proprietary iGaming platform — RTP optimisation, bet-mode tuning, compliance testing — and the internal tools around it. Currently completing CKA.

raghav@devops: ~
raghav@devops:~$
try help, roles, stake, or sudo hire-me
REC · 01

Experience

founding infra hire
raghav@vyantra: ~/deploy.log

DevOps Engineer, Founding Team — Vyantra

~5 months · India
[00:00:01]INFOSole DevOps engineer at an early-stage gaming startup — architecture decisions to daily operations.
[00:00:02]OKMigrated backend + frontend off a single self-managed VM to serverless (Cloud Run + GCS) — independently flagged the VM as a scaling / single-point-of-failure risk.
[00:00:03]OKBuilt GitHub → Cloud Run CI/CD in Jenkins — automated health checks, versioned GCS backups (5–10 build retention), frontend static asset deploys.
[00:00:04]OKWired Jenkins into Zoho Cliq for real-time pipeline status and direct log links.
[00:00:05]OKManaged the company's GCP account, cost, and IAM after moving off the free tier.
[00:00:06]OKTeam's Linux/systems and IT point of contact — developer machines and company email.
REC · 02

Projects

things you can actually open

sift

Finds the images and videos in a folder that actually contain text and sorts them out — phone backups, downloads-folder archaeology. OCRs every image (and sampled video frames) with Tesseract, in parallel across most of your cores.

  • Go
  • Tesseract
  • CLI
  • tagged releases

claude-watch

A local, terminal-styled dashboard for Claude Code token usage and cost, with session and weekly reset countdowns. Reads session logs straight off disk: no API key, no cloud, no npm install.

  • TypeScript
  • Node 22
  • node:sqlite

Stake Engine payout calculator

Compares the platform’s two developer royalty models — 7.5% guaranteed vs 10% GGR share — side by side, solves backwards from a target payout, and charts up to six games against each other.

  • HTML
  • JavaScript
  • zero dependencies

Studio tooling

Browser tools the team uses daily: an audio-sprite previewer, a drag-and-drop Spine skeleton viewer, and a game-content site — all sharing one theme kit (the one you’re looking at), deployed independently.

  • React + Vite
  • Next.js
  • Vercel

More small tools — battery monitor, KDE lock toggle, Steam onboarding — on GitHub ↗

ADR · 01–03

Case study

decisions, owned end to end
ADR-001Vyantra — single VM to serverless
SINGLE SELF-MANAGED VM · SPOFbackend + frontend + Jenkins, all on one boxmanual scaling, manual deploysunversioned ops — no rollback pathmigrated toSERVERLESS, SPLIT BY RESPONSIBILITYCloud Run — backend + frontend, auto-scaledGCS — versioned backups (5–10 retained)Jenkins — CI/CD control plane only
cat adr-001-vm-to-serverless.md
Context
Solo DevOps hire at an early-stage gaming startup running backend, frontend, and CI/CD off a single self-managed VM.
Problem
The VM was a single point of failure and a manual scaling bottleneck — every deploy, patch, and resource change was a manual, unversioned operation.
Decision
Move backend and frontend to Cloud Run and GCS (serverless), keep Jenkins on a small VM strictly as the CI/CD control plane.
What I built
GitHub-triggered Jenkins pipelines deploying to Cloud Run with health checks, a versioned GCS backup pipeline with automatic retention, and Zoho Cliq integration for deploy visibility.
Outcome
Deploys went from manual, undocumented steps to a single push-to-deploy flow with automatic rollback-relevant backups.
Retrospective
Write infrastructure as code from day one instead of console-first — a discipline carried straight into the personal project below.
ADR-002iGaming Slot — Stake Engine RGS Platform — personalin progress
MATH SDK — Python, offlineflood-fill cluster search, cascades, 7 bet modes locked to 96.70% RTPRGS SERVER — wallet APIauthenticate → play → bet/event → end-roundFRONTEND — Svelte 5 + PixiJS (team build)math config + sample round books wired in; instant binary buy
cat adr-002-igaming-slot.md
Context
Personal project, in progress — a 6×5 cluster-pays cascade slot on Stake Engine, a proprietary iGaming RGS platform, independent of the Vyantra day job.
Problem
Seven bet modes — base, a high-volatility base, two ante modes, two bonus buys and a binary activation mode — each had to land on exactly 96.70% RTP while staying inside the platform's volatility bands and payout-distribution rules for its star rating.
Decision
Build on the SDK's flood-fill cluster evaluation (5+ connected symbols), layer cascades and multiplier symbols on top, and let the SDK optimizer solve each mode against fixed RTP and hit-rate targets instead of hand-tuning weights.
What I built
The math for all 7 modes; regression tests for tumble events, config invariants and the published library; and a content-drift check that fails when published game info disagrees with the live math. Wired the math config and sample round books into the team's Svelte 5 + PixiJS frontend.
Outcome
Worked through the platform's QA review: pulled one mode's volatility back inside its rating band, filled empty payout tiers, fixed a multiplier-formula bug, and capped max win at 50,000× across every mode for a 2-star rating.
Retrospective
Published numbers went stale twice and QA caught it before I did. Anything that lives in two places now gets an automated check, not a promise to remember.
Link
Proprietary platform, source not public — full write-up available on request.
ADR-003Game repos vs vendor SDKs — keeping upstream pullable
cat adr-003-repo-split.md
workspace/
├── math-sdk/     vendor · origin: my fork · upstream: StakeEngine
├── web-sdk/      vendor · tracks upstream
├── <studio>/
│   ├── <game>/            its own repo (math)
│   └── <game>-frontend/   its own repo, sibling — never nested
└── math-sdk/games/<game> → ../../<studio>/<game>   symlink only
Context
Game math started life inside a fork of the platform's math SDK, mixed in with its stock demo games.
Problem
The SDK could no longer be updated cleanly from upstream, and every game's history was tangled with vendor code — and with every other game.
Decision
Keep both vendor SDKs as clean, upstream-tracked copies. Give each game its own repo under a studio folder, attached to the SDK only by symlink, with its frontend as a sibling repo.
Outcome
Simulation, tests and publishing run unchanged; an SDK update is a fetch and merge; each game has its own clean history and its own collaborator access.
Retrospective
Local bug fixes had already landed in the vendor core before the split — diff before resetting a "vendor" copy to upstream.
REC · 03

Skills

systemctl list-units --type=skill
raghav@devops: ~/skills
Infrastructure & DevOps
unitstatusdescription · used in
cicd.serviceactiveJenkins — GitHub → Cloud Run pipelines, health checks, Zoho Cliq alertsVyantra
cloud.serviceactiveGoogle Cloud — Cloud Run, GCS, IAM, cost managementVyantra · ADR-001
systems.serviceactiveLinux administration, systemd, shell scriptingdaily driver · lockmode
containers.serviceactiveDocker
kubernetes.serviceactivatingKubernetes — CKA in progress
iac.serviceactiveTerraform (infrastructure as code)
git.serviceactiveGit / GitHub — upstream-tracked forks, repo-per-game splitADR-003
deploy.serviceactiveVercel — independently deployed static and Next.js sitesProjects
go.serviceactiveGo — CLI tooling with tagged releasessift
typescript.serviceactiveTypeScript, React, Next.jsclaude-watch · studio tooling
ai-workflow.serviceactiveClaude Code — custom skills for math audits, content publishing, sound packinggame studio
support.serviceactiveCross-functional IT supportVyantra
Game Math & Systems
unitstatusdescription · used in
math-sdk.serviceactivePython — RTP optimisation, cluster/cascade math, 7 bet modes at 96.70%ADR-002
qa.serviceactiveRegression tests, compliance checks, content-drift checksADR-002
frontend.serviceactiveSvelte 5 + PixiJS — wiring game math into the frontendADR-002
state.serviceactiveXstate — state machines for round flow and wallet events
wallet-api.serviceactiveRGS wallet integration — authenticate/play/end-round, disconnect/resume
i18n.serviceactiveLocalization across 16 languages
REC · 04

Credentials

certifications & education

Certified Kubernetes Administrator (CKA)

Exam scheduled upon completion of practice benchmarks.

● in progress

BCA — Indira Gandhi National Open University (IGNOU)

Not completed — one year enrolled. Currently pursuing CKA and hands-on project work instead.

○ not completed
session 00:00:00