This will be not a technical article, but just a philosophical digression about personal values and preferences. So if this topic is not interesting for you – feel free to skip reading and see you in the next tech post 😉
During my carrier, I changed workplace 4 times (officially more, but in some cases, it was the same company but another location or another company name with the same people in it). Probably 4 times is not a tremendous “switch experience”, but I decided to share my thoughts which I’ve gathered so far.
I remember my first company during my university years, well, at that time I actually didn’t care too much about company values, atmosphere, or vision, the only 1 thing I cared about is getting a production experience. At a point when you have nothing to compare with – everything is great. That how it was in my first company 😉 I was ready to even work for free, just if someone will teach me how to write the software. Now I remember these times with warm nostalgia in my heart.
I believe things changed for me when I switched from my first job (it was a small student company of 10 people in rented apartments in the suburbs area) to a “real” software company of a few thousand employees. During that stage, I learned that you don’t have to put your heater and coffee beans from home to drink a coffee at the workplace, or that it’s not necessary to have an extra sweater in the office, because the heating system could go down at every minute at wintertime.
In addition to benefits, I also found cons of big companies, in my case, it was an absence of feeling that my everyday work at any point important for the good of the company. Every now and then, it was only a tiny task, without an understanding of why it should be done or who will use this feature. For me, such an environment acted as a demotivation and real-life example of the old joke about Soviet Soldier duties – to dig from “here”, till lunchtime.
So after almost 4 years of work in that place, I decided to try work in a small company, which will give a basic level of comfort from one side (good working heating system in winter) and a “sense” of developer work from another. That was a small 25 people company (in fact there were 2 separate companies with the same people) where I’ve spent the next 3 years. During the whole employment time I enjoyed work there because, in a small group, you could make a decision and later see the consequences (good or bad) of that. I believe that there is no better teacher than our own failures and wins. At every point in time, I knew why I do what I do.
Usually, in such companies, you’ll not find a dedicated person for every activity, such as a QA engineer or DevOps. It means that 99% of technical duties are on the developer’s shoulder. There are pros and cons of such a solution.
Good thing is that during DevOps or BA activities you have an opportunity to know the product from a different perspective, which allows solving more complex problems in a more elegant way as well, as creating more accurate estimates.
Bad thing is that sometimes it’s too much. No one could be an expert in all areas, everyone has some kind of accent (for instance DevOps, backend, or frontend development). And from my perspective, such an approach aka “Universal Soldier” creates run-down software with a weak architecture. Every time someone who has to make an important decision on a bunch of topics, could rely only on their own very shallow knowledge in that particular area. E.g. I as a mostly backend developer could create a cloud infrastructure for my software, but for sure it will not be as good as some DevOps solution.
At the end of my second year in that company, I started considering what next? Not in terms of a new place, but what else could I do here to grow as a professional. I tried myself in almost every possible role in that company and it occurred that “start-up like” companies have pretty limited opportunities for employees in terms of growth path. You could like your daily routine, salary, and colleagues, but there is always a pretty low “sealing”, and as soon as you reached that level, you could do nothing but accept that fact.
So on 7th year of my career, I decided to start once again in a big company, but this time I have some experience and a bit more solid understating of what I want and what I don’t want 😉
This article has nothing to learn from, but just a reflection through the prism of my own vision and experience. So please criticize me too much ?. I believe that set of values is a very unique for everyone and obviously there is no perfect place to work on, but as old idiom says:
The road to excellence is always under construction
Be safe and stay tuned!