Mistakes I made
(as a developer)
I started working in 2006, a decade ago. Such milestone inspired me to look back and point at the mistakes I did, and the kind of advice I wished someone from the profession had told me. Things change fast, I am not sure how applicable this tips will be in ten years.
Either if you just started or you are a grey-beard, you might find my words helpful. I would love to hear your opinion, so don’t hesitate to write me.
Stick to one platform, framework or language
Biggest mistake I did during the last ten years: Each time I switched jobs I switched platforms as well.
Started with enterprise Java development, to embedded C software, to Windows Desktop applications in VB, C# and C++, to iOS apps in Objective-C, to working with the NDK doing Android libraries and finally doing Android apps.
This professional path sounds awesome, but employers don’t care. It doesn’t matter if you spent ten years developing software. If you did not create Android applications, you are not going to land an Android developer job.
Switching platforms creates a huge negative impact in your CV. It’s really hard for an employer to justify paying a big sum of money for a developer that is not an expert on a particular product.
Most companies don’t care about your past. The technical interview is going to be more important that all those years working on other platforms. This is why good developers without years of experience can get jobs.
How do we adapt to the market? You can do it, just as I did, but you need to invest in yourself: Learn new skills on your free time, or even take time off if you need it, and also lower your salary expectations. You need to take one step back to take two steps forward.
Once you find a platform, framework or language that you feel passionate with, stick to it. In the long term your salary expectations and your employability will be way higher than if you switch frequently. Check where are the best companies that require that skill set and move there. I know it sounds obvious, but it took me many years to realize that.
Don’t pursue management roles for the money
I always believed that high payed jobs were for people wearing suits and making executive decisions. While that’s true for a very small percentage of them, experienced developers are generally better paid that middle management.
An analysis of earnings in Berlin's entrepreneurial landscape Berlin's reputation as 'poor but sexy' precedes it…jobspotting.com
During my career I always wanted to move into project management. I did a Masters in PM where I learned a lot of interesting things. And finally after working as a Product Manager I realized that it wasn’t for me.
Our frustrations as developers come from poor company culture and to be more precise: poor tech-culture. I saw a huge difference in both terms when I left Spain. I felt more appreciated and I also started to appreciate more my job.
If you are not happy with your job as a developer, moving up is not the solution, but rather move horizontally. Switch companies, travel, open your mind and work abroad, there are many tech hubs in the world were developers are highly demanded.
Depression and burn-out feeling are more common in developers than what we think. Our managers rarely understand the mental exhaustion that causes coding, the pressure for results and quality while keeping time tight. Sometimes we just need to step out and breath. Like I did in my next tip.
Take time off
I’ve never been unemployed. Until this year. After ten years I needed to take a break to “refactor” my professional career, and it has been one of the best decisions I made.
I took 5 months off, quitting my job and being voluntarily unemployed. I could feel how everyone was worried that my professional career was going to end there, but what happened was just the opposite.
After ten years jumping from job to job and barely taking my paid annual vacation leave, being jobless was so-damn-good. There’s nothing worse in our profession than working on something that does not bring you happiness.
In my case, for four years I wanted to sit down and learn German but never got the time to do it. During these 5 months I took intensive courses, 3 hours a day, and bumped my language level from A2 to B2, enough for my day to day and being part of society.
Getting back to work was easy. Easier than expected. So don’t be afraid of taking time off if you need it, a gap in your CV is easy to justify in our profession. But if you do, be sure to follow my next piece of advice.
ABC: Always be coding
During my five months off I started a personal project. An Android app that uses the Discogs.com API. I wanted to have an easy to use little app to add and remove records from my collection and I wanted to polish my development skills.
Thanks to this pet project, I was able to handle job interviews with confidence. I experimented with new trending libraries and development patterns that I am successfully using today at my job.
I wish I started doing this earlier. Our jobs tend to become repetitive and get a lot of entropy after years, so we have less and less room for experimentation and self improvement.
Having personal projects, reading (and writing) blogs and attending to talks will help you become a better developer on the long run. Just have fun, push your code to GitHub, and share your experiences with the community.
Be part of the community
When I was a student, I always thought I didn’t have time for groups and clubs. When I got my first job, the last think I wanted to do was hanging out with other developers.
I was wrong.
Meetups and usergroups are fun and a great place to meet fellow developers outside the entropy of your job. If you want to make the best of it try to not to be passive. Offer your help, share your experience, talk to the people sitting next to you. Everyone loves talking about their experiences, and you’ll meet a lot of possible employers.
There’s a lot of beginner groups that always need coaches. You can also offer yourself to mentor newbies, give workshops or even sponsor events.
If you don’t know where to start, ask on Twitter and search on Meetup.com. Look for Google Developer Groups, Cocoaheads or JS usergroups. Always look for local groups rather than global communities, attend to the meetings and have fun.
Of course, behave. Learn their code of conduct and embrace it. Promote diversity by being welcoming and unafraid of speaking to people different to you.
Ignore job postings
My final pearl of wisdom. Don’t apply to jobs through job postings.
Job postings are broken. Overly-complex HR processes, candidate tracking systems, CV spamming and lack of clear communication are just few of the causes of why companies end up relying on head hunters because they can’t find talent.
Good talent ignore job postings. Networking is the way to go. By being part of your local community, you’ll get the latest news when someone leaves an important position, when an interesting company got funding and who is hiring.
You will also learn that some companies are better than others. Most developers from hiring companies will be sincere with you, they will tell you if their stack is old, if their managers are awesome or even if the pay is bad.
If you see an interesting job offer, look at your network. See if someone in your usergroup or LinkedIn works or have worked there, or ask if they know someone. Contact them directly, talk with the CTO, the hiring manager or other developers in the company.
Head hunters are OK but don’t rely on them. Their mission is to fill a position before someone else does, they are not here to help you get a job, they don’t work for you. If what they offer fits EXACTLY what you are looking for, then go for it, if not just say thanks but no thanks.
I hope my article made you think like it helped me. I think everything reduces to being happier and having fun. Don’t be an overachiever, rather enjoy development as you enjoy a hobby and you’ll never want to work as something else again.
- Stick to one platform, framework or language and your professional career will be better on the long run.
- Don’t feel forced to take management roles if you truly want to be a developer.
- Take time off if you need it.
- Always be coding, have personal projects and enjoy development as a hobby.
- Be part of the community, go to meetups, have fun and give back.
- Ignore job postings, build your network and talk to people if you want to find a new job.
Thanks for getting this far! I know this is a very personal post and you might not agree with many things I said. I would love to know what do you think. Also it would be awesome if you click the little ❤️ and share the article so more people would benefit from it.