# career.pipelineTrunk-based. Single artifact. Promoted through every stage.
One engineer, promoted stage to stage since 2015 — the same way I ship software. Select a stage to inspect it, or hit Promote to walk the pipeline.
- Fleet Managed Windows, macOS, and Linux fleets company-wide
- Automation Automated provisioning and inventory with Bash, Python, and PowerShell
- Identity Administered identity and access through Okta
- Delivery Killed a multi-day monthly patching cycle with immutable infrastructure — Packer, Terraform, Ansible, Docker, GitHub Actions on RHEL/CentOS
- Migration Cut infrastructure costs $100K migrating VMs to Kubernetes: multistage builds, Helm charts, right-sized autoscaling with HPA/VPA and spot node pools
- Logging Deployed an HA Fluentd / Fluent Bit stack — DaemonSets, sidecars, tuned buffers, per-team quotas saving $1K/month
- Ops Ran 24/7 on-call, OpsGenie alerting and auto-remediation, PCI compliance, critical-outage response and postmortems
Runs the company-wide Kubernetes platform every product team deploys on — ~30 engineers building KanpAI, Panasonic's enterprise agentic-AI platform: 20+ production agents across 10+ business units in the US and Japan. Leads the 4-person platform team: roadmap, priorities, mentoring, and the platform's voice to engineering leadership.
- Delivery Replaced Spinnaker with a self-service GitOps platform on ArgoCD + Argo Workflows/Events — pipelines from one command, setup 6 hrs → 10 min, lead time 1 hr → 15 min, scaled 15 → 228 microservices
- Promotion Drove trunk-based single-artifact promotion with Kargo across 5 teams / 16 services — weekly deploys became 15 a day, one click dev-to-prod
- Charts Built helm-generic-app: schema-validated, secure-by-default, CI-tested — new-service packaging 3 hrs → 5 min across 16 microservices
- Tenancy Cut tenant onboarding from 7 days of manual Vault + Terraform to minutes with a git push — bootstrap chart, External Secrets, ACK controllers
- Reliability Zero customer-impacting incidents in GAAI's first 10 months — PodDisruptionBudgets, graceful drain, Karpenter-rolled EKS upgrades from a single Terraform PR
- Security Multi-tenant isolation with Kyverno policy-as-code, default-deny NetworkPolicies, per-tenant gateways — then built a production-identical red-team environment in 3 hrs and fixed what it found
- Recovery Verified end-to-end restore drills with Velero + CSI snapshots and cross-region failover; moved 30 Datadog monitors into GitOps
- Migration Drove the platform's carve-out onto its own AWS foundation — a dozen-plus microservices moved ahead of the corporate deadline, zero data loss
- AI tooling Shipped claude-projects: Claude Code subagents with guardrail hooks running 2–3 parallel epics — release automation, Renovate, ECR publish, a change-tracking dashboard
- Teaching Led a 3-week on-site SRE workshop in Japan — 20 engineers from 12 Panasonic subsidiaries: SLOs, error budgets, incident response, CI/CD
# platform.metricsNumbers a dashboard would page you about — in a good way
# kubectl.execYou have shell access. Poke around.
A resume you can query. Try help, kubectl get jobs,
argocd app sync career, trace, or sudo hire dackota.
↑/↓ history · clear to reset · everything is fair game
# kubectl get ns --show-labelsThe skills cluster — every namespace Running
# otel.traceYour visit, as a distributed trace
This page is instrumented like a service I'd run in production. Every section you read, every stage you click, every command you type opens a span — with real durations, attributes, and status codes. Select a span to inspect it.
# slo.dashboardThis session has an SLO. Here's how it's doing.
The same thing I taught 20 engineers in Japan, pointed at this page: an objective, an indicator measured from real spans, and an error budget that burns when the page fails you.
Every instrumented interaction carries a latency objective — 50 ms for a pipeline stage click or a
freight promotion, 100 ms for a shell command. Animations and dwell time don't count, because
neither is a request. A span that misses its objective, or exits non-zero, burns budget.
Go break it: rm -rf / in the shell above
gets denied by policy, and a denied request is still a failed request.
Real user monitoring — your actual Core Web Vitals
Delivery performance — DORA, computed live from this site's own repo
Not a claim: your browser calls the GitHub API for this repository's releases and commits and does the math on the spot. Definitions are printed with the numbers, because a DORA metric without its definition is a vanity metric.
querying api.github.com/repos/dackota/resume-website …
# changes.feedThe platform I run when nobody is paying me
Live from changes.dackota.com — a Go service I wrote that polls my config repos, extracts tracked values, and classifies every change by impact and risk. Below is what it has actually seen: real commits, real version deltas, no screenshots. Chart and Terraform changes will show you their blast radius — what the bump did to the rendered manifests, or which resources it would replace.
Pick a day to re-query the feed against that exact half-open window
(since inclusive, asOf exclusive) — the same tiling the API's polling recipe uses.
# CHANGELOG.mdReleased with conventional commits since 2015
-
v4.0.02025
feat!: became the platform team's lead — roadmap, priorities, mentoring, and the platform's voice to leadership. BREAKING CHANGE: carve-out from Panasonic Well onto GAAI's own AWS foundation, a dozen-plus microservices moved with zero data loss.
-
v3.0.02022
feat!: joined Panasonic's first forward-deployed AI engineering team. Two generations of continuous delivery shipped; the release model set here is how the rest of the org ships.
-
v2.0.02018
feat!: promoted to SRE. Immutable infrastructure, the VM-to-Kubernetes migration, and a taste for deleting toil that never went away.
-
v1.0.02015
feat: initial release — sysadmin at Infusionsoft. Three OS fleets, scripted provisioning, and the discovery that everything is better automated.