The unlikely three virtues that make a good developer
In a time long ago one of my project leads expressed an idea that I've held strong to: have strong opinions weakly held. The point is to move fast when you have confidence, presuming you're correct until you hit a problem proving otherwise.
This mindset is how I improved my skills so quickly as a freelancer. While some may see my confidence as frustrating, it helps me rapidly become a stronger engineer. The speed and confidence I work with, and how fast I change course when wrong, are huge reasons I've come so far.
When I first heard of the three virtues of a great engineer, I worried I'd be an imposter lacking them all. But reading them, I realized not only do I possess them, I love these traits. The more I reflect, the more they capture what makes software engineers unique, and while seemingly negative, they have strong positives once understood.
First is laziness.
Crazy as it sounds, laziness drives better engineering. If we do busywork manually, we move slower than automating tasks efficiently. Software's purpose is working less to do more. Great engineers have some laziness, avoiding repetitive tasks.
Alone laziness has downsides, like not caring about quality. But combined with other virtues, it powerfully drives automation and efficiency.
Next is impatience.
Frustration when things are slower or harder than needed. For example I built an automatic lead generation for a client due to endless complaints that a common task was too complex. My impatience drove me to fix it so I could be lazier going forward.
But what motivates me to care and build quality solutions? That's the third virtue...
Last is hubris.
You should have pride in your work. Your impatience and laziness shouldn't prevent quality you're proud of. I've found most talented developers balance humility with enough hubris to be right and deliver.
These peculiar traits commonly yield great developers when combined. It's OK to be lazy, impatient, and proud if you use them to motivate delivering excellent software. They seem negatives, but together they're powerful drivers of growth and quality.
So don't fear your developer eccentricities - lean into them! With self-awareness, they can help you create software you're proud of efficiently.