The Curse of Experience
I have some good news and some bad news.
The good news is that Software Engineering gets easier with experience! Hooray! 🥳
The bad news is that Software Engineering eventually gets much more difficult with experience. Boooo! 😭

For example, let's pretend that we're building a static web site, and we want to insert an image. Here's how we'd tackle this objective as a novice Software Engineer:
- Overcome a sudden wave of imposter syndrome.
- Google "How do I add an image to html?"
- Click on the first search result.
- Copy the example
<img />tag and modify it to fit your needs. - Success!!! 😎
In contrast, here's how we'd tackle this objective as an experienced Software Engineer:
- Crack our knuckles.
- Begin typing out the
<img />tag. - Suddenly realize that the image we want to use is very large, which could potentially lead to a poor end-user experience.
- Decide that optimizing each image individually will be too much work in the long run, and therefore we should leverage a modern web development framework to handle this detail.
- Spend a few hours investigating the latest and greatest web development frameworks.
- Finally settle on Next.js and begin implementing a rapid prototype.
- Discover that Next.js's Image Optimization pipeline is currently incompatible with static site generation. WTF??!? 😤
- Switch gears and begin building a new prototype using Gatsby.
- Discover that Gatsby requires almost every 3rd-party library to be wrapped with a corresponding Gatsby Plugin, which could quickly lead to dependency hell. AAARRRRRGGGHHHH!!!! 😭
- Overcome a sudden wave of imposter syndrome.
- Return to the Next.js prototype and begrudgingly deactivate its Image Optimization pipeline. 🤬
- Finish typing the
<img />tag that you started in step 2. - Success!!! 😎
- Recall that Next.js provides its own
Image Component
that might be superior to the vanilla
<img />tag. - Begin investigating the benefits of Next.js's Image Component...
- Watch the months and years fly by.
- Die of old age. ☠️
This, in short, is the Curse of Experience. You become hyper-aware of every little problem that will eventually need to be solved, so you spend a huge amount of time laying "the proper groundwork" for each project. You then either decide that the project isn't worth the effort, or you just die of old age. Your choice!