2017: Telegram bots in Python. Everything in one file. Deployed by SSH-ing into a $5 server and running python bot.py.
2018: Discovered Node.js. Rewrote everything. Thought callbacks were fine. They weren't.
2019: Built an image search engine. Learned about vectors, embeddings, and why databases are hard.
2020: Information retrieval systems. HNSW, semantic search, the stuff that turned into "AI" a few years later.
2021: Burned out. Built nothing for three months. Came back and everything was better.
2023: Rust. Rewrote my CLI tools. Realized I'd been thinking about software wrong for years.
2024: Apple Silicon, MLX-Swift, running models locally that used to need a data center.
What the list is actually doing
The through-line isn't a plan. I didn't have a five-year roadmap. I just kept building whatever interested me, and the interests kept changing. The only constant: I always shipped something. A year that produced a running bot, a search box, a CLI, or a model on my desk counted. A year I spent only intending to start did not make the list.
Each rewrite looked wasteful from the outside. The Node bots were the Python bots again. The Rust CLIs were tools I already had. I was not chasing a stack. I was running into a wall the last stack had hidden. Callbacks felt fine until they nested. A folder of images felt like a database until I needed nearest neighbors. A shell script felt like a tool until I wanted a type that could not represent a bad flag. The next year is usually the previous year's leftover pain, named properly.
Some years you ship. Some years you are still coming back. The three months off in 2021 are part of the same career as the $5 VPS. Stopping was a thing I did, then I shipped again. The list skips a year because that is what the work did. I do not owe the calendar a project for every number.
Curiosity moves. The $5 box taught me process and uptime. The image search taught me vectors. The retrieval work sat there until the rest of the world wanted a word for it. The laptop in 2024 runs what I used to SSH into a bigger machine to touch. I did not schedule that sequence. I followed the thing I wanted to open after dinner, and I did not leave it in a gist.
Seven years of following curiosity. Ship the thing in front of you. Let the next year argue with it.