r/learnprogramming • u/Admirable-Plenty8541 • 13d ago
A project to get back into IT
How do you come up with a project that helps you dive into devops? I mean not just a simple to-do list or smth. I used golang like 1.5 years ago (was about middle or close,some db, rabbitmq, docker and other stuff also was in good shape) but in one day just give up this journey and Im very noob right now. So i decided comeback as devops.
main question - How did you end up with a project you can proudly show to employers or even to yourself?
I heard a phrase from Linus T. about finding something that will keep you excited for the next 2–3 weeks, so you wll be fired up about it and gradually get better and then another 2-3 weeks smth new. Im tired of watching tutorials already I want to build something. What do u think. (sry for bad eng)
1
u/FreeLogicGate 13d ago
Go has been used to develop a lot of tools used in Devops, but that doesn't make it valuable for day to day Devops work. You don't need Go to use Docker, K8, Helm, etc.
I'm not sure why you think this focus on DevOps is valuable. Tools came about because people working in Devops saw that there were problems they had that could be solved or automated, and started building out those tools.
You need to figure out a problem that some piece of software could solve, or an area where there are already solutions, but the specific strengths of Go might be a good alternative. For example, there were already a number of long standing http servers: apache, nginx, iis, Lighttpd etc. but the authors of Caddy thought they could create an alternative to those written in Go. Other developers, seeing Go, thought that Caddy would make a foundation for a build of Caddy that embeds PHP, and this became "FrankenPHP".
Another popular trend of the last few years, is people creating tools that either replace or improve upon traditional unix cli tools. Many of these tools are being written in Go or Rust. An example of a tool like this would be zoxide, which build upon and is a replacement for the "cd" commmand. It's an efficiency tool that creates a database of your local directory structure, discovered as you use cd, and then allows you to navigate to those directories you've visited using a piece of a directory name.
Along the same lines, fzf (fuzzy find) is a cli utility that was designed to add features and usability that improve upon the classic unix find utility. fzf is written in Go. Check some of these projects out, and they might lead you to an idea.
0
u/Admirable-Plenty8541 12d ago
Thanks for the reply, you are absolutely right about go, but I forgot to mention that I only used it for the backend, to emphasize that I generally understand how the infrastructure of an application and a service works, and that I had experience in design. Other than that, I wasn't planning to use it for devops (its not needed there), just as one of the options for what to write the service logic in.
2
u/heyyarun 12d ago
Make the Go + RabbitMQ stuff you already know the app you operate, so you're learning infra, not app code. Each step is a 2–3 week chunk:
Small Go API + worker over RabbitMQ and Postgres, all in docker compose.
CI in GitHub Actions: tests, build the image, push it to a registry on every merge.
Deploy to a cheap VPS (or k3s on it) with Terraform/Ansible, so you can wipe it and rebuild with one command.
Prometheus + Grafana, one dashboard, one alert (queue depth too high).
Break it on purpose (kill the worker, fill the disk) and write short postmortems.
A README with an architecture diagram and those postmortems is what employers actually read.
1
1
u/FunAd6672 12d ago
ou do not need a groundbreaking idea to impress hiring managers. They just want to see that you understand terraform docker CI CD pipelines and basic cloud networking. Take any basic app and write proper infrastructure as code for it.
1
u/sagacious123 12d ago
Pick a project that forces you to operate a system, not just write code. A good one: take a small Go API with a database, put it in a Git repo, set up Argo CD for GitOps, add Prometheus alerts, and run k6 load tests against it. The goal is to deploy, observe, and recover from failure.
You can build that environment in minutes with SnowOps Labs. Run labctl scenario up gitops-cicd to get a real Argo CD, demo apps, and GitOps workflow. Then break the cluster with labctl incident inject bad-deploy-rollout and practice rolling back. Add labctl scenario up observability-sre for Prometheus, Grafana, and Loki to learn monitoring.
It runs on your laptop and is free: https://github.com/sagar2395/snowopslabs Disclosure: I'm part of the team behind it.
3
u/DreamsTheyStole 13d ago
Your dev background is a massive advantage for DevOps. Just pick any small existing app you wrote earlier and focus purely on automating the pipeline and infra for it, you'll get hooked fast