My professional work is building React.js, Next.js, and TypeScript applications. Outside client work, I'm deliberately learning the systems that keep software running in production — Linux automation, deployment, infrastructure, and CI/CD. I don't have professional DevOps experience. This page documents that journey honestly, with every item marked Completed, In Progress, or Planned, and updated as it actually changes.
I don't want to memorize deployment commands — I want to understand why they exist.
I don't want to copy a Dockerfile — I want to know why each layer is there.
I'm not trying to become a DevOps Engineer overnight — I want to become a software engineer who understands production systems.
That's why most of what's below is labeled In Progress or Planned instead of a wall of green checkmarks — it's the accurate picture right now, not a placeholder for something else. Frontend is still my main craft; this is where I practice being useful past the browser.
Daily-driver Linux workflow, dotfiles, and workstation provisioning scripts.
Packaging my GNU Stow–managed dotfiles into a documented, public repo.
Why: I rebuild or reconfigure my environment often enough that redoing it by hand every time was wasting real hours — I wanted one command to get back to a working setup.
Bash scripts that provision and sync my Ubuntu workstation end-to-end.
Why: Manually re-provisioning a machine after every fresh install or migration got old — I wanted the setup scripted and repeatable instead of remembered.
Practicing real deployment workflows beyond one-click platform deploys.
A personal environment for practicing real deployment workflows.
Why: I wanted to understand deployment beyond a Vercel one-click deploy — what actually happens between a git push and a server serving traffic.
Containers and servers I'm learning to run and manage myself.
Containerizing a real project end-to-end.
Why: I want to understand why each layer of a Dockerfile exists, not copy one from a tutorial and hope it works.
Deploying and running a project on a real, self-managed VPS.
Why: I want to prove to myself I can run something on infrastructure I actually manage, not just platforms that manage it for me.
Automated build, test, and release pipelines.
Setting up an automated build-test-deploy pipeline for a personal project.
Why: I want to understand what a pipeline actually automates, instead of only ever clicking through a hosted platform's dashboard.
Written breakdowns of real problems solved and what I learned from them.
Short, dated notes from this second track as it develops.