All Articles

How to Contribute to Open Source as a DevOps Engineer (2026 Guide)

Open source contributions are the fastest way to build credibility, get noticed by top companies, and level up your DevOps skills. Here's exactly how to start — from finding projects to getting your first PR merged.

DevOpsBoysApr 10, 20266 min read
Share:Tweet

Open source contributions do something a resume can't — they show real code, real decisions, and real collaboration in public. Hiring managers at companies like HashiCorp, Grafana, and Weaveworks actively recruit contributors from the projects they maintain.

Here's how to start from zero.


Why It Actually Matters in 2026

Companies that build on open source (which is most tech companies now) want engineers who understand how these tools work internally — not just how to kubectl apply them.

A merged PR in ArgoCD, Kubernetes, or Terraform says: "I read the source code, understood the codebase, wrote a fix, and got it accepted by the maintainers." That's a stronger signal than any certification.

Practical benefits:

  • Visibility — maintainers recommend contributors for jobs regularly
  • Skill depth — you'll learn how Kubernetes networking actually works by reading the source
  • Portfolio — public GitHub profile with merged PRs is verifiable
  • Network — you meet senior engineers who work on the core tools you use daily

Choosing the Right Project

Don't start with Kubernetes core — it's massive, requires deep Go knowledge, and has a very long review cycle for first-time contributors.

Start with projects you actually use at a scale that's approachable.

Good first projects for DevOps engineers:

ProjectLanguageGood for beginners?Why
ArgoCDGoYesActive community, clear issues labeled good first issue
HelmGoYesMany small improvements, good docs contributions
GrafanaGo/TypeScriptYesDashboard, plugins, docs all need work
LokiGoYesSmaller codebase than Prometheus
VeleroGoYesBackup tool, well-documented contribution guide
cert-managerGoYesSecurity focus, active maintainers
KustomizeGoYesIaC tooling, many edge cases
ExternalDNSGoYesDNS provider plugins regularly added
OpenTelemetry CollectorGoYesMany receiver/exporter contributions wanted
Terraform ProvidersGoMediumAWS/GCP providers always need resource coverage

Avoid for first contribution: Kubernetes core, Prometheus, Envoy — very high bar, slow review cycles.


Finding Your First Issue

The good first issue label

Every major project labels beginner-friendly issues. Search:

github.com/argoproj/argo-cd/issues?q=label:"good+first+issue"+is:open
github.com/grafana/loki/issues?q=label:"good+first+issue"+is:open
github.com/helm/helm/issues?q=label:"good+first+issue"+is:open

These are specifically chosen by maintainers as suitable for new contributors. Start here.

Documentation improvements

Don't underestimate docs. Every project has:

  • Outdated examples
  • Missing configuration options
  • Unclear error messages
  • Broken links in README

Docs PRs get merged fast. They're valuable. And they force you to understand the tool deeply.

Bug reports you can reproduce

If you hit a bug using a tool, file a detailed issue with reproduction steps. If you can reproduce it, you can often find and fix it. You already understand the use case — that's half the work.

Look at recently closed issues

Search closed issues with label bug. These show you the type of problems that exist and how maintainers approach fixes — a great way to understand code patterns before writing your own.


Setting Up Your Development Environment

Most CNCF projects use Go. Install Go first:

bash
# Install Go (get latest from go.dev/dl)
wget https://go.dev/dl/go1.22.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin

Standard workflow for any Go project:

bash
# Fork the repo on GitHub first, then:
git clone https://github.com/YOUR-USERNAME/argo-cd.git
cd argo-cd
 
# Add upstream remote
git remote add upstream https://github.com/argoproj/argo-cd.git
 
# Install dependencies
go mod download
make build   # or whatever the project uses
 
# Create a branch for your change
git checkout -b fix/issue-1234-description
 
# Make your change, then run tests
make test
go test ./...

Always read CONTRIBUTING.md first — every project has specific setup steps, linting requirements, and test commands.


Making Your First Contribution

Step 1: Comment on the issue

Before writing code, comment: "I'd like to work on this. I'm thinking [approach]. Does this sound right?"

This does two things: (1) claims the issue so two people don't work on the same thing, (2) gets early feedback on your approach before you write code.

Step 2: Make a minimal, focused change

Your first PR should be small. One bug fix, one added test, one doc improvement. Not a refactor, not adding a feature that wasn't requested.

Maintainers review hundreds of PRs. A focused, 50-line PR gets merged in days. A 500-line refactor sits for weeks.

Step 3: Write tests

Most projects require tests for code changes. Look at existing test files in the same package — copy the pattern.

bash
# Run tests before submitting
go test ./pkg/... -v
make lint   # or golangci-lint run

Step 4: Write a good PR description

## What this PR does
Fixes #1234 — ArgoCD crashes when sync-policy is nil in Application spec

## Why
When Application.spec.syncPolicy is omitted, the sync controller
dereferences a nil pointer at line 245 of sync_controller.go.

## How
Add nil check before accessing syncPolicy fields.
Added unit test to prevent regression.

## Testing
- Added unit test in sync_controller_test.go
- Manually tested with Application without syncPolicy

Step 5: Respond to review feedback

Maintainers will leave comments. Respond to every one — either implement the change or explain why you disagree (politely). Don't go silent after submitting.


Non-Code Contributions (Underrated)

Not every contribution is code. These are equally valuable and often faster to get merged:

Improving documentation:

  • Fix outdated examples
  • Add a missing flag/config option to docs
  • Add a troubleshooting section based on issues you've seen

Adding examples:

  • Example Helm chart values for a common use case
  • Example Terraform config for a new resource
  • Example GitHub Actions workflow

Triaging issues:

  • Reproduce reported bugs and add reproduction steps
  • Label issues
  • Close issues that are fixed in newer versions

Writing tests:

  • Find code paths with low test coverage (go test -cover ./...)
  • Add tests for edge cases mentioned in comments

Building a Contribution Track Record

One PR is a good start. Ten PRs across two or three projects is a career asset.

Track your contributions:

  • Pin your most significant repositories on your GitHub profile
  • Add a Contributions section to your resume/LinkedIn listing the projects and what you contributed
  • Write a blog post about something non-obvious you learned while contributing (this gets shared in the community)

Many open source contributors get hired directly by the company behind the tool — HashiCorp from Terraform contributors, Grafana Labs from Grafana contributors, Weaveworks from Flux contributors.


Quick Start Checklist

  • Pick a project you use daily
  • Read CONTRIBUTING.md and CODE_OF_CONDUCT.md
  • Set up local dev environment, run tests, confirm they pass
  • Find a good first issue — comment to claim it
  • Make a small, focused change with tests
  • Open PR with a clear description
  • Respond to review feedback promptly
  • Repeat with a slightly harder issue


The best time to start contributing was six months ago. The second best time is today — pick one issue, claim it, and write the fix.


Related: DevOps Portfolio Projects to Get Hired | How to Get Your First DevOps Job as a Fresher

Newsletter

Stay ahead of the curve

Get the latest DevOps, Kubernetes, AWS, and AI/ML guides delivered straight to your inbox. No spam — just practical engineering content.

Related Articles

Comments