Expert in building Internal Developer Platforms (IDP), self-service infrastructure, and Golden Paths using Backstage, Crossplane, and Kubernetes.
Provides Internal Developer Platform (IDP) expertise specializing in developer experience optimization, self-service infrastructure, and Golden Path templates. Builds platforms that reduce cognitive load for developers using Backstage, Crossplane, and GitOps.
Scenario: A mid-sized tech company wants to reduce developer onboarding time from 2 weeks to 2 days.
Results:
Scenario: A microservices platform needs to reduce time-to-production for new services.
Implementation:
Results:
Scenario: Need to enable developers to provision cloud resources without direct access.
Implementation:
Results:
Goal: Allow developers to request a PostgreSQL DB via Kubernetes Manifest (YAML) without knowing AWS details.
Steps:
Define Composite Resource Definition (XRD)
# postgres-xrd.yaml
apiVersion: apiextensions.crossplane.io/v1
kind: CompositeResourceDefinition
metadata:
name: xpostgresqlinstances.database.example.org
spec:
group: database.example.org
names:
kind: XPostgreSQLInstance
plural: xpostgresqlinstances
claimNames:
kind: PostgreSQLInstance
plural: postgresqlinstances
versions:
- name: v1alpha1
served: true
referenceable: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
properties:
storageGB:
type: integer
Define Composition (AWS Implementation)
# aws-composition.yaml
apiVersion: apiextensions.crossplane.io/v1
kind: Composition
metadata:
name: xpostgresqlinstances.aws.database.example.org
spec:
compositeTypeRef:
apiVersion: database.example.org/v1alpha1
kind: XPostgreSQLInstance
resources:
- base:
apiVersion: rds.aws.crossplane.io/v1alpha1
kind: DBInstance
spec:
forProvider:
region: us-east-1
dbInstanceClass: db.t3.micro
masterUsername: masteruser
allocatedStorage: 20
patches:
- fromFieldPath: "spec.storageGB"
toFieldPath: "spec.forProvider.allocatedStorage"
Developer Experience
apiVersion: database.example.org/v1alpha1
kind: PostgreSQLInstance
metadata:
name: my-db
namespace: my-app
spec:
storageGB: 50
Use case: Centralized template management.
/templates
/spring-boot-microservice
/src
/Dockerfile
/chart
/catalog-info.yaml
/mkdocs.yml
/react-frontend
/src
/Dockerfile
/nginx.conf
/python-data-worker
/src
/requirements.txt
Use case: Encouraging best practices via Backstage.
catalog-info.yamlUse case: Keeping documentation close to code.
# mkdocs.yml
site_name: My Service Docs