goldpath is a small but production-style internal developer platform that lets any engineer create a fully wired service (code, CI/CD, Kubernetes, observability, and feature flags) in minutes instead of days.
| Capability | What it gives a team | What it shows about me |
|---|---|---|
| Golden-path scaffolding | New services created in a consistent, secure way in minutes | I think in terms of platform products, not just code |
| Feature flags | Controlled rollouts and quick rollbacks | I prioritize safe feature delivery |
| Observability & SLOs | Metrics, logs, and error budget tracking | I build reliability into platforms from the start |
| AI-assisted workflows | Smart config suggestions for pipelines | I integrate AI to reduce developer friction |
| Security defaults | Safe, tested templates that prevent mistakes | I treat infrastructure as product with security first |
I built goldpath to demonstrate how I think like a platform engineer: reducing friction for other developers, standardizing best practices, and making the "right thing" the easy thing.
In real teams, I've seen the pain of:
- New engineers spending days setting up services instead of building features
- Teams reinventing CI/CD and Kubernetes config from scratch
- Monitoring and reliability practices being inconsistent across the org
- Feature flags being copy-pasted or missing entirely
goldpath is how I would start building an internal developer platform for a real company – focusing on the most impactful pain points first.
| Situation | Before goldpath | After goldpath |
|---|---|---|
| Spinning up a new service | 2–5 days of copying old repos, fixing CI, wiring configs | 10–15 minutes using one guided command |
| Consistency | Each team has its own way of doing things | Shared golden path with proven templates |
| Reliability | Monitoring and alerts are bolted on later | Health checks, metrics, and SLOs are built-in from day one |
| Risk | Easy to skip security checks under time pressure | Secure defaults baked into the templates |
goldpath is a product that gives you: "One command that gives you a ready-to-deploy service with everything wired together."
You get:
- Production-ready Go code
- Dockerfile with multi-stage build
- CI/CD pipeline (GitHub Actions)
- Kubernetes deployment manifest
- Health checks and Prometheus metrics
- Feature flag system out of the box
- Speed: New services ready to deploy in minutes, not days
- Safety: Controlled feature rollouts with quick rollbacks
- Consistency: Every service follows the same proven patterns
- Visibility: Built-in metrics and SLO tracking from day one
- Golden-path project generator
- Built-in feature flags with percentage rollouts
- Built-in metrics and SLO tracking
- Simple AI-assisted config suggestions
- 100% automation-friendly (CLI, API)
goldpath new <service-name> --lang go --cloud awsGenerates:
- Go service with structured logging and graceful shutdown
- Dockerfile with multi-stage build for security and size
- CI/CD pipeline (GitHub Actions) with tests and deployments
- Kubernetes deployment with health checks and resource limits
- REST API for creating and toggling feature flags
- Supports percentage rollout (e.g., 10% of users get new feature)
- Pluggable backend (in-memory for local dev, Redis for production)
- Metrics for flag evaluations and rollout status
- Exposes Prometheus metrics (latency, errors, flag evaluations)
- Tracks error budget against target SLO (e.g., 99.5% success rate)
- Helps teams see when they are "burning" their reliability budget
- Health check endpoint for Kubernetes liveness and readiness probes
- Suggests CI/CD or pipeline configs based on input
- Uses OpenAI API if available; falls back to safe defaults if not
- Integrates directly with the scaffolding process
- Reduces time spent on boilerplate configuration
- Graceful shutdown for zero-downtime deployments
- Structured logging for easy debugging
- Clear configuration via environment variables
- Prometheus metrics exposed at
/metrics
graph LR
A[CLI] --> B[API Layer <br>internal/api/]
C[HTTP Requests] --> B
B --> D[Service Layer <br>internal/flags/, internal/scaffold/]
D --> E[Repository Layer <br>internal/flags/]
E --> F[Storage <br>In-memory or Redis]
D --> G[Template Engine <br>internal/scaffold/]
G --> H[Templates <br>templates/]
D --> I[AI Handler <br>internal/ai/]
D --> J[Metrics <br>internal/observability/]
J --> K[Prometheus Metrics]
| Area | Technology | Why I chose it |
|---|---|---|
| Language | Go | Fast, simple, great for backend services |
| HTTP routing | chi | Lightweight router for clean REST APIs |
| CLI | cobra | Standard choice for professional Go CLIs |
| Metrics | Prometheus client | Industry standard for monitoring |
| Storage | In-memory + Redis option | Easy local dev, scalable in prod |
| Config | Environment variables | Works well in containers and cloud |
| Container | Docker + multi-stage build | Small, secure runtime image |
- Clean Architecture: Separation between handler → service → repository layers
- Dependency Injection: No global state, dependencies injected via interfaces
- Testable Code: Unit tests for core business logic
- Pluggable Storage: Easy to swap between in-memory and Redis
I treat infrastructure and tooling with the same security care as user-facing apps. Secure defaults help prevent mistakes by busy developers.
| Design choice | Why it matters | What it shows about me |
|---|---|---|
| Read-only defaults | Reduces risk of accidental damage | I think about least privilege and safety |
| No secrets in code or Git | Prevents common security leaks | I build with real-world security in mind |
| Multi-stage Docker build | Smaller attack surface | I care about secure, production-ready images |
| Environment-based config | Secrets stay out of code | I follow 12-factor app principles |
| Safe metrics endpoints | No sensitive data exposed | I design with observability without risk |
- Template creators: Can define golden path templates
- Service generators: Can use templates but not modify them
- Flag admins: Can create and manage flags
- Flag evaluators: Can only evaluate flags
-
Developer creates a new service
Runsgoldpath new payments-service --lang go --cloud awsto generate a complete service. -
Code and config are generated
goldpath creates Go code, Dockerfile, CI/CD pipeline, and Kubernetes manifest. -
Code is pushed and pipeline runs
Developer pushes code to GitHub; GitHub Actions runs tests and builds the service. -
Service is deployed
Kubernetes manifest is applied; service runs with health checks and metrics. -
Feature flag is created
Engineer creates a flag for a new payment feature with 10% rollout. -
Feature is tested and monitored
Product team tests the feature; SLO metrics show no impact on reliability. -
Full rollout or rollback
If successful, roll out to 100%; if issues, roll back in seconds.
- Go 1.22 or later
- Docker (optional, for containerization)
- Redis (optional, for persistent flag storage)
# Clone the repository
git clone <repo-url>
cd goldpath
# Run tests
make test
# Start the API server
go run ./cmd/goldpath
# Generate a new service
goldpath new payments-service --lang go --cloud aws| Variable | Default | Description |
|---|---|---|
GOLDPATH_PORT |
8080 | Server port |
GOLDPATH_HOST |
0.0.0.0 | Server host |
GOLDPATH_LOG_LEVEL |
info | Log level (debug, info, warn, error) |
GOLDPATH_FLAG_STORAGE |
memory | Flag storage (memory, redis) |
GOLDPATH_REDIS_ADDR |
localhost:6379 | Redis address |
GOLDPATH_AI_ENABLED |
false | Enable AI features |
GOLDPATH_OPENAI_API_KEY |
- | OpenAI API key |
# Generate a new Go service called "auth"
goldpath new auth --lang go --cloud aws
# Output:
# Generated service: auth/
# - main.go (Go code)
# - Dockerfile (multi-stage build)
# - .github/workflows/ci.yaml (CI/CD pipeline)
# - k8s/deployment.yaml (Kubernetes config)# Create a flag for a new login feature
curl -X POST http://localhost:8080/api/v1/flags \
-H "Content-Type: application/json" \
-d '{
"key": "new-login-flow",
"name": "New Login Flow",
"description": "Redesigned login experience",
"enabled": true,
"rollout": 10.0
}'# Check service health and metrics
curl http://localhost:8080/health
curl http://localhost:8080/metrics- UI Dashboard: Visual interface for managing feature flags and service health
- Multi-Language Support: Add Node.js and Python template options
- Pluggable Auth: OAuth2 integration for the admin APIs
- Internal Developer Portal: Service catalog, scorecards, and documentation
- Policy as Code: Security and compliance checks before deployment
- AI Architecture Suggestions: Recommend architectures based on service type
- Advanced SLO Management: More granular SLO definitions and reporting
This roadmap shows how goldpath would evolve into a full internal platform:
- Start with the most painful problems (scaffolding, flags, observability)
- Add user-friendly interfaces as adoption grows
- Build policy and compliance features as scale increases
- Integrate AI to make platform decisions even easier
| Job Requirement | Where goldpath demonstrates this |
|---|---|
| Contribute to technical roadmap for internal developer platform | Roadmap section shows evolution from MVP to full platform |
| Develop and maintain core platform features (CI/CD, observability, feature flags) | Golden-path scaffolding, metrics, and feature flag service |
| Drive operational excellence with SLAs and SLOs | Built-in metrics, SLO error budget tracking |
| Design AI-driven workflows and systems | AI suggestion endpoint and integration with platform |
| Partner with internal engineering customers | Before/After sections focused on developer pain points |
| Build secure, production-ready infrastructure | Security First section with multi-stage Docker, env config |
| Create self-service tools for developers | CLI and API-driven service generation |
No, but it's designed like a real product. goldpath is intentionally small to demonstrate platform engineering thinking. In a real company, I would expand it with:
- More robust storage (PostgreSQL instead of in-memory/Redis)
- Hardened security (mTLS, audit logs)
- High availability (clustering)
- Scalability (horizontal scaling)
By:
- Adding a service catalog to track all generated services
- Implementing policy as code to enforce security rules
- Supporting multiple cloud providers and regions
- Adding SSO and role-based access control
- Building integrations with existing tools (Slack, Jira, PagerDuty)
Easy. The template engine is designed to be language-agnostic. Adding a new language (like Python or Node.js) would involve:
- Creating templates for that language
- Adding language-specific logic to the scaffolding engine
- Testing the generated code and pipelines
- Consistent patterns: Every service follows the same proven architecture
- Built-in reliability: SLOs and monitoring are standard
- Controlled rollouts: Feature flags reduce release risk
- Secure defaults: Templates prevent common security mistakes
- Faster recovery: Quick rollbacks with feature flags
I would start by:
- Understanding the current pain points of your engineering teams
- Extending goldpath with templates for your most used languages
- Integrating with your existing CI/CD and deployment tools
- Adding a UI dashboard for easier management
- Building policy as code to enforce your standards
make testmake coveragemake lint# Build
make docker-build
# Run
make docker-runMIT License - See LICENSE file for details