gitlab ci · pipelines · runners · gitops
GitLab CI/CD Consultant
I help engineering teams get more from GitLab CI — faster pipelines, reliable deployments, self-hosted runners, and GitOps delivery that actually works in production.
the problem
Common GitLab CI problems
Pipelines are slow
30–45 minute builds are killing developer velocity. Caching is broken or non-existent.
Pipelines are fragile
They break in unexpected ways and nobody wants to touch .gitlab-ci.yml for fear of breaking everything.
Runners are mismanaged
Shared runners are slow, self-managed runners are misconfigured, and scaling is manual.
Deployments are still manual
CI builds the artifact, but someone still SSHes in to deploy it. There's no true CD.
You've outgrown basic GitLab CI
DAG pipelines, child pipelines, and dynamic configs exist — but nobody knows where to start.
Self-hosted GitLab is a burden
Upgrades are skipped, backups are uncertain, and the ops burden sits with whoever set it up.
the output
What I deliver
- ✓Pipeline redesign — fast, reliable pipelines with proper caching, parallelism, and only what's needed
- ✓Self-hosted GitLab runner setup — Kubernetes executor, Docker executor, or shell runners
- ✓Autoscaling runner fleet on Kubernetes with the GitLab Operator or Helm chart
- ✓GitOps delivery — automated deployments via Flux or ArgoCD triggered from CI
- ✓Dynamic pipelines — rules, includes, child pipelines, and matrix builds
- ✓Review environments — per-branch ephemeral environments that deploy and tear down automatically
- ✓Pipeline security — secrets management, SAST, dependency scanning, and container scanning
- ✓Self-hosted GitLab hardening — HA setup, backup strategy, and upgrade planning
tooling
Tools I work with
I use self-hosted GitLab CI in production — Docker builds, Helm deployments, BIND9 zone validation, and Terraform plan/apply all run through GitLab CI in my own homelab.
engagement models
Typical engagements
Pipeline Audit
1–2 daysReview your existing .gitlab-ci.yml files. Written report with performance bottlenecks, reliability risks, and improvement recommendations.
Pipeline Redesign
1–2 weeksRewrite and optimise pipelines for one or more projects — caching, parallelism, DAG, and proper stage separation.
Runner Fleet Setup
3–5 daysSelf-hosted Kubernetes runners with autoscaling, custom Docker images, and cost-effective resource management.
GitOps Delivery
1–2 weeksEnd-to-end automated deployment from GitLab CI to Kubernetes via Flux v2 — including environment promotion and rollback.
credibility
Why work with me
Enterprise GitLab
Managed large self-hosted GitLab at Waypoint Trading Solutions
Kubernetes runners
GitLab Kubernetes executor with autoscaling and custom images
14+ years
Cloud and infrastructure engineering
GitLab CI in production, every day
My homelab uses self-hosted GitLab with CI pipelines for Docker image builds, Helm chart deployments to k3s, BIND9 DNS zone file validation, and Terraform plan/apply with approval gates. Multi-project pipelines with triggers, not a toy project.
See the homelab architecture →explore more
Related services
Freelance DevOps Consultant
Broader DevOps support across infrastructure, cloud, and automation.
Learn more →Terraform Consultant
CI/CD for Terraform — automated plan/apply pipelines.
Learn more →Kubernetes Consultant
Kubernetes GitOps targets that your GitLab CI deploys to.
Learn more →AWS Cloud Consultant
AWS architecture and infrastructure your pipelines build and deploy to.
Learn more →questions
Frequently asked questions
Do you work with GitHub Actions or Bitbucket Pipelines?
Yes, though my deepest expertise is in GitLab CI. I can design and optimise pipelines in GitHub Actions or Bitbucket, but GitLab is where I've spent the most time and have the most context.
We're on GitLab SaaS, not self-hosted. Can you still help?
Yes. Most pipeline work — caching, DAG, child pipelines, runner setup — is the same whether you're on SaaS or self-hosted. Runner management and administration differ, but pipeline design doesn't.
How long does a pipeline redesign typically take?
Usually 1–2 weeks for a focused scope covering 3–5 pipelines. Larger codebases with dozens of pipelines take longer, but we typically start with the highest-traffic pipelines first.
Can you help migrate from Jenkins to GitLab CI?
Yes. Jenkins-to-GitLab migrations are a common engagement. The approach is usually to run both in parallel, migrate pipelines incrementally, and decommission Jenkins once confidence is high.
Do you manage self-hosted GitLab instances ongoing?
For ongoing management I'd recommend setting up the infrastructure properly with a managed upgrade process and backup strategy, rather than relying on a consultant for day-to-day operations. I can design and hand over the operational runbooks.
get in touch
Ready to fix your CI/CD?
Whether it's slow pipelines, broken runners, or missing deployments — let's talk through what you're dealing with.