You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Platform engineering is the discipline of designing and building self-service capabilities that enable development teams to deliver software faster, safer, and with less cognitive load — without filing tickets or waiting for another team.
"Platform engineering improves developer experience, reduces SDLC friction, and eases the cognitive load of complex software architectures." — Gartner
It is NOT:
A rebrand of DevOps or SRE
Building tools nobody asked for
A team that says "no" to everything
A shared services team that becomes a bottleneck
It IS:
Treating infrastructure as a product (with users, roadmap, feedback)
Paving golden paths that make the right thing the easy thing
Automating the undifferentiated heavy lifting
Enabling 10x developer velocity while maintaining governance
The Platform Engineering Manifesto
Product over project — The platform has users, a roadmap, and a feedback loop
Self-service over tickets — Developers never wait for another team for standard operations
Golden paths over gatekeeping — Make the right thing easy; don't just block the wrong thing
Automation over documentation — If it can be automated, it shouldn't be a wiki page
Enablement over enforcement — Developers should WANT to use the platform because it helps them
Measured over assumed — Track adoption, satisfaction, and velocity; don't assume value
Target: Level 3 minimum. Level 4 for standard operations (create project, scan, deploy to dev).
Developer Experience (DX) Metrics
What to Measure
Metric
Target
How to Measure
Time to First Deploy
< 1 day from joining team
Track from onboarding start → first prod deploy
Time to Scaffold
< 5 minutes
From thothctl init to running tests
Pipeline Lead Time
< 1 hour (commit → prod)
Pipeline execution timestamps
Developer NPS
> 40
Quarterly survey: "How likely to recommend our platform?"
Self-Service Rate
> 90%
(Self-service actions) / (total actions including tickets)
Support Ticket Volume
Decreasing trend
Count tickets to platform team per month
Cognitive Load Score
Decreasing
Survey: "How much do you think about infrastructure?"
Adoption Rate
> 80% of new projects
Projects using scaffold / total new projects
Platform Availability
99.9%
Pipeline uptime (deploys never blocked by platform)
Measuring Platform Success
flowchart TD
subgraph Leading["LEADING INDICATORS (Measure Weekly)"]
ADOPT["Scaffold adoption rate"]
SELF["Self-service action count"]
FEEDBACK["Developer feedback themes"]
end
subgraph Lagging["LAGGING INDICATORS (Measure Monthly)"]
NPS["Developer NPS"]
DEPLOY["Deploy frequency (DORA)"]
MTTR["MTTR (DORA)"]
TICKETS["Support ticket trend"]
end
subgraph Business["BUSINESS OUTCOMES (Measure Quarterly)"]
TTM["Time to market"]
QUALITY["Production incident rate"]
COST["Cost per deployment"]
end
Leading --> Lagging --> Business
Loading
Platform API Contract
Everything Must Be Machine-Consumable
In the ADP era, every platform capability must be accessible by both humans AND AI agents:
Interface
For Humans
For Agents
Implementation
CLI
thothctl scan iac
Same command via MCP tool
ThothCTL CLI
MCP Server
—
thothctl_scan_iac MCP tool
ThothCTL MCP (24 tools)
IaC Constructs
new SecureApi(...)
AI generates construct usage
CDK L3 constructs
Steering Files
Read .kiro/steering/
AI follows rules automatically
Kiro steering
Skills
Read .kiro/skills/
AI uses decision logic
Kiro skills
Templates
thothctl init project
Agent calls same CLI
Template engine
Policies
thothctl scan -t opa
Agent validates against policies
OPA/Rego
Principle: If a capability is only accessible via a UI or a wiki page, it's not platform engineering — it's documentation.
Governance Without Friction
The Governance Spectrum
flowchart LR
BLOCK["BLOCKING<br/>(hard gate)"] --- WARN["WARNING<br/>(soft nudge)"] --- GUIDE["GUIDANCE<br/>(information)"]
Loading
Control
Type
When to Use
Example
Hard gate (blocks deploy)
Blocking
Security critical, compliance mandatory
No public S3, encryption required, no * IAM
Soft warning (allows but warns)
Warning
Best practice, cost optimization
ARM64 recommended, on-demand DynamoDB preferred
Guidance (informational)
Guide
Suggestions, alternatives
"Consider using ElastiCache for this pattern"
Implementation: Layered Enforcement
Layer
Tool
Friction Level
IDE (real-time)
cdk-nag warnings in editor
Lowest — developer sees immediately
Build (pre-deploy)
ThothCTL scan + OPA policies
Low — fails fast in pipeline
Deploy (hard boundary)
SCPs + RCPs
Zero friction — AWS rejects silently
Runtime (continuous)
AWS Config + Continuum
None — monitors continuously, alerts/remediates
Principle: Move governance LEFT. The earlier you catch it, the less friction it causes. A cdk-nag warning in the editor is 100x less disruptive than a blocked production deploy.
Platform Maturity Model
flowchart LR
CRAWL["CRAWL<br/>(Month 1-2)"] --> WALK["WALK<br/>(Month 3-4)"]
WALK --> RUN["RUN<br/>(Month 5-8)"]
RUN --> FLY["FLY<br/>(Month 9+)"]