My Dev Skill Improvement Roadmap for First Half of 2022


This is a work in progress

My tentative goal is to do software engineer in DevOps and SRE. Even though I am familiar with the stacks needed according to https://roadmap.sh for a DevOps/SRE, I am admittedly scatterbrained and quite disorganized and impulsive when it comes to actually learning the material. I might slightly be attention deficient, who knows, probably from devouring internet contents at a breakneck speed.

So, let this post be a place where I get an anchor of some sort to remind what I need to do in order to achieve my mastery in the arts of orchestration (not the musical one!).

I embed the roadmap down here so that we don’t need to go back and forth.

<img src=”https://roadmap.sh/roadmaps/devops.png” width={{ width: ‘640px’ }} />

Owned skills

I shall list the skill stacks that I have already acquired:

  • Learn a programming language: (my best 3) c++, python, nodejs
  • Understand different OS concepts
    • Process management
    • Sockets
    • POSIX basics
    • Networking concepts
    • I/O Management
    • Virtualization
    • Memory/Storage
    • FS
    • initd
    • systemd
  • Managing Servers
    • OS
      • Linux-based: Ubuntu, Debian, RHEL, Arch
      • Windows
    • Terminal workflow
      • tmux
      • bash scripting
      • powershell
      • editor: vim
      • code compilation: gcc, make, gdb
    • Local System Monitoring and Process Management
      • ps, top, htop
    • Networking
      • ping, nmap, tracert, ufw/iptables, dig, netstat
    • Text manipulation
      • awk, grep, sed, sort, cat, echo, fmt, wc
  • Web Servers
    • IIS
    • Nginx
    • Apache2
  • Networking, Security, and Protocols
    • Email: SMTP, IMAPS, DMARC, SPF, DKIM
    • HTTP/S, FTP, SSL/TLS, SSH, port forwarding
    • OSI model, DNS, BGP
    • Whitelisting, DMZ, Firewall
    • Reverse proxy, load balancer
  • Infrastructure as Code (IaC)
    • Containers: Docker
    • Configuration Management: Ansible
    • Container Orchestration: Kubernetes
    • Provisioning: Terraform
  • Infrastructure Monitoring
    • Grafana, Prometheus
  • CI/CD
    • Github Actions
    • Azure DevOps
  • Logs Management
    • Splunk
  • Cloud Providers
    • Type 1:
      • AWS
      • Google Cloud
      • Azure
      • Heroku
    • Type 2:
      • Linode
      • Digital Ocean

Skills need to learn and improve

  • OS Concepts:
    • Threads and Concurrency
  • System Performance:
    • all
  • Web technologies:
    • WebSockets
    • REST api, CRUD
    • Webhooks
  • IaC:
    • Docker (more advanced)
    • Ansible (playbook to galaxy)
    • Kubernetes (still beginner)
    • Terraform (still beginner)
  • Networking and Security:
    • Reverse proxy (more advanced configs)
    • Load balancer (still beginner)
  • Logs management:
    • Splunk (more!)
  • CI/CD:
    • Azure DevOps
    • Circle CI
    • Gitlab CI
  • Cloud Providers:
    • AWS (backlog)
    • Google Cloud (learning Cloud Engineer associate)

Conclusion

I will need to try and complete at least the Google Cloud Engineer associate learning path, reinforce my knowledge on IaC tools and frameworks, learn more about Azure DevOps and Circle CI, and then finally complete a course on REST api framework (nestjs) and kubernetes.

My goals seem a bit outlandish and probably unachievable and I will probably fail, but at the very least, I have a good image of what I need to do (or so it seems).

On another note, I am tasked with a benchmark project for MLaaS providers by my research supervisor and so far, looks like it will play well into the whole shenanigans so I will have the chance to improve hollistically. We’ll see.