Posted on

My employer recently posted a position for a new DevOps Engineer. I was not actively involved in the hiring process but since this person would be joining my team we spent about 45 minutes with each of the finalist candidates. What was fascinating, however, was what the interviewing candidates AND my teammates thought DevOps means. I am writing this for the Early Career Fellows on my team. This may not be canon but my goodness it is what I think DevOps is. What is important to remember, it is heavily cultural. Yes, It does include tooling but most of DevOps is cultural. The idea of DevOps is to create a new way of working in respect to how different teams work together. No more blame-game, like “the operator has rolled out the wrong release” or “the developers’ new version is broken” or when it comes to DevSecOps: “the security guy is annoying us again with his attack vectors and lists of CVEs”. A mindset shift has to take place such that these sentences cease to exist. The members of the team have to realize that they are in the same boat and that each member is an integral and valuable part of the team. Statements like those written before have to be banished out of the minds of the team members and, in the best case, out of IT in general. All team members are responsible for the software they develop, operate and protect. In fact you don’t need to read past here.

The journey to becoming a DevOps engineer varies depending on your background and career aspirations. This guide along with this curriculum is tailored for those that will work at my employer.


What is DevOps?

At its core, DevOps is about bridging the gap between development and operations to create a collaborative culture, accelerate software development cycles, and implement effective tooling. Here's a breakdown:

1. Fusion of Development, Operations, and Security

DevOps fosters a culture of collaboration between developers, operators, and security professionals. Key aspects include:

  • Cross-functional teams: Combine diverse expertise into cohesive units.
  • Shared knowledge: Promote mutual learning and understanding.
  • Unified mindset: Adopt a team-first approach with a "we're in this together" mentality.
  • Eliminate blame culture: Replace finger-pointing with shared responsibility.

Mindset shift: "United we stand, divided we fall – we are one team!"


2. Speeding Up Software Development Cycles

DevOps emphasizes accelerating the journey from code changes to production delivery through automation. Key components include:

  • Continuous feedback loops: Quickly validate code changes with automated tests, static/dynamic analysis, and deployment simulations.
  • CI/CD pipelines: Implement robust Continuous Integration (CI) and Continuous Delivery (CD) to streamline development workflows.

Example feedback includes:

  • Successful test execution.
  • Static code analysis results.
  • Deployment success validation.

3. Proper Tooling

While tools like Kubernetes and Jenkins are often associated with DevOps, they are not the essence of DevOps—they are enablers. The focus should be on adopting a continuous improvement mindset while leveraging the right tools to streamline workflows.

Key takeaway: Tools like Ansible, Puppet, Kubernetes, API gateways, or service meshes support DevOps but are not DevOps themselves.


Choosing Your Path

There are three primary career paths within DevOps. Choose based on your strengths and aspirations. Remember these are not set in stone and these are the authors observations of the universe.


Path 1: The DevOps Team Creator

When to choose this path:

  • You're great with people and communication.
  • You thrive in building teams and fostering collaboration.

Learning Path

  1. Foundational Skills:

    • Learn Git basics: Understand Git Flow and branching.
    • Master collaboration platforms: GitHub, GitLab, etc.
    • Develop communication skills and workplace processes.
    • Learn Agile principles (e.g., Scrum, retrospectives).
  2. Leadership Skills:

    • Practice Value Stream Mapping (VSM).
    • Gain technical knowledge from team members (e.g., AWS, cloud services).
    • Adopt and implement DevOps best practices.
  3. Recommended Reading:

    • The DevOps Handbook
    • The Phoenix Project
    • The Three Ways: Principles of DevOps
  4. Certifications:


Path 2: The CI/CD Engineer

When to choose this path:

  • You’re a problem solver and a strong team player.
  • You’re eager to dive into technology and improve workflows.

Learning Path

  1. Essential Tools:

    • Master Git workflows (Pull Requests, GitHub Flow, GitLab Flow).
    • Learn CI/CD solutions: Jenkins, Tekton, ArgoCD, GitHub Actions.
    • Understand YAML/JSON and declarative configuration.
    • Master Markdown.
  2. Development & Automation:

    • Learn shell scripting (Bash, ZSH) and GNU/Linux tools (sed, awk, tr).
    • Learn POSIX
    • Dive into build/package managers: NPM, Maven, CMake.
    • Explore OCI containers: Podman, Docker. My preference is Podman.
    • Learn about Deployment Strategies
  3. Networking & Security Basics:

    • Understand HTTP protocols (HTTP/2, HTTP/3).
    • Learn RBAC, encryption, SSH, and deployment strategies.
  4. Certifications:

    • Jenkins Pipeline Certification
    • GitLab CI/CD Advanced Training

Path 3: The DevOps Tools Specialist

When to choose this path:

  • You’re a technology generalist interested in leading strategic initiatives.
  • You enjoy mastering diverse tools and managing complex systems.

Learning Path

  1. Core Systems Knowledge:

    • GNU/Linux tools (sed, awk, cat).
    • POSIX-compatible shells (Bash, ZSH).
    • Kubernetes and distributions (OpenShift, Rancher). - no really, I said that. :wink:
  2. Advanced Tools:

    • Master service meshes (e.g., Istio), databases (e.g., PostgreSQL), and ELK Stack (Elasticsearch, Logstash, Kibana).
    • Understand cloud-native tools like Kafka and serverless platforms.
  3. Certifications:

    • Kubernetes: CKA, CKAD, CKS
    • Linux Professional Institute: LPIC-1, LPIC-2
    • AWS Certified DevOps Engineer

DevOps Engineer Certification Path

Pursuing certifications validates your expertise and opens career opportunities. Recommended certifications include:

Linux Professional Institute:

Cloud Certifications:

Kubernetes:

  • Certified Kubernetes Administrator (CKA)
  • Certified Kubernetes Application Developer (CKAD)
  • Kubernetes Security Specialist (CKS)

Red Hat:


Conclusion

Choosing a DevOps career path depends on your core strengths and goals. While some thrive in creating teams, others excel in building efficient pipelines or mastering tools. The categories above provide a roadmap to structure your learning and development.

Key Advice:

  • Reflect on your strengths and areas of interest.
  • Start small and gain hands-on experience.
  • Continuously learn and adapt to stay relevant in the evolving DevOps landscape.

"For the things we have to learn before we can do them, we learn by doing them." — Aristotle

The journey to becoming a DevOps engineer is dynamic and rewarding. Start today, and let your curiosity and dedication guide you.