Or seven lessons I learned after 20 years as a successful software developer. Either way, this is my story.
Like most software developers, I started to code for fun and then realised I wanted to do it as a job.
I started to earn money during university. I was creating websites in PHP and getting a beer money for it. I had a good time.
Then, I entered the real world. I was working for a company with customers, deadlines and responsibilities. Suddenly, the fun went away. I started to feel stressed and overwhelmed. I was making mistakes that cost time and money to fix. Customers were demanding and frustrated. It took me a couple of years to realise that this is not how I want to live. I felt stuck. I don’t want to do this for the next 40+ years! I tried to switch to a different technology, but the situation was the same: similar mistakes, similar stress, and no apparent way out.
Do the right things the right way
So I took a break. I looked back at the fun days and tried to figure out how to enjoy my work again. I realised if the stress of breaking things disappeared, I would have a good time again. This is where I discovered TDD, Agile and Ruby on Rails.
I learned how to write tests to prevent me from making costly mistakes. I also learned about Agile and how it could remove stress from deadlines.
This led me to a job change. I found a company that represented the values I was looking for. Agile, young and fun.
Who you work with matters more than you think
Values are one thing. Working with people that will help you grow is another. I was fortunate. I chose a company full of people with a similar mindset to mine. But with more experience. The speed I was learning was mind-boggling. Every day was exciting. Nothing was a mundane job. I met many people from different backgrounds with different points of view. This was an environment where you thrive.
Don’t be the smartest person in the room
But as it goes, people come and go, and one day, I realise that I’m the older team member with more experience and skills. Even though it was great to share my knowledge with others, I was learning slower than before. It was time to decide what to do next. I wanted more freedom over projects I worked on and more money. So, I left and started contracting for the same company. My income tripled overnight. I could choose what I want to work on or if I want to work with a different company. It was scary and exciting at the same time. I got exposed to more people with lots of experience. I was learning more again.
Age is just a number, becoming senior dev takes more than that
Then, one day, I made a mistake and lost the contract. I was considered as a senior developer with the responsibilities that come with it. But I was not a Senior developer. I had the technical knowledge. I had senior-level experience regarding the time. But my mindset was not that of a senior developer. My ego was in the way, and it cost me. It is a harsh lesson when they tell you are not good enough. You start doubting everything you do. You become sad, maybe even depressed. But if that’s what it takes, I’m glad for the lesson.
Talking matters more than coding
I had a few options. I could ignore what happened and keep on going as I had before. Or I could find out what happened to me and how to fix it.
I chose the second option. Once I knew what happened, I was determined to work on myself. I got a new contract. I had a chat with the CTO about the way how we are going to work together. And what they expect from me. I asked for feedback and made changes based on it. I had to talk to people around me. When I say talk, I don’t mean the usual banter. I asked, listened and made changes. Only then did I start feeling better about myself. My self-confidence grew again.
You will make mistakes. It’s OK, we all do
I made more mistakes, but this time, these mistakes were easy to fix. I was not hiding my decisions behind excuses. I talked about my decision-making that led to these mistakes. So next time, I could avoid them. People will trust you more when you explain what happened. When you say “I’m sorry it was my fault”. When you say “I don’t know.”, but then come back with answers. You take responsibility for your actions.
Learning how to prioritise and focus will save your bacon
This trust you earn is part of being a senior developer. People trust your thinking based on your past decisions. Not just because of the list of companies or years on your CV.
It might not be surprising that you can become a good senior developer faster. You need systems that will check your thinking and attitude toward the work.
One of these things is learning how to prioritise. Another is how to focus on one task at hand. You might be able to avoid prioritisation because of the Sprint planning. Or because someone else makes decisions for you. But you will not get things done quickly and reliably if you are distracted and can’t focus. This is a skill you must learn.
I learned these things the hard way. But you don’t have to. If you’re interested, let’s have a quick Zoom call to discuss you. What are your goals, and if I can help you to get to these goals faster.
And while you wait, you can learn more about focus and deep work.
Take care, Petr.