DevOps Portfolio Project: One App, Carried Through Every Step
By Branko Petric - Updated - About 4 weeks at 10 hours a week
The short answer
A DevOps portfolio needs one project, not ten tutorial clones. Use the app from this roadmap. Add a one-command deploy, an architecture diagram, a README that explains your tradeoffs, cost notes and two real postmortems. You should be able to defend each choice for 20 minutes. Plan on about 4 weeks at 10 hours a week.
Why the portfolio comes after Kubernetes
There is nothing new to build here, and that is the point. Since step 5, you have put one app on a server, in a container, behind a pipeline, on AWS, under monitoring and on Kubernetes. Each step added a layer to the same system. Now you package it so that a stranger can understand it.
One app also gives you better answers in an interview. With ten clones, you know each project for a day. With one, you can explain what broke in week 20 and how the design changed because of it.
What to learn, in order
- Clean up the repo. Remove dead files and secrets, and make sure a new reader can find things. Someone will spend a few minutes here at most.
- Get to a one-command deploy. Wrap your steps in one script or Makefile (a file of named commands). If a stranger needs you to explain a step, it is not finished.
- Draw the architecture. Show the parts and how traffic moves between them. A simple diagram that matches the real system beats a fancy one that does not.
- Write the decisions down. For each big choice, say what you picked, what you rejected and what would change your mind. This is the most useful part of the README.
- Add your cost notes. Say what the setup costs per month on AWS and how you found out. Say what you would cut first.
- Add your postmortems. Pick your two best from step 12. Real failures with clear fixes show more than a page saying that everything works.
- Practice explaining it out loud. Talk through the system for 20 minutes without notes. Then ask a friend to push back on your choices.
- Record a walkthrough. A short screen recording lets people see the project work without running it.
What goes in the README
Put these in order, and keep each one short:
- One sentence on what the app does, and one on what the project demonstrates.
- The architecture diagram.
- The commands to deploy and destroy it, with what you need installed first.
- Your decisions and tradeoffs, such as why a local Kubernetes cluster and not a managed one.
- What it costs, and what would have to change before it could take real traffic.
- Links to the postmortems and the video.
Be honest that this is a practice system with no real users. Listing what is missing, such as a second region or a tested failover, shows you know the difference.
What to skip for now
- More small projects. A second clone adds little that the first project does not already show.
- New tools you have not needed so far. You can add them at work, when a real problem calls for them.
- A personal website. A clear GitHub README does the job.
- App features, a nicer UI, and high availability that a practice app does not need.
Common mistakes
- Copying a tutorial and changing the name. Interviewers can often spot it within a few questions about why it was built that way. Your own failures and changes are what make it yours.
- A README that only lists tools. "Uses Docker, Terraform and Kubernetes" says nothing about your judgment. Say why you used each one.
- Leaving secrets in Git history. Deleting a file does not remove it from old commits. A key that was ever public needs to be replaced, not just deleted.
- Claiming scale you never had. Do not call a practice app "production" or invent traffic numbers. One follow-up question will expose it.
- Leaving it running and getting a bill. Keep your billing alarm from step 8 on, and run your destroy command when you finish.
Your project
This page is the project. Finish the steps above on your existing app, then ask someone who has not seen it to try your README. Fix each place where they get stuck. Next, take it to step 15, where it becomes the main thing on your resume.
You are done when
You can do all of this with no notes. If you already can, skip this step.
- Someone else clones your public repo, follows only your README, and brings the whole system up. You do not help them.
terraform destroyremoves everything from AWS, and your one deploy command rebuilds it from scratch.- A secret scan of your full Git history finds nothing real.
- A friend picks any line of your architecture diagram and asks why. You give a reason, and name one option you rejected.
- You record a walkthrough of 10 minutes or less, in which you deploy the app, break it, and find the cause.
Learn it and test it
Practice scenarios
- Deploys Are SSH + git pull at 5pm Friday. Why Change It?
The team ships by SSHing into prod and running git pull, often at 5pm Friday. A teammate says it has always worked. Defend what a real deploy needs without cargo-culting.
- Commit terraform.tfstate to the Repo So Everyone Shares It?
A teammate wants to commit terraform.tfstate to git so the whole team shares one state file. Defend the correct way to share Terraform state.
- Nightly Backups Run. Are You Actually Covered?
Automated backups have run for months. A teammate says you are fully covered for disasters. Defend whether you agree.
Common questions
How many projects do I need in a DevOps portfolio?
One is enough if it runs end to end and you can explain it. Ten tutorial clones show that you can follow instructions. One system that you have deployed, broken, fixed and rebuilt shows how you make decisions, and it gives an interviewer much more to ask about.
Does the app itself need to be impressive?
No. A small API with a database is enough. Reviewers will look at how it gets built, shipped, watched and repaired. Time spent on app features is time you are not spending on the parts this page tests.
Do I have to keep the project running on AWS all the time?
No. It will cost money while it runs, and a small bill is not worth paying just to keep a demo live. Tear it down and use your walkthrough video as proof. Being able to rebuild it with one command is a stronger signal, and you can show it live when someone asks.
Should I add more tools to my portfolio to match job posts?
Only if you can defend why the project needs them. A tool you added just to match a job post invites a question you cannot answer well. Being honest about what you left out, and why, reads better than a long list of logos.
Practice defending your decisions
DevOps Ledger is a scenario-based DevOps and SRE interview practice platform: you pick a real production incident, defend your decision in a chat against a senior-engineer AI that pushes back, and get scored against an answer key written before you started.
One payment. 12 months of access. No subscription, nothing renews.
Get full access - $19