It's 2023, major tech companies are laying off employees left and right, and I voluntarily quit software engineering.
Stick around if you want to know why I made this decision.
Let's start.
I felt I genuinely wasn't good at it
Many people will label not feeling good at something as imposter syndrome.
But deep down, I knew it wasn't just imposter syndrome.
I genuinely wasn't good at software engineering.
I had to take a hard and deep look in the mirror and evaluate whether software engineering was the right career for me.
I thought about quitting multiple times during my software engineering career, especially when things got complicated.
If you're a software engineer, you'll understand this feeling.
But I chose to stick with those software jobs, believing that, eventually, my situation would improve.
Unfortunately, it didn't. I felt I wasn't improving as a software engineer.
I received negative performance reviews, which led me to question whether software engineering was for me.
While software engineering is not all about coding, programming is at the core of this job.
Even though intensity beats talent, and anyone can learn to code, I still felt that programming as a job wasn't meant to be my path.
Related:Things I Wish I Was Told Before Becoming A Software Engineer
I felt there was no real impact
According to the Workplace Satisfaction Survey, 80% of professional programmers are unhappy. One in three respondents actively hates their job, while almost half survive in survival mode. This leaves only 20% of those who claim to be somewhat happy.[ShiftMag.dev]
Many will say that software engineering is a job that strongly impacts end-users.
In my day-to-day, I felt I had no impact.
I was getting requirements from engineering managers and product managers, and all I had to do was transform those requirements into code.
And that's it.
Most of the time, I lost the bigger picture of what I was doing and who I was doing it for.
I felt I was working for upper management rather than the end-users.
Always being bad at estimates
Part of being a great software engineer is giving reliable estimates and delivering on those.
Why are estimates critical?
For a software engineer, estimates have no value.
But they're crucial for middle and upper management to understand when they'll be able to see a product or feature going live.
Remember: software engineering is about business. Your worth as a software engineer is in the business value you add to the organization.
When I was a software engineer, I always gave the wrong estimates.
My estimates weren't reliable, and often, I felt that management wouldn't trust how I estimated the tasks.
Giving the wrong estimates, or even worse, being unable to estimate, causes middle and upper management anxiety.
I prioritized mental peace
As a software engineer, I struggled with switching off from work.
I was anxious that the code I deployed one day would present problems I must fix.
Or that the code I wrote would take down the site, creating a nightmare for the on-call engineer.
And yes, people say, "It's okay to make mistakes, " but some mistakes are not okay.
I wanted to tap into my strengths
I decided to leave software engineering for another career that would tap into my strengths.
I spoke to my mentors, people who work in different careers, and other friends, and I journaled for introspection to understand my core strengths.
I applied for roles where the primary skill necessary wasn't coding.
Therefore, technical writing, presales engineering and sales engineering would have been a good fit for me.
In the end, I landed a Technical Writing role.
What lessons have I learned during my time as a software engineer?
No one cares about your career as much as you do
You have to ensure that you're in charge of your career and that other people don't push you around.
You can't look to others. Your career is entirely up to you.[...]People will only care so much. You need to think of what you want to achieve in your career and life. Set a plan and work like hell to get it.[Forbes]
Adopt an abundance mindset
Always believe there is no need to tear others down to get ahead.
There are enough opportunities out there for everybody to succeed.
If you cannot seek a better organisational opportunity, look elsewhere.
Kindness always prevails
Multiple times, I needed to contact previous colleagues for reference purposes, and I was positively surprised by how, in the end, they remembered me as a kind person.
Ultimately, people will remember you for how you make them feel.
Learn new skills or have a side hustle
The transition from software engineering to technical writing was smooth for me because I've been writing consistently for almost two years.
This transition has taught me to continually add new skills to my toolbox to make career transitions easier.
Career progression doesn't have to be upwards
Many people believe that advancing your career means moving up the corporate ladder.
For a software engineer, this may mean becoming a senior, tech lead, principal, etc.
It doesn't have to be that way, though.
Career progression means that you use your skills to accomplish the goals you set for yourself.
Don't fake it 'til you make it
I've read countless times that "fake it 'til you make it" is the way to go about your career.
I disagree with this advice.
Confidence comes from competence. The best software engineers I know are competent.
Have integrity
There's nothing wrong with working a job because of the money.
The problem with this, though, is that eventually, you'll burn out.
Not everyone is lucky enough to be in a career they're extremely passionate about.
At least, you should aim at being competent in your job and doing things for the right reasons.
Key Takeaways
After reading this article, you discovered why I left software engineering and what I've learned.
This article didn't cover everything, though. If you want to learn more, subscribe to my FREE weekly newsletter. I hope to see you there!
Until next time!
๐๐พโโ๏ธ