Local AI Coding Agent with Ollama + Claude Code
2026 | AI Tooling, Local Dev | Ollama, Cline, Claude Code, MCP, Python, FastMCP
- Connected a local Ollama model (qwen3-coder 30B Q4) to both Cline and Claude Code so each can delegate routine coding tasks to it, no API cost
- Built a FastMCP server exposing three tools:
generate_code, write_tests, and refactor — registered globally so the server is available in any Claude Code session
- Bumped Ollama's default 2k context window to 16k via a custom Modelfile so the model can handle real file sizes without truncation
- Configured a launchd agent to pre-load the model at login, avoiding cold-start timeouts on the first tool call
GitHub Actions + Terraform Migration
2026 | CI/CD, Infrastructure | GitHub Actions, Terraform, AWS S3, CloudFront, OIDC
- Replaced manual Ansible deploys with a GitHub Actions workflow — push to main triggers a build, S3 sync, and CloudFront invalidation in ~60 seconds
- Authenticated the workflow to AWS via OIDC: GitHub generates a short-lived JWT at runtime, no long-lived IAM keys stored anywhere
- Migrated all infrastructure from CloudFormation to Terraform by importing every resource into state — nothing was recreated and the site stayed live throughout
- Used Terraform 1.10+ native S3 locking (
use_lockfile = true) — no DynamoDB table needed, despite what most guides still say
KCNA Lab
2026 | Kubernetes Lab Environment | Kubernetes, kind, Helm, Argo CD, Prometheus, Grafana
- Built a local Kubernetes lab on an M-series Mac (kind + Colima) covering all four KCNA exam domains
- Progressed from core objects (Pods, Deployments, Services) through Ingress, RBAC, and a full end-to-end app
- Packaged the final app as a Helm chart, deployed via Argo CD with GitOps auto-sync from GitHub
- Added Prometheus + Grafana for cluster observability using the kube-prometheus-stack
CloudWatch RUM Integration
2026 | Observability | AWS CloudWatch RUM, Cognito, CloudFormation, Ansible
- Replaced the CRC visitor counter with real browser telemetry: page load performance, JS errors, and HTTP monitoring
- Implemented Cognito unauthenticated identity pool to vend short-lived AWS credentials to the browser — no secrets in client-side code
- Deployed the RUM app monitor and Cognito stack via CloudFormation, automated with Ansible
- Worked through two undocumented gotchas: the RUM SDK is always served from us-east-1 regardless of region, and the app monitor domain must match the canonical www subdomain exactly
Cloud Resume Challenge
2025 | Serverless Web Application | AWS, GCP, CloudFormation, Terraform, Ansible
- Awarded the inaugural Admiral badge in the CRC bootcamp, a special honorary rank for bootcampers who exceed Captain-level achievement
- Deployed on both AWS and GCP to compare cloud providers and IaC approaches hands-on
- AWS: S3 + CloudFront with OAC, Lambda + DynamoDB visitor counter behind API Gateway, deployed via Ansible
- GCP: Cloud Functions v2 + Firestore visitor counter, GCS static hosting behind Cloudflare CDN, Terraform state in Terraform Cloud
- Secured with ACM + Route 53 (AWS) and Cloudflare free SSL (GCP); both fully serverless within free tier