I didn't start with a computer science degree. I started with a music business, a stint in Army logistics, and a need to build systems that worked. When I transitioned into software, I wasn't looking for a job title; I was looking for a more efficient way to ship products.
The path to becoming a self taught senior engineer is often framed as a series of tutorials or a collection of certificates. It isn't. It is an accumulation of patterns learned the hard way. It is the transition from writing code to architecting outcomes.
Here is the four-year arc of what actually compounded.
Year 1: From Syntax to Shipping
In the first year, the temptation is to collect languages. You think that knowing the syntax of three different frameworks makes you more valuable. It doesn't. The only thing that matters in the beginning is shipping today.
I learned early on that the medium is secondary to the system. Whether I was managing eight-thousand SKUs in an e-commerce relaunch or writing my first Firebase callables, the goal was the same: move data from point A to point B without it breaking.
If you want to reach the level of a self taught senior engineer, you have to stop practicing and start building artifacts. A tutorial is a controlled environment; a production environment is a mess. You learn more from a failed deployment at 2 AM than from a hundred hours of video courses. I spent my first year working in public, documenting what broke and why. That documentation became the foundation of my internal operating system.
Year 2: Integration and the Money Layer
By the second year, syntax should be a solved problem. This is where you move into integration. You start to see that software doesn't exist in a vacuum—it exists to serve a business logic.
I stopped looking at myself as a developer and started looking at myself as an integrator. I was pulling from my experience in real estate operations and logistics to understand how code affects the bottom line. This is the "money layer."
To progress, you must understand:
- How a 300ms delay in cold starts affects user retention.
- Why profit-first architecture beats scale-first architecture for 99% of products.
- How to bridge the gap between a technical requirement and a business outcome.
When you can explain the financial cost of technical debt to a stakeholder, you are no longer just writing code. You are managing an asset.



