Discover more from CoderCo
The Ultimate Pathway to DevOps Revamped
How to get started in DevOps? Resources, advice, and a pathway you can follow to get you started and find your foot as a DevOps Engineer, Platform Engineer, Cloud Engineer, or Infrastructure Engineer.
This pathway has been reviewed and backed by Engineers from Google, AWS, Microsoft, Apple and more!
Table of contents
Chapter 1: Introduction & My Journey 😃
Chapter 2: Why am I writing this? 💭
Chapter 3: Testimonials 🗣️
Chapter 4: What is DevOps/Platform Engineering? 🛠️
Chapter 5: How much do DevOps/SRE/Platform Engineers earn? 💰
Chapter 6: Pre-requisites & clarifications 💡
Chapter 7: The Pathway 🛣️
Level 1 (Fundamentals) - Cloud I (AWS or Azure), Linux, Git, Networking
Level 2 (Infrastructure & Containers) - Cloud II (AWS or Azure), Terraform, CICD, Docker, Kubernetes
Level 3 (Scripting & Coding) - Golang/Python
Level 4 (Monitoring & Infra Management) - Monitoring, Helm, Ansible, SRE
Level 5 (Advanced DevOps) - Testing infrastructure, Cloud Native CNCF, Security, Serverless, GitOps, Cloud-native networking, Advanced monitoring, Chaos Engineering and System design.
Chapter 8: Certifications 🎓
Different types of certs (hands-on or MCQ based)
Recommended certs (Cloud, K8s, Linux and more)
How to study for certifications
Chapter 9: Preparing for your first role 💼
Preparing your CV/resume
Networking & Socials (LinkedIn & Twitter)
Practising interview questions & mock interviews
Appendix (Learning resources) 📚
Pathway communities and reviewers
😃 1. Introduction & My Journey 😃
My name is Mohamed Abukar, and I am a Senior Platform Engineer.
In this article, I aim to address in depth a common question: “How can I break into the booming field of DevOps if I don’t have experience or a degree?”
With only a Mechanical Engineering degree, I have worked as a Senior Platform/DevOps Engineer at reputable companies like the Big 4, Capgemini, and Trainline. And so, I want to share my advice on how you can break into (and succeed in) this fast-paced industry.
First and foremost, I am grateful to God for providing me with this opportunity to share my knowledge and experiences for the benefit of others.
As the saying goes:
“It’s said that a wise person learns from his mistakes. A wiser one learns from others’ mistakes. But the wisest person of all learns from others’ successes.”
💭 2. Why am I writing this? 💭
Many individuals, from many different backgrounds, have asked me how I got into DevOps. Inspired by their curiosity and the desire to help others, I decided to write this article as a resource for anyone looking to embark on a journey in the tech industry. For many, the idea of entering this field can be daunting, considering the vast amount of knowledge to acquire. However, I assure you that with focused dedication over a period of 3-6 months, you can land a solid entry-level, junior, or graduate position as a DevOps, Cloud, or Infrastructure Engineer.
To clarify, there are various methods to pursue a tech role. Here, I will be sharing my experience and providing one of the fastest and most effective pathways to secure a good DevOps role. This roadmap has been tried and tested by many individuals, and I have included testimonials from those who have successfully followed this approach.
While boot camps, degree programs, internships, self-study, and other methods are available, this pathway combines the easiest and most well-structured approach to get you started.
By following this pathway, you will not only gain technical knowledge but also develop essential qualities such as:
Eagerness to learn
Persistence and resilience
Adaptability and flexibility
Remember, many others have successfully navigated this path before you, so do not doubt yourself or give up too early. Keep pushing forward, and if you have any questions, feel free to reach out!
Thanks for reading CoderCo! Subscribe for free to receive new posts and support my work.
🗣️ 3. Testimonials 🗣️
I am incredibly grateful to the individuals who generously shared their testimonials about their experiences with the DevOps pathway.
I would like to extend a special thanks to Abdurahman Abukar, Faisal Momoniat and Yaser Bensiali for sharing their success stories and highlighting the value this pathway has brought to their careers. Your feedback and support are truly invaluable, and I’m thrilled to have played a part in your journey towards professional growth and achievement.
“The DevOps pathway has been a game-changer for me! 🚀 It helped me land an amazing role in DevOps and empowered me to upskill and grow. From diving into Linux fundamentals and Git to exploring networking, Terraform, Docker, Kubernetes, GitHub Actions, Helm, Python, and Ansible, I've gained the knowledge and certifications that have boosted my confidence and opened doors to exciting opportunities ⭐. I can't thank this pathway enough for the invaluable support and guidance it has provided me on my journey towards success in the DevOps world. 💪🏽🔥
Special thanks to its creators ❤️”
DevOps Engineer @ Credera, Abdurahman Abukar “My brother”
“As a data professional who has set his career pathway more on the technical side, guides like this are crucial for additional mandatory learning. Data engineering isn't merely tables and SQL. Data engineers need to have an understanding of infrastructure, DevOps and the cloud to develop and deploy solutions. I believe this guide will aid data engineers in de-risking their careers“
“As someone without a background in tech whose career changed into DevOps, this pathway has been fundamental in both securing my first entry-level role, and upskilling to where I'm at today. There's a myriad of resources online but finding a clear, well-written pathway has made the whole process much more efficient and allowed me to invest my time more wisely, as well as identify areas where I can gain a competitive edge in my work. Especially the more advanced topics like CI/CD, monitoring and SRE. Massive thanks to Mohamed for this excellent guide and all his hard work“
🛠️ 4. What is DevOps/Platform Engineering? 🛠️
You can google this word for days and try to understand the meaning of this commonly used buzzword, but I will save you the research time (but by all means feel free to read up on it) :
DevOps is a software development approach that combines development (Dev) and operations (Ops) teams to streamline the software delivery process. It promotes collaboration, communication, and automation between these traditionally separate teams.
DevOps is not a specific job title or role, but rather a set of practices and principles that can be applied across a variety of roles in software development and IT operations. Anyone involved in the software development and delivery process can adopt a DevOps mindset and apply DevOps practices in their work, including developers, testers, operations engineers, product managers, and others.
What does this mean?
Let’s say, you have developers. Their job is to create features. Then you have IT operations, and their job is to deploy those features. (This is an oversimplification, but just bear with me) The potential disconnect between these two roles arises due to their distinct priorities.
Developers focus on delivering new features to meet user demands and stay ahead in the competitive market. They may not always consider the potential impact on the infrastructure or the operational challenges that could arise from frequent changes.
On the other hand, the operations/infrastructure team aims to maintain stability, scalability, and reliability. They tend to be cautious about implementing changes that might disrupt the existing system.
Ultimately, finding a balance between creating new features and maintaining operational stability is essential for the success of any software project. When developers and operations/infrastructure teams work together harmoniously, understanding and respecting each other's objectives, they can create a more efficient and reliable software delivery process.
This is where DevOps came into play.
DevOps aims to meld development and operation — Dev + Ops = DevOps.
By adopting DevOps practices, organisations can achieve faster and more frequent software releases, improved quality, and increased customer satisfaction. DevOps emphasises automation, infrastructure as code, and a focus on constant learning and improvement.
However, some will argue and say that “DevOps Engineer” is not a thing and say that “DevOps is a way of working”. Technically, they are correct but the term has developed and is now often used freely by many large organisations.
Other role titles related to DevOps are Platform Engineer, Infrastructure Engineer, Cloud Engineer and Systems Engineer. Regardless of all this, the opportunities in this field are abundant, with recruiters reaching out daily.
Then you have Platform Engineering and SRE.
Site Reliability Engineering (SRE) is a software engineering approach that ensures systems are reliable and perform well at scale. It combines software engineering and operations expertise to maintain system reliability. Platform engineering, on the other hand, focuses on building and managing the foundational infrastructure and tools that support software development and operations. SRE emphasises system reliability, while platform engineering covers the broader aspects of building and maintaining the development platform. Both aim to create robust and scalable systems, with SRE focusing on operational aspects and platform engineering on the overall development ecosystem.
✅ Join our Linux and Shell Scripting Course on Amigoscode
Are you enjoying our Linux series so far and wish to dive deeper? Check out our comprehensive Linux and Scripting Course available at Amigoscode. This course aims to equip you with the knowledge and skills to navigate the Linux environment confidently and utilize its robust scripting capabilities.
Whether you're a beginner starting your Linux journey or a seasoned user looking to brush up on your skills, this course has something for everyone. The Linux and Scripting Course are taught by experienced instructors who will guide you on your Linux and Scripting journey. They have designed the course with real-world scenarios in mind, helping you to grasp concepts quickly and apply them effectively.
The course covers everything from basic Linux commands to advanced scripting techniques. By the end of it, you will have a deep understanding of Linux and be proficient in scripting, a valuable skill in today's tech landscape.
To enrol in the Linux and Scripting Course, simply follow this link. Investing in this course means investing in your future. Elevate your Linux and scripting skills to the next level with Amigoscode today!
💰 5. How much do DevOps Engineers earn? 💰
While not everyone is solely motivated by salary, job stability and long-term career progression can be strong driving factors. In the midst of the pandemic, many people experienced job scarcity, increased competition, and the realisation that holding a degree alone might not be enough to stand out in the crowd. Discovering the field of DevOps and its potential opened doors to a better livelihood for many individuals. The attractive salaries associated with this field serve as an additional source of motivation.
Now let's move on to the exciting part!
Disclaimer: As I am based in London, UK - the salaries I mention will be based on this location. The US, the rest of Europe and other parts of the world will vary so do your research.
Here are the approximate salary ranges for DevOps Engineers in the UK:
Entry-level/Junior DevOps Engineer:
Salary Range: £35,000 to £50,000 per year
Mid-level DevOps Engineer:
Salary Range: £50,000 to £80,000 per year
Senior DevOps Engineer:
Salary Range: £80,000 to £100,000+ per year
Principal Engineers/Engineering Managers
Salary Range: £120,000+
Please note that these figures are rough estimates and can fluctuate over time. I recommend checking platforms like Glassdoor and consulting with recruiters who specialize in the tech industry to get more accurate and up-to-date salary information.
While salary is not the sole measure of success, it is an aspect worth considering in your career journey. Remember, the salary figures mentioned here are intended to provide a general idea and should not be considered definitive or current. Focus on your passion, continuous learning, and honing your skills, and the financial rewards will follow.
Now, let's delve into the upcoming chapters, where we will explore practical steps and valuable insights to kick-start your career in DevOps!
Thanks for reading CoderCo! Subscribe for free to receive new posts and support my work.
💡 6. Pre-requisites & clarifications 💡
Now, let's dive straight into the roadmap to follow! But before we begin, there are a few important prerequisites and clarifications to keep in mind:
It is recommended to use a Mac or a Linux machine. If that is not possible, a Windows machine will also suffice. Aim for a machine that gets the job done without going overboard. An i5 machine for Windows or Mac is sufficient. Avoid overspending on this equipment, as when you start your first job, your workplace will provide you with a suitable laptop
In what order should I learn the topics listed in the pathway?
It is best to follow the order of levels, starting from Level 1 and progressing upwards. Level 1 covers the most fundamental concepts, which are essential knowledge for every Engineer. Not familiarising yourself with these concepts will make it challenging to perform your daily DevOps work effectively.
When do I apply for jobs?
Once you have completed Levels 1 and 2, you can confidently start applying for your first role. After completing these two levels, engage in practical projects and proceed to Level 5.
What are the rest of the levels for?
Levels 3, 4, and 5 are included for those who wish to pursue additional learning and expand their skills after securing their first job. However, there is no pressure to complete Levels 3-5 before landing your first role. Levels 1 and 2 provide a solid foundation to get started.
🛣️ 7. The Pathway 🛣️
Level 1 (Fundamentals)
Basics of Linux Command Line
Navigating directories & manipulation (ls, cd, mv, cp, mkdir, touch, echo)
Process monitoring (ps, top, lsof)
Package management (apt, yum, dnf)
User and group management (useradd, usermod)
User/group permissions (chmod, chown, chgrp)
Text editors: Vim, nano (move around vim and how to exit vim)
Networking & Troubleshooting tools (netstat, ps aux, ping, dig, traceroute, nslookup)
Text processing (grep, awk, sed)
Setup your own local Linux VM using VirtualBox/Vagrant or in the cloud
Basics (cloning, ssh setups etc)
Resolving merge conflicts
OSI Model (Layers 1 to 7)
Forward vs Reverse Proxy (Load Balancers)
Cloud I: AWS or Azure (learn AWS or Azure, only 1 and not both!) 🌩️
Cloud vs On-prem (Fundamentals)
Cloud benefits, security etc (Fundamentals)
Shared responsibility model (Fundamentals)
Cloud definitions (scalability, availability, elasticity, virtualisation) (Fundamentals)
Networking (AWS VPC, Azure VN & more) (Fundamentals)
Compute services (AWS EC2/Azure VMs etc) (Fundamentals)
Storage services (AWS EFS/EBS/S3, Azure Files/Azure Blobs) (Fundamentals)
Database services (AWS RDS/Azure SQL, AWS Aurora/Azure SQL Serverless, AWS DynamoDB/Azure Cosmos)
Security (IAM, Secrets Manager etc) (Fundamentals)
At this level, you now have a good understanding of the fundamentals. You are now ready to progress to Level 2!!
Level 2 (Infrastructure & Containers)
Cloud II: AWS or Azure
Containers (AWS ECS/EKS, Azure AKS)
CICD (AWS Code Deploy/Commit/Pipeline/Build, Azure DevOps)
Monitoring (AWS CloudWatch, CloudTrail, Azure Monitor)
IaC (AWS CloudFormation, ARM, Bicep) Serverless (AWS Lambda, Azure Functions)
Terraform backend & state locking
Vars and modules Using TF with common providers
Terraform commands (tf init, plan, apply, fmt, validate, destroy, import, refresh)
Create your own Terraform module and use it in different environments (prod, staging, dev etc) - Project
What is CICD
How CICD fits into DevOps
Using CICD to automate processes
Writing pipeline YAML/Jenkins files etc
Using CICD for building, testing and deploying apps
What are containers. Containers vs VMs.
Writing Dockerfiles (FROM, COPY, RUN, ADD, CMD)
Docker commands (docker build/run/tag/push/pull/inspect/ps etc)
Docker compose (multiple containers)
Advanced Docker (security in Dockerfiles - image size, user perms, fewer layers etc)
What is K8s
How is it different to Containers
Understand K8s architecture and components (kube-api, scheduler, nodes, etcd etc)
Understanding K8s resources (pods, deployments, services, network policy, rbac, namespaces, PVCs, ingress etc)
Scaling, rolling updates
Canary & Blue-Green deployments
The CKA/CKAD exam (A big bonus!)
K8s in the Cloud (EKS/AKS/GKE)
After this stage, I would highly recommend you prepare your CV, apply for jobs and practice mock interviews.
Level 3 (Scripting & Coding)
Learn 1 language. I would recommend you start with Python. Once you get good at Python, look into Golang.
Scripting & Coding (Either Golang or Python) 👨🏽💻
Control flow (if/else, loops)
Contribute to open-source projects written in the language you are learning.
Level 4 (Monitoring & Infra Management)
Monitoring (Prometheus, ELK, New Relic, DataDog) 👀
How monitoring connects to all these
When to use it
Setting up alerts and monitoring initially
Pager Duty and alarms
Responding to alerts and alarms
On-call and how it works
Setting up ELK (ElasticSearch, Logstash, Kibana), New Relic and DataDog clusters from scratch
Monitoring ELK, New Relic graphs and data.
What is Helm. How does it link to K8s.
Managing deployments and K8s resources using Helm
Common helm commands (helm install, upgrade, rollback, repo add/update/list, list, env, plugin, create, lint, pull)
Creating Helm charts from scratch and customising them
Look into Kustomize (alternative for Helm)
What is Config management? Different types? How is it different to Terraform/IaC?
Using Ansible galaxy
Using environment variables
Automating server update/config with Ansible
Integration with other providers
Ansible testing (molecule framework) - Advanced
Post-mortems and documentation
Incident response & incident management
Error budgets, service monitoring and alerting
SRE at Google
At this point, I recommend building 1-2 projects by yourself to apply what you’ve learned in Level 4 and in previous levels.
Level 5 (Advanced DevOps)
Testing infrastructure & integrations 🏗️ 🧪
Terratest (Testing Terraform modules)
Terragrunt (Wrapper, Dependency Management & Reusability))
Ansible molecule testing framework (Testing Ansible roles)
Learn more about Cloud Native Technologies 🌩️
Look into CNCF projects (graduated + incubating)
Automated security testing
Static scanning (Checkov, Trivy)
Advanced CI/CD & GitOps 🔄
GitOps: ArgoCD, FluxCD
GCP Cloud Functions
Chaos Engineering ⚡️
Cloud Native Networking 🌩️ 🌐
Ingress controllers (Nginx ingress, Traefik)
Global load balancing
Advanced Monitoring 👀 👀
Distributed Tracing (Jaeger, Zpikin)
Advanced log management: ELK (Elasticsearch, Logstash, Kibana), Splunk, Graylog
Time Series Databases: InfluxDB, Prometheus
APM (Application Performance Monitoring): New Relic, Dynatrace, AppDynamics
System Design 🖋️🏛️
Forward/Reverse proxies, load balancing
Databases & DB architecture (replication, sharding, indexing etc)
Pub/Sub, Event-driven architecture
Level 5 is endless and I can keep going! Tech is an ever-evolving field. You are not expected to know everything but you are expected to be ready to learn new things every day.
Remember to keep exploring emerging tools and technologies as the DevOps landscape continues to evolve.
Continuous learning and staying up-to-date with industry trends are essential for a successful DevOps career.
🎓 8. Certifications 🎓
Certifications combined with hands-on learning are crucial for a successful career in DevOps. You can’t do certifications without any projects, otherwise, it’s just like graduating from university without work experience. I am a big fan of certifications as they provide structured learning and allow you to explore services or tools you may never come across daily. They offer a valuable framework to deepen your understanding and demonstrate your commitment to professional growth.
Studying for certifications with hands-on projects helps you gain practical experience and enhance your marketability. This comprehensive approach allows you to showcase your skills, solve real-world problems and stand out among other candidates.
Certifications validate your expertise, but hands-on projects are essential to solidify your learning and acquire practical experience for a thriving DevOps career.
Recommended certification guide for DevOps Engineers :
A few years back, I began collecting a list of all the certifications that I believe are worthwhile.
You can find this list on GitHub: https://github.com/moabukar/Recommended-DevOps-certs.
Cloud Certifications & Hands-on certs
Below are some of the top 5 list of certifications one should aim to do (especially if you are new to the career of DevOps:
AWS Certified Cloud Practitioner (CCP) - Highly recommended if you are new to IT
AWS Solutions Architect Associate (SAA) - Highly recommended
Certified Kubernetes Administrator (CKA) - Recommended when you reach the end of Level 3
Azure Fundamentals (AZ900) - Recommended ONLY if you are learning Azure.
HashiCorp Certified: Terraform Associate - Look into this when you reach Level 2.
How to study for these cloud certifications and pass the exams?
Image creds: AWS
Note: I have recommended specific resources and individuals. Note that I am not sponsored or paid to recommend rather they are recommendations based off my personal experience and quality of the courses.
Feel free to adjust your study patterns to suit your needs. Some of these steps I like to follow that have assisted me:
Pick an instructor. based on your goals. There are currently quite a lot out there: Stéphane Maarek (DataCumulus & Udemy instructor), Adrian Cantrill (learn.cantrill.io), and Andrew Brown (from freeCodeCamp & Exam Pro). They are all good instructors for AWS but with different teaching styles. If you are looking for an in-depth course, Adrian Cantrill’s course is very good. If you are looking to pass the exam with just enough knowledge, then Stéphane Maarek is your go-to instructor. Just a note, some of these courses are PAID. Towards the end of the article, I have recommended a few courses which are FREE and can be found on YouTube.
Once you’ve picked an instructor, choose the correct course and watch the whole course from beginning to end. Make sure to attempt ALL labs within the course especially the ones you don’t understand and do further reading on those.
Read AWS Docs — https://docs.aws.amazon.com/ - This is where all the official AWS information lies. Most, if not all instructors refer to this when teaching.
Extra practical labs are important to gain a better understanding of the topic. Practical labs can be found in some of the courses mentioned in point 1.
Attempt mock exams provided by instructors. I recommend Jon Bonso for the AWS Practice Exams — they will prepare you well for the real exams.
Make sure to not attempt the same mock exam more than twice otherwise you will just memorise answers.
Once you can score past 70/80% consistently in exams, book the real exams. The pass rate for most of them is in the range of 70–75%.
You can book the exam here: https://aws.amazon.com/certification/certification-prep/testing/
Note: These exams can be done at home. The prices vary based on the hierarchy (the foundational ones being the cheapest and vice-versa). Once you have completed the exam, you will receive a badge and a certificate usually within 24 hours, which you may share on your socials.
DISCLAIMER: The certificates alone will not land you a role. You must complete extra work like cloud projects, extra self-learning, and practice interviews. Remember, your technical skills are as important as your soft skills. The certificates do, however, open MANY doors and land you interviews!
Once you have completed one or two cloud certifications, don’t overdo it. Focus on learning the skills that are most vital in your current/future role.
I would recommend you to do a certification while doing Levels 1 & 2. If this is difficult, try to attempt them once you have finished both of these levels.
💼 9. Preparing for your first role 💼
Note: I have recommended specific resources and products. Note that I am not sponsored or paid to recommend rather they are recommendations based off my personal experience and quality of the courses.
Once you have completed Levels 1 and 2, you are ready to showcase your skills and apply for jobs. You are nearly at your goal now! This is the last hurdle between you and a DevOps role!
Prepare your CV📝
Crafting a well-designed CV is crucial, as it is often the first thing that recruiters or hiring managers see. A well-prepared CV can significantly streamline the application process. I recommend using a website called flowcv.io to create your CV. It saves you time by providing pre-designed layouts and helps you create an impressive presentation.
Your CV layout should include:
Your name and contact details
Links to your LinkedIn profile, GitHub repository, and other relevant social media platforms
A concise profile summary
Skills acquired through this learning pathway, including relevant certifications
Showcase your projects and educational background, keeping it simple and concise
Max 1 page
Hands-on projects (ideas) 📂
Working on hands-on projects is vital to reinforce your learning and demonstrate your skills. As an interviewer and hiring manager myself, I can tell you that a well-executed project on your CV or GitHub repository immediately earns you extra brownie points.
For example, consider creating your own cloud project, developing your Terraform modules, and testing them. Build your Kubernetes cluster using ArgoCD and implement monitoring. The possibilities are endless. Here are some examples of impactful DevOps projects you can attempt:
🔹 1. 𝙏𝙝𝙧𝙚𝙚-𝙩𝙞𝙚𝙧 𝙩𝙚𝙧𝙧𝙖𝙛𝙤𝙧𝙢 𝙖𝙧𝙘𝙝𝙞𝙩𝙚𝙘𝙩𝙪𝙧𝙚 𝙤𝙣 𝙩𝙝𝙚 𝘾𝙡𝙤𝙪𝙙: Build a scalable and secure infrastructure using Terraform on a cloud provider.
🔹 2. 𝘾𝙤𝙣𝙩𝙖𝙞𝙣𝙚𝙧𝙞𝙨𝙞𝙣𝙜 𝙖 𝙣𝙤𝙙𝙚𝙅𝙎 𝙖𝙥𝙥𝙡𝙞𝙘𝙖𝙩𝙞𝙤𝙣: Package your Node.js application into a container for easy deployment and scaling.
🔹 3. 𝙎𝙚𝙘𝙪𝙧𝙚 𝙖 𝙆𝙪𝙗𝙚𝙧𝙣𝙚𝙩𝙚𝙨 𝙘𝙡𝙪𝙨𝙩𝙚𝙧 𝙪𝙨𝙞𝙣𝙜 𝙄𝙨𝙩𝙞𝙤 𝙖𝙣𝙙 𝙊𝙥𝙚𝙣 𝙋𝙤𝙡𝙞𝙘𝙮 𝘼𝙜𝙚𝙣𝙩: Improve the security of your Kubernetes cluster using Istio and Open Policy Agent.
🔹 4. 𝘼𝙥𝙥𝙡𝙮 𝙢𝙤𝙣𝙞𝙩𝙤𝙧𝙞𝙣𝙜 𝙖𝙣𝙙 𝙡𝙤𝙜𝙜𝙞𝙣𝙜 𝙨𝙤𝙡𝙪𝙩𝙞𝙤𝙣 𝙩𝙤 𝙤𝙣𝙚 𝙤𝙛 𝙮𝙤𝙪𝙧 𝙥𝙧𝙤𝙟𝙚𝙘𝙩𝙨: Monitor and analyse your application's performance and logs with Prometheus, Grafana, and ELK stack.
🔹5. 𝙄𝙢𝙥𝙡𝙚𝙢𝙚𝙣𝙩𝙞𝙣𝙜 𝘾𝙄/𝘾𝘿 𝙪𝙨𝙞𝙣𝙜 𝙂𝙞𝙩𝙃𝙪𝙗 𝘼𝙘𝙩𝙞𝙤𝙣𝙨: Automate your software development process with Continuous Integration and Continuous Deployment using GitHub Actions.
Original post: https://www.linkedin.com/feed/update/urn:li:activity:7024453144340230144/
Credits to the project creation to Abdurahman Abukar!
Large DevOps Project for the CV (AWS, Terraform, Git, Linux, CICD)
Create 2 modules in Terraform that can create a webapp that runs nginx (on an EC2 instance) and a module for a VPC (add all required parts such as NatGW, route tables and everything else). Using AWS. Using correct folder/directory strategy. Make sure you can access the site after (figure out how to do this)
Make sure the modules work and you can run on 3 different environments like prod, dev and staging.
Create a CICD pipeline to run your Terraform workflow (ideally with GitHub Actions) but you can use GitLab pipelines or even Jenkins if you want.
Make sure you use env vars for any credentials. I don't want to see any hardcoding of credentials.
Write Terratests for your modules (this is in Golang) or you can do unit tests in Python. Whichever you like but I recommend Terratests as it's a well known industry standard.
Createa a nice README markdown documenting all your work so that another user can run it.
Put all your work in a GitHub repo and commit it there. Use what is necessary like gitignore and pre commit configs. And anything else you deem useful and secure for the project.
Note: You can use chatGPT but make sure you understand what you’re writing and creating and can explain in an interview. I want to see your thinking and how you go about it. So that if someone asks in an interview, you can explain.
Networking & Socials 🤝
Networking is a crucial aspect of building a successful career in DevOps. Engage actively on platforms like LinkedIn, Twitter, or any other suitable platform of your choice to share your knowledge and contribute to the community. Each platform offers unique benefits, so choose the one that resonates with you the most. Remember, throughout your life, you will always be interacting with fellow humans, so developing networking skills is essential.
Your GitHub 🐙
Create a personal GitHub account and showcase all the projects you have worked on. This allows you to manage your code effectively and demonstrate your skills to potential employers. Feel free to explore my GitHub (https://github.com/moabukar) as an example.
Job application 💼
Everyone has different experiences but what works consistently is having focussed applications. Make sure your CV is reviewed by experienced Engineers or reach out to our supporting communities (Dee engineers, Somalis in Tech, Deen Developers) and we will happily do CV reviews for you. Once your CV is ready, try to get referrals from the companies you are looking to join - these referrals help you to get interviews. Once again, you must network for this to be possible. This is very important!! Reach out to recruiters on LinkedIn. Message employees who are already working in the companies you want to work for and get some insights.
One advice, expect many rejections as this will be your first role, this is normal. Keep applying and be patient. This is the final hurdle. Keep pushing till you get that offer!
To prepare for interviews, I have created a tech interview question bank (https://github.com/moabukar/tech-vault) that all engineers can benefit from. This resource will help you familiarize yourself with common interview questions and improve your problem-solving skills. If you can, try to get mock interviews done by other senior engineers from the community. This will really boost your interview skills and prepare you beforehand.
Appendix (Learning resources) 📚
Here is a list of links and courses compiled by Abdurahman Abukar, thanks to him! These are all FREE resources and we both do recommend them!
Linux Fundamentals in 11 hours: https://www.udemy.com/course/linux-mastery/
Git (Crash course):
Networking (YouTube playlist):
Terraform Course: https://www.udemy.com/course/terraform-beginner-to-advanced/
Terraform Exams: https://www.udemy.com/course/terraform-associate-practice-exam/
Kubernetes (CKA Prep): https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/
GitHub Actions (CI/CD):
Python Course (Tech with Tim):
Golang Course (Tech with Tim): https://www.youtube.com/playlist?list=PLzMcBGfZo4-mtY_SE3HuzQJzuj4VlUG0q
What is DevOps in simple terms?
Simply, DevOps is about making developers (the people who create software) and operations (the people who run it) work better together.
For more details, refer to Chapter 4
Do I need a computer science degree to get into DevOps?
No, you don’t need a degree. I personally didn’t do a comp sci degree and many of my peers & colleagues have either no degrees at all or degrees in various fields
What programming languages should I learn for DevOps?
What's the difference between Docker and Kubernetes?
Docker packages your software into containers. Kubernetes helps you manage those containers.
What is CI/CD and why is it important?
CI/CD stands for Continuous Integration and Continuous Deployment. It's a way to automatically test and deploy your code/app/software, making life easier.
Career Path and Learning
How long will it take to become proficient in DevOps?
It varies, but with focused learning, you can get an entry-level job in 3-6 months.
Is it better to specialize in one cloud provider like AWS, or should I learn multiple?
Start with one, like AWS, to get the basics. Then you can learn others as needed or when a job requires you to.
What are some good beginner projects to start with?
Check out DevOps Challenges in the Tech Vault repo » https://github.com/moabukar/tech-vault/tree/main/devops-challenges
Job Market and Roles
What job titles should I look for when searching for a DevOps role?
DevOps Engineer, Cloud Engineer, Systems Engineer, Infrastructure Engineer, Platform Engineer.
Is certification necessary for getting a job?
It can help but isn't mandatory. Experience and skills are also super important.
What's the difference between a DevOps Engineer and an SRE?
Both aim to make software reliable and fast. SREs often focus more on the reliability part.
Tools and Practices
What are some must-know DevOps tools?
Docker, Kubernetes, Terraform, and GitHub Actions are some popular ones.
What is "Infrastructure as Code" and why is it important?
It's writing code to manage your servers. Makes it easier to set up and fix things.
How does monitoring fit into DevOps?
Monitoring helps you keep an eye on how your software is doing, so you can fix issues before they get bad.
Community and Networking
Are there any DevOps/Engineering/Tech communities I should join?
Somalis in Tech
How important is networking (people) for a career in DevOps?
Pretty important. Knowing people in the industry can help you learn and find jobs.
Any recommended books, courses, or other resources?
"The DevOps Handbook"
TO ADD MORE Resources here or DM me.
Work-Life and Culture
What does a typical day look like for a DevOps Engineer?
It varies, but expect to code, attend meetings, and solve problems or tickets that come up.
General day (from start to end): Standup » Meetings » Pair Programming sessions » Individual session » More meetings » More coding » Watercoolers » End of Day
Is remote work common in DevOps roles?
Yes, many DevOps roles offer remote work options.
Pathway reviewed by Senior industry Engineers:
I would like to express my deepest gratitude to the esteemed senior industry engineers who meticulously reviewed this article, providing invaluable feedback and approval. Their expertise, insights, and meticulous review process have immensely contributed to the quality and effectiveness of this guide. I am truly honored and humbled by their positive remarks, which serve as a testament to the value and relevance of this pathway. I am grateful for their contributions in making this article a reliable and beginner-friendly resource. Thank you for your unwavering support and for helping make the world of DevOps more accessible to all.
“This is an awesome guide to getting started in technology in a DevOps environment. I wish I'd had such a clear roadmap of skills to learn when I started software engineering!“
“Mohamed and I overlapped while working at Trainline, however, I actually became familiar with his work through LinkedIn rather than the office. Although I haven’t tried the levels in his pathway myself, I have read the full article from start to finish, and I think it is absolutely fantastic!
I can imagine the levels he describes in Chapter 7 being extremely useful to many people. I love that he includes not only what you need to learn _before_ getting a job, but also what you can learn after that, to continue advancing your career.
I really appreciate his explanation of the term “DevOps”. I have always struggled to understand this term, and now I feel like I finally get it.
Most of all, I admire and respect Mohamed’s attitude of generous knowledge-sharing. I think the creation of this free curriculum guide, this pathway, is such a great idea. And it’s the first time I’ve seen something like it! With this pathway, he is making the field of software development more accessible - and thus, undoubtedly, making the world a better place.“
”In a nutshell, the creator of this roadmap is a champion in building and sharing quality content about DevOps. What sets him apart is his comprehensive approach not just the tools and projects but also his interview skills guidance. I know personally many he has helped land a job. His passion for software engineering, DevOps, and cloud computing and his commitment to helping others succeed is evident in everything he does. I believe if you are determined to follow this pathway you’ll see great results afterwards.”
“If you're looking to break into DevOps, this learning pathway is a solid bet. Designed by a seasoned DevOps engineer, it's thorough, user-friendly and has already helped plenty of people get their start in the field. It's not just about the theory - it packs in practical tips that you can really use. No matter what stage you're at, this guide can help you level up. Give it a go and you won't be let down.“
“The Ultimate Pathway is an excellent resource for anyone who doesn't just want to dip their toes in the DevOps pool, but swim in the deep end and stay there. Mohamed has carefully drafted a solid and gradual progression path for the budding engineer, highlighing all the competencies that you'll likely need to know for that first (or next) job, along with some essentials pointers on how to make yourself employable. If you want a career in DevOps but are struggling with your learning roadmap or interview success, this guide is for you.“
Pathway backed by:
Somalis in Tech
DevOps Bootcamp (COMING SOON) 👀
I am currently working on a full FREE DevOps curriculum for folks to learn and study from without the need for paid boot camps, paid degrees or courses. All for FREE at your comfort. Keep an eye out for this soon! 👀
Congratulations on reaching this point! The learning journey in DevOps is never truly complete and the key is to keep learning and growing. Having a solid foundation in fundamental skills will undoubtedly increase your chances of landing a junior role. Now, imagine the multitude of opportunities that await when you have a strong grounding in more advanced tools and concepts.
I sincerely hope that this article has been beneficial to you. If you have found value in it, please consider sharing it with others who may also benefit.
Remember, these insights are based on my personal learning experiences and others may have their own approaches to learning. It is important to recognise that everyone's journey is unique, so focus on your own path and always strive to be the best in whatever you do.
Once again, congratulations on making it this far! Your commitment and dedication to learning are commendable. Keep pushing forward and never stop learning in your DevOps journey.
If you have any questions or simply want to connect, feel free to reach out to me on LinkedIn. I would be more than happy to assist or even just have a friendly conversation :)