How I Accidentally Became a DevOps Engineer

I didn’t study DevOps. I didn’t plan for it. I found out what I actually am when I built a CI pipeline for my genetic algorithm project and felt something click — harder than anything frontend or ML ever gave me.

Turns out I’d been doing DevOps for years without knowing it had a name.

The Pattern Was Always There

Looking back, the signs were embarrassingly obvious:

  • Built a Telegram bot so friends could access lectures — that’s infrastructure thinking, not app thinking.
  • Loved Linux for years but kept getting pulled toward web and AI because that’s what everyone said to learn.
  • Built and sold Notion templates at 15–16 years old — and never used them myself. I liked building the system, not using it.
  • Always building things for the sake of building them perfectly, not for personal use.

The Obsidian and Notion obsession isn’t separate from DevOps — it’s the same brain applied to a different domain. Organizing systems, automating workflows, making everything connect cleanly.

What I’d Already Built (Without Studying Any of This)

x-server — A home server on an old HP laptop running Ubuntu Server. Dockerized services: Nextcloud, Pi-hole, Portainer, Homepage dashboard. Hardened with SSH keys, custom port, Fail2ban, UFW, DNS-over-TLS. Solved CGNAT by choosing Tailscale over WireGuard after understanding why WireGuard wouldn’t work. Solved Syria’s CDN blocks by downloading packages on my main laptop and SCP’ing them to the server. Documented everything better than most company wikis.

Terminal Toolkit — A unified tool command launcher with a shared library system (lib/colors.sh, lib/ui.sh, lib/utils.sh, lib/config.sh), config overrides, and scripts for health checks, Docker cleanup, Ollama management, git workflows, backups. Built on top of Oh My Zsh and a lot of bash tricks. This isn’t a script folder — it’s a designed system with a shared library, a unified interface, and documentation. That’s software architecture.

GA-Optimized Decision Trees — A multi-objective genetic algorithm framework. 46–82% smaller trees with equivalent accuracy. 20-fold cross-validation, p-values, proper research methodology. Full CI pipeline. The CI pipeline is what revealed everything.

pdfpeek — Published on PyPI. Built in 2 days. 10-stage PDF extraction pipeline with confidence scoring. Tiered installs, CLI + Python API. Has a roadmap, comparison table, known limitations. Shipped like an actual product.

What I Actually Am

Not: Frontend developer. ML researcher.

Actually: A systems engineer and tooling builder who thinks in infrastructure, automation, and design systems.

The moment I stopped trying to be what everyone else was studying and looked at what I kept building on my own time, the answer was obvious.

See Also