Build a Stellar DevOps Portfolio with No Prior Experience
Tags: projects, devops, portfolio, cloud
Published: 2023-06-06 20:30:02

In our [last article](https://medium.com/@softwaresennin/comprehensive-guide-to-building-an-impressive-portfolio-from-scratch-5374f2e6d792), we talked about how important it is to have a **DevOps portfolio** and how it can effectively show possible employers your skills and expertise. 

Now, let's move on to the next step and find out the most important parts of a good portfolio. From choosing projects to how to document them, we'll give you important information and useful tips to help you make a portfolio that really stands out. Join us as we show you how to make an impressive DevOps portfolio that can lead to exciting job possibilities.

![text](https://github.com/apotitech/photos_document_md/raw/master/src/common/photos/become.PNG "text")

Using these criteria and investing a few hours per day for a few months, you can have a portfolio that is superior to 95 percent of individuals seeking their first DevOps job, and possibly even some individuals who already have jobs.

I'm guessing you have some basic skills and maybe have taken some classes, but no real-world experience, so you don't have much, if anything, to put on your resume.


Here we go!

## 1. Prepare learning Materials 

Participate in free learning platforms such as edX, Udemy, Coursera, and Udacity.

![text](https://github.com/apotitech/photos_document_md/raw/master/src/common/photos/roadmap.PNG "text")

First of all, you will need to learn how to find, read, and apply technical guidelines on Medium, GitHub, or vendor documentation like this one.

YouTube research will be very beneficial as well.

I am adding below some ones which I believe are really good, though they are not free.

1. [Coursera - "Continuous Delivery & DevOps" by University of Virginia](https://www.coursera.org/learn/uva-darden-continous-delivery-devops) 📌


2. [Udemy - "Docker Mastery: The Complete Toolset From a Docker Captain" by Bret Fisher](https://www.udemy.com/course/docker-essentials/) 📌


3. [Udacity - "Cloud Dev Ops Nanodegree Program"](https://www.udacity.com/course/cloud-dev-ops-nanodegree--nd9991) 📌

Don't start any courses; simply keep them on hand!

## 2. Create your Github account

> GitHub provides free hosting for your code and projects.

![text](https://github.com/apotitech/photos_document_md/raw/master/src/common/photos/gihub.PNG "text")

Please clcik here to check mine 

1. First, go to the **website**, click [here](github.com). 
2. Now go ahead and click on **sign up** and follow the procedure and **create your account**.

Include critical information as well as a **professional photo** in your profile.
You can start with a repository with `Hello World` as your initial pet project.

Now that we have an account on Github, please over the next few months, keep on adding more and more repos with complex code in them. 

To do this
1. You can add repos which contain code written by you. 
2. Or you can also add repos by searching on Github for any specific code or app (like zoom or anything else) whose code you want to read more on. Once you find their repos, you can go ahead and fork them (making a copy of them) to your account, in case you want to contribute to the developer's work or you just want to have a copy of it.
Create a repository for your course work and publish it to your account.

## 3. Create a Docker Hub Account

Once you have a github account, the next step is to create a free Docker Hub account to host your Docker images and showcase your containerized projects and applications. [Click here](hub.docker.com) to create it. 

![text](https://github.com/apotitech/photos_document_md/raw/master/src/common/photos/Docker-Images-Docker-Hub-Docker-File-and-Docker-Container-Docker-Tutorial-Edureka-768x310.png "text")

Using any dockerfile, go ahead and create a Docker image. Once it is done, you can go ahead and upload it to recently created Dockerhub account.

Please as you write any dockerfile, make sure that your code is designed to run as a service and that it adheres to all the best practices mentioned on the [Docker website](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/).

## 4. Create a Free Tier Cloud Account

Next, you need to have some resources in the cloud. 

![text](https://github.com/apotitech/photos_document_md/raw/master/src/common/photos/Logo_AWS.png "text")

Major cloud providers like Amazon Web Services (AWS), Google Cloud Platform (GCP), and Microsoft Azure offer a generous free tier with a range of services to explore. For instance, AWS provides a free tier account for one year, granting access to services such as EC2, S3, and RDS, to name a few.

Harnessing the potential of these free tier accounts is a fantastic opportunity to build and host a portfolio showcasing your personal and professional work. It also serves as a cost-effective cloud playground to experiment and learn.

To begin, simply sign up for an account with your preferred cloud provider. With AWS as an example, you can upgrade to a paid subscription or cancel after the first year, depending on your needs and preferences.

- AWS is the biggest cloud provider and in case you are looking for the Cloud provider with the biggest number of services, [click here](https://aws.amazon.com/resources/create-account/) to create an account on Amazon Web Services, AWS and get started.
- [Click here](https://cloud.google.com/free) if you'd prefer starting out with GCP, Google Cloud Provider. 
- Last but not least, [click here](https://azure.microsoft.com/en-us/free/search/), if you Microsoft Azure is what you'd prefer to start out with.

> **I would suggest to start out with GCP as they offer 300 USD credits to be used for 3 months for any first time user who has a Gmail account.**

Next, embark on your cloud learning journey by exploring the vast array of services offered by your chosen provider. Familiarize yourself with the command-line interface (CLI) and consider utilizing a handy cheat sheet for reference.

As you progress, integrate the resource configurations you've developed throughout your learning process into your code. Make use of Infrastructure as Code (IaC) tools like Terraform to spin up resources effortlessly.

If you have concerns about incurring unexpected costs on AWS, experiment with a tool called LocalStack, which enables you to simulate the cloud environment locally.

Put your skills to the test by creating and configuring DynamoDB tables, setting up Redis caches, and performing data insertions. Showcase your data management prowess by storing collected information on services like Amazon S3.

## 5. Think of and come up with an individual Project

To truly be able to showcase your DevOps portfolio, you will need to work on any projects of your own. An idea of such a project could be developing a simple web application, chatbot, or script to automate a procedure or even, building a CI/CD pipeline for a web application using Jenkins or GitLab CI as a personal project.

![text](https://github.com/apotitech/photos_document_md/raw/master/src/common/photos/project mine.PNG "text")

Working on such projects allow you to showcase your skills and knowledge.

At this point in the process, consider something very basic. As you advance, you will be able to take on more harder challenges.

> You can use whichever scripting language you choose to code it in.

The following are some additional ideas and suggestions about how to develop them for such a project:
Look at some job advertisements on Indeed and Glassdoor for junior DevOps and SRE positions, pick some tools and technologies, and then try to duplicate the work environment mentioned in the job descriptions.

Check out freelancing services like UpWork and Fiverr, filter one-time work to locate the cheapest ones, and try to model your own environment after those mentioned there.

Simply do some online research or ask someone on ChatGPT.
Choose a project with a relatively small scope that can be completed from start to finish in a few of days.

You will be able to add more complexities later.

## 6. Build a CI/CD pipeline

![text](https://github.com/apotitech/photos_document_md/raw/master/src/common/photos/cicd.PNG "text")

For your Devops portflio to attract all recruiters and HR managers, it is very much necessary for it to include at least one project where you build a CICD pipeline.

Once the pipeline is created, you will use your CI/CD pipeline to build and deploy your application. As a result, your understanding of continuous integration and delivery will be put to the test.

A suggestion would be to publish your work to Docker Hub by packaging it as a Docker image and then publishing it.

Then, using a different repository, deploy it to your cloud environment with something pre-configured, such as AWS ECS, GCS or any other.

There are many tools that can be used in building such a CICD pipeline. Please check my other articles for any such projects. I have many of such CICD pipeline projects that you can use in your portfolio and will keep on adding more.

![text](https://github.com/apotitech/photos_document_md/raw/master/src/common/photos/cicddd.PNG "text")

As a starter, you can build your CICD manually as you are still starting out. However, you will be obliged with time and as you get better, to start utilizing the IAC (Infrastructure as Code) tool, Terraform - created by Hashicorp. 

Later on, you'll be able to get creative and increase the complexity of your projects by utilizing EKS, Lambdas, and other such tools and services.

As your major goal at the present, focus on putting together an end-to-end pipeline for your project; this will allow you to successfully deploy and make your application accessible. Again, you can check my other articles for any such projects.


## 7. Present Your Projects

Now that the CICD pipeline has been created and is now complete. The next step is to make sure that not only you but others can also learn from the amazing job that you have just done. 

![text](https://github.com/apotitech/photos_document_md/raw/master/src/common/photos/present project.PNG "text")

First of all, remember that you code has to be stored in your Github account. Now make sure that you create thorough ReadME.md file for your Github repository and add as much information about the project as possible in that file. Now go ahead and upload it to your Github account, if it is not yet the case.

It is much easier to understand something visually than just words. So paint a picture of your project using tools such as [Miro](https://miro.com/signup/), https://www.lucidchart.com/pages/, [AsciiFlow](https://asciiflow.com/https://asciiflow.com/) or any other for this purpose. 

The next thing you now need to do is to make it available so anyone can access it and read it. There are many platforms that can help with that. The first you can use is [Medium](https://help.medium.com/hc/en-us/articles/115004915268-Sign-in-or-sign-up-to-Medium), which is one of the greatest Blogging options today. There are many other options such as [Ghost](https://account.ghost.org/signup), [Dev.to](https://dev.to/enter?state=new-user), [Hashnode](https://hashnode.com/signup) and the list goes on. 

Better still, create your website, your blog where you will be posting all the different projects that you will use to display your prowess to HRs and recruiters. There are many options for this as well, the most popular is creating your blog using [Wordpress](https://wordpress.com/). 

Now you can use one or ALL of these blog options to share your journey, your experiences, and the projects you've worked on with the community.

You could tell a fascinating tale about it; people would love reading it if it was presented in this style.


## 8. Join Communities

After you've done all of the processes required to package your work, it's time to present it to a larger audience and solicit feedback.

![text](https://github.com/apotitech/photos_document_md/raw/master/src/common/photos/community.PNG "text")

- Sign up for a couple different Slack communities. [Click here](https://slack.com/get-started), if you are not signed up on slack yet
- Contribute to the [Devops](https://www.reddit.com/r/devops/)/[SRE](https://www.reddit.com/r/sre/) reddit community.
- Signup to [StackOverflow](https://stackoverflow.com/) and join in conversations

> Please do join us and subscribe to my newsletter if you want to stay up to date on the progress of our community.

Please do not hesitate to share your links and solicit feedback.

When you join any community, make sure that you are familiar with and following the guidelines established by each community.

Keep your cool and remember to incorporate feedback into the project you're working on.

In most circumstances, this is where you will get the most feedback and suggestions on the next step to take.

Make an effort to participate in online and in-person local communities and meetup groups. They usually encourage speakers, especially those who are just getting started. If you take advantage of this, you will have the opportunity to speak in front of an audience.

After you've been involved in the community for a while, you should consider engaging in other types of free events, such as [hackathons](https://www.spiceworks.com/tech/it-careers-skills/articles/top-12-hackathons-to-participate-in-2023-2/) and bootcamps. These events will help you get in front of people and get work in ways that are not immediately obvious.

## 9. Begin making contributions to open-source projects
As you gain more experience, you should think about contributing to an open-source project.

> **Find an open-source project that piques your interest.**

![text](https://github.com/apotitech/photos_document_md/raw/master/src/common/photos/opensource.PNG "text")

Work on a project that combines your interests and your skill set.
Platforms like GitHub, GitLab, and Bitbucket all host open-source projects that anybody may access.

**Examine the project's documentation.**

Before you begin contributing to the project, make sure you fully understand the documentation.

You will leave with a thorough understanding of the project's objectives, architecture, and coding standards.

Look for issues that need to be addressed.
Examine the project's issue tracker to see if there are any issues or feature requests that you can help with.

Look for issues that are labelled as "beginner-friendly" or "a good first issue" to get started. Fixing an issue or adding to the documentation are two examples of relatively simple methods to contribute.
Make a fork of the project and apply the changes.

Create a fork of the project on your personal GitHub account, then modify it to meet the problem of your choice.

By conforming to the project's coding standards, you may ensure that your code is straightforward to maintain and neat.

**Make a pull request**

Once you've finished implementing your changes, you should submit a pull request to the project's maintainers. Include a full explanation of the changes you made as well as the reasoning behind them.

More changes may be requested by maintainers, and you must be willing to execute them if you wish to maintain good standing with them.

## 10. Sign up for an account on LinkedIn

Next thing to do is to create a professional profile of yourself. There are many platforms where you can do this but the most used Professional networking platform out there is LinkedIn.

![text](https://github.com/apotitech/photos_document_md/raw/master/src/common/photos/linkedin.PNG "text")

> [To follow us, please click here](https://www.linkedin.com/in/apotitech-b79097210/)

[Sign up for a free LinkedIn account](https://www.linkedin.com/signup) and then fill out your profile with relevant information such as your educational background, career experience, and skill sets.

Make a list of your accomplishments and post them all on your LinkedIn profile:

- Describe your extracurricular activities in terms of the professional experiences they provided. Include links to the GitHub repository or public links in your documentation if they are available.

- Include any freelancing experience you may have.

- Describe the activities you've taken and contributions you've made to open-source software.

- Include activities such as speaking engagements at meet-ups and other such events in the community's events.

Make relationships with other DevOps community members and discuss the projects you've been working on and blog pieces you've authored. 

[Please click here](https://www.linkedin.com/in/apotitech-b79097210/) to join our team on Linkedin, we regularly post updates on Linkedin which would be useful in your DevOps journey.

## Conclusion

The most important part of this article is how to build a DevOps portfolio **without prior experience**. I have laid out some procedures include creating GitHub, Docker Hub, and Free Tier Cloud accounts, as well as creating a portfolio of personal and professional projects and a free cloud playground. We also looked at how you can create a free cloud account on AWS with access to EC2, S3, RDS, and other services. After the first year, you can upgrade to a premium subscription or cancel.

In conclusion, building a DevOps portfolio without prior experience is an achievable goal by following a few key steps. By creating accounts on GitHub, Docker Hub, and a free tier cloud platform, you gain the necessary infrastructure to showcase your projects and skills.

Investing time in learning materials and participating in online courses from platforms like edX, Udemy, Coursera, and Udacity equips you with valuable knowledge and technical guidance. These resources, along with exploring documentation and guidelines from sources like Medium and GitHub, contribute to your growth as a DevOps practitioner.

Developing personal projects, such as building a CI/CD pipeline or automating procedures, allows you to demonstrate your skills and knowledge. Starting with basic projects and gradually adding complexity showcases your progression and adaptability.

Presenting your projects in a clear and accessible manner is essential. Utilize tools like README.md files, visual diagrams, and blogging platforms to articulate your work and engage with the community. Joining communities, participating in discussions, and seeking feedback are crucial for growth and improvement.

Contributing to open-source projects provides an opportunity to collaborate with others, gain experience in real-world scenarios, and establish a presence within the DevOps community.

Lastly, creating a professional profile on LinkedIn enables you to showcase your accomplishments, projects, and contributions. It also helps you build connections and stay updated with industry trends and opportunities.

By following these steps and investing time and effort into building an impressive DevOps portfolio, you can differentiate yourself from others in the field and open up exciting job possibilities. Remember, continuous learning and active engagement with the DevOps community will further enhance your skills and increase your chances of success.