Balancing New and Familiar Tech
After developing this site, I realized that getting started was the hardest part.
When I set out to build it, I had a clear vision for what I wanted to accomplish. I also had a very ambitious set of tech I wanted to learn along the way.
Learning It All
I was inspired with this project to roll my sleeves up and get close to the metal. At work, I design web apps with React, Meteor, Mongo, and several other tools that make life easy. I was hungry to balance it with a real challenge.
To me, that meant:
- Writing blog posts in markdown
- Converting markdown to html**
- Handling my own routing by picking Express back up
- Learn a new templating language
- Deploying to a higher "professional standard"
- Handling image hosting
- Optimizing images
- AND MORE
Basically, I wanted to hand code as much as I could without any help!
Getting Stuck
This went nowhere fast.
After getting an Express server up, I was deep in decision fatigue. I was having to make unique choices about so many details. I had to learn as I went with a greater number of libraries and tech. I had very little that felt familiar in front of me.
And so I was stuck motivationally.
Pareto's Principle
If you're unfamiliar, Pareto's Principle is the idea that roughly 80% of consequences come from 20% of causes, and vice versa.
The principle is popular in business. 80% of revenue comes from 20% of clients.
I realized while in the weeds that it's a fair ratio for development and learning new tech, too.
80/20 Rule in Tech
So, ego got checked at the door. I scaled back the "newness" of what I was doing by picking familiar tech - React, Next.js, hosting on Vercel, AWS.
I then experienced the sweet spot of balancing new technologies and features while building the site.
My final balance with this tech looked like this:
- I was familiar with 80% of what I was working with. (React, Next, Vercel, AWS)
- I was unfamiliar with 20% of the tech I was working with (Hosting Markdown and Image Optimization)
I found flow with that ratio. It's when I was trying to work with more of a 50/50 balance that I lost momentum. When I was trying to get back into Express with a new templating language, serving static files, AND all of the above new tech, I stalled.
Finding the right balance kept me productive, happy, and still learning a great deal along the way.