Skills
What I work with, and how well
Grouped by the job the tool does rather than by vendor. Core means it has been run under real load and its failure modes are familiar. Working means it has been used in delivered work. Familiar means enough to be useful, not enough to claim depth.
- Core14
- Working17
- Familiar2
Cloud
Primary platform is AWS, with certified Azure administration and some Oracle Cloud exposure.
5 entries
AWSCore
EKS, EC2, RDS, IAM, VPC, S3, CloudWatch, ALB, Route 53. Certified Solutions Architect Associate.
AWS SageMakerWorking
Pipelines, Model Registry, hosted endpoints.
Microsoft AzureWorking
Certified Azure Administrator Associate.
Oracle CloudFamiliar
Generative AI and AI Foundations certified, 2024.
CloudflareWorking
Workers, D1, R2, DNS. This site runs on it.
Containers and orchestration
Docker as the packaging unit, Kubernetes and K3s as the runtime, Helm for anything deployed more than once.
5 entries
DockerCore
Certified Associate. Layer ordering matters more than people expect.
KubernetesCore
Deployments, services, resource limits, evictions.
K3sCore
Production inference workloads at Fusemachines.
HelmWorking
Packaging manifests so an environment difference is a values file.
kind and minikubeWorking
Local cluster work and CI test harnesses.
Infrastructure as code
Terraform for provisioning, Ansible for configuration. Different jobs, frequently confused.
2 entries
TerraformCore
Composable modules, remote state with locking, per-environment variables.
AnsibleWorking
Idempotent host configuration under a compliance regime.
CI/CD and GitOps
Pipelines that fail loudly and deployments that are reconstructible after the fact.
5 entries
GitHub ActionsCore
Build, scan, publish, deploy. Digest-pinned images.
GitLab CIWorking
Evidence-producing pipelines with gated production promotion.
Argo CDWorking
Declarative cluster state reconciled from Git.
Flux CDFamiliar
The other GitOps reconciler.
Git and GitHubCore
Also taught it. Branching, review and conflict resolution as a workshop.
Observability
Metrics, logs and the security telemetry that answers questions before anyone asks them.
5 entries
PrometheusCore
Service and model metrics, including model version as a label.
GrafanaCore
Dashboards that pair layers rather than isolating them.
CloudWatchWorking
Alarms on identified failure modes, not default dashboards.
CloudTrailWorking
API audit, and the record of what a workload actually called.
GuardDutyWorking
Threat detection on accounts carrying sensitive data.
MLOps
Model lifecycle, provenance and serving. A model service is a production service with an extra way to be wrong.
4 entries
Model lifecycleCore
Pipeline-driven training, metric-gated registration, approved-version deployment.
Experiment trackingWorking
Parameters, metrics and artefact URIs, including failed runs.
FastAPIWorking
Containerised inference services.
Model observabilityCore
Prediction distribution paired with request metrics.
Operating systems and networking
Linux as the substrate, plus the DNS and edge layer that fronts everything.
3 entries
LinuxCore
Debian, RHEL and Arch. Arch on the daily driver.
DNSWorking
Route 53, Azure DNS, Cloudflare.
Network segmentationWorking
Security groups that describe relationships, not addresses.
Languages and tooling
What the automation is actually written in.
4 entries
PythonCore
Pipelines, step code, inference services, automation.
TypeScriptWorking
Workers, generation tooling, this site.
BashCore
The glue. Still the fastest way to answer a question about a host.
SQLWorking
Hand-written, no ORM, in the Worker that serves this page.