A platform engineer with a diverse background of experiences. Hands-on building and operating scalable SaaS cloud-native systems for over 15 years as both an IC and leader.
Connect with me on LinkedIn.
- Core skills: Linux, Terraform, Docker and containers, Go (Golang), Python, CI/CD, AWS
- Developer but always remained close to infrastructure
- Possess an SRE mindset -- scalability, fault-tolerance, consolidating resources, monitoring and alerting
- Passionate about building and running world-class systems
- BS in Computer Science 1996
- Early career — Intel factory automation, Hewlett-Packard, a startup (’96-’11)
- MS in Computer Science 2001
- 12 years writing software for fixed wireless networks in US low-income and throughout East Africa, Haiti, The Philippines
- Co-founder of an ISP in Kenya (’13-’18)
- 5 Years as Platform Engineer at Specialized Bicycle Components (’18-’23)
- Principal Engineer at Blueboard, a SaaS startup (’23-’24)
- Experience at 4 startups
- Basic Go Things
- gRPC -- Hello World server in Go, clients in Go and Python
- Python + Go Things
- Kubernetes Things -- Hello world stuff (yes, I'm finally learning K8s after >6 years with AWS Elastic Container Service and Docker Swarm...)
- Simple example of how you might use Docker Compose to run a small Fast API server that can reach a Maria DB database
- Shell script to delete old branches
- Use Python in a GHA step
- Manage Cloudflare records
- Cloudflare maintenance page worker
- Other random notes and code snippets
- Shell script to tag a container with a semvar+sha
- List, Copy, Delete S3 Bucket
- A few things that I made to make copying a Postgres db from Heroku to RDS a little easier
- Trick GHA into revealing a secret
- Example of how you might lint in a GHA -- this example is for Terraform, but could be used to lint Python code with Ruff, etc.
- Full example of the context object
- If you must do a nested ternary
- Sort a 1Password Note
- I made this Python script to read Secure Notes from 1Password and push to GitHub Secrets -- this is very bespoke but is how we used 1Password Notes as the "source of truth" for env vars which were stored as GitHub secrets (environment, repository or organization) -- code was originally forked from someone else's project then heavily modified for my needs
- Do the above but in a GHA -- this is the way
TODO: Revisit and revise these projects before linking to them.
app-api-uploads
-- File uploadsapp-frontends
-- Hosting for React apps on S3 with CloudFront, etc.aws-alarm-infrastructure
-- CloudWatch alarms and monitoringaws-docker-swarm
-- VPC, subnets, EC2s, user data, etc.aws-elasticache-redis
-- Redisaws-guardduty
-- Sets up Guard Duty in 4 regionsaws-iam-accounts
-- Used to manage IAM jusersaws-postgres-rds
-- RDS Serverless v2backend-remote-state
-- Terraform for the Terraformgithub-manager
-- How I managed GitHub... this one needs a lot of refactoring