Programmer's Limbo - Lessons learned from life in software development
In this series I will share some of the lessons I’ve learned throughout my software development career. A few of them might be targeted to people that are not in the industry, but want, or are about to get into it. Others will be useful to more experienced people with a position or two (or more) under the belt.
It should be noted that everything described here is derived from my own experiences. You’re free to disagree with any point. There are short TL; DR
versions to all posts if you don’t care much for my actual reasoning. Whether you want to read through everything or not, I’ll leave that up to you to decide.
Introduction (or why should I read any of this?)
I’ve been writing code for a long time. I began my programming journey with shitty HTML pages and doing projects for friends and family as a kid (remember Macromedia Dreamweaver?). Then, as a teenager I went to a systems programming course every weekend for two and a half years where I got in touch with hardware, x86 assembly, C, C++ and Java among other things. My tinkering with computers at that time had negative effects on my schoolwork, since a big portion of my time was spent programming instead of doing my homework. I started my first official job while in my last year of high school right after turning 18.
My career has led me through companies in various industries and of all sizes. From companies with less than 20 employees, to big multinational corporate behemoths. I’ve worked on huge multi-million line desktop apps, games, cloud microservices and distributed monoliths (shudders) to name a few.
In my now over a decade of experience I’ve participated in pretty much every step of an organisation’s lifecycle (in two countries) and have seen or been part of the following:
- corporate takeovers and buyouts (80% of them with bad outcomes for non-managerial staff)
- being made redundant (due to company management issues)
- quitting (amicably)
- quitting (not so amicably)
- quitting (due to burnout)
- supporting legacy software
- designing new systems and seeing them go live
- supporting systems that were already live
- dealing with bad/clueless management
- mentoring people
- and a lot of other things…
Hopefully, you’ll find something useful here!
- 2023-04-11 On Consultancies