14 Quick Career Lessons After 10+ Years (and Lots of Trial and Error) as a Software Engineer
21 Oct 2024 #careerCoding is the easy part of software engineering.
We don’t get an instruction manual to survive the corporate world and navigate the “people and interactions” side of software engineering.
After over 10 years, 3 jobs, 2 “we have to let you go,” and lost of trial and error, these are 14 lessons I’ve learned while navigating a career as a software engineer:
1. You Can Lose Your Job At Any Time
You can’t control it. A pandemic, a recession, or anything else. But you can control: your online presence, emergency fund, and side income.
2. Detach Your Sense Of Meaning From Your Work
Work gives value and meaning.
But you’re not your work. You’re the books you’ve read, places you’ve visited, and people you’ve met. You’re your connections, experiences, and knowledge.
You’re more than a job.
3. Build Multiple Sources Of Income
A rental property, stock portfolio, or digital products. You name it.
Don’t rely only on your salary and don’t live paycheck to paycheck. There’s no safe job. See #1.
4. Always Be Ready To Leave Your Current Job
If you wait for a layoff to take action, it’s already too late.
Grow your network, have your CV updated, and keep your “tell me about yourself” muscles in shape. Yes, hiring is broken.
5. Change Jobs Often
Or at least, don’t stay too long at stagnant jobs.
Otherwise, your CV will become outdated, your interviewing skills will get rusty, and you will leave money on the table.
6. Climbing The Corporate Ladder Is A Myth
Anyone can add or remove steps in the ladder. Or remove the entire ladder. The best ladder to climb is the one you build for yourself.
A new title comes with more meetings, extra hours, and the same salary. Instead of optimizing for a title, optimize for a lifestyle.
7. Vacations Don’t Change An Unfulfilling Job
Neither do pay raises.
They only move a “death sentence” a couple of months ahead.
8. You Don’t Have To Feel Miserable
If you don’t feel like getting out of bed to work at that place, make a change. Find a way to motivate yourself and keep learning. Or look for “greener pastures.”
9. You Don’t Get Burned Out By Doing Too Much
But by doing too little of the things you care about. (Jim Kwik, brain coach)
And seek help when people around you start to be affected by your burnout.
10. Software Projects Don’t Fail Because Of Programming Languages And Tech Stacks
Nope! They fail because of poor communication and unclear expectations. The same as marriages. Even unclear expectations are a communication issue.
11. Don’t Be A Hero. Be A Team Player
If you are the only one who knows or does something in your team, you’re being a hero.
It feels great when you are the one who saves the day, but being a hero is a trap. A hero can’t get sick, go on vacation, or be promoted. Be a team player instead.
12. The Minute You Learn Something, Teach It
That’s from Show Your Work by Austin Kleon.
13. Don’t Ask Someone Who’s Leaving To Finish An Important Task At Work
As soon as he leaves, something will happen to the task he finished: an unexpected issue, a change in requirements, or a new scenario nobody saw coming. And he will be the only one who knows how to handle it. Too late. He’s already gone.
14. The More Senior You Get, The Less It’s About Coding
There’s more than coding:
- Team dynamics
- Project management
- Inter-team communication
- Scope and deadline negotiations
- Managing stakeholders’ expectations
There’s more than only source code in a text editor.
Parting Thought
Hoping and praying without taking action is a bad career strategy. Instead, define what you want from your career. Money? Connections? Recognition? Create a career plan that reflects that, pick the right jobs, and always have an escape plan.
“Your career is your responsibility, not your employer’s” — Clean Coder by Uncle Bob.
Refactor your coding career with my free 7-day email course. In just 7 emails, you’ll get 10+ years of career lessons to avoid costly career mistakes.