Working at Bitcomp – A Programmer’s Career (12 Years and Counting)
– Aren’t those kinds of texts usually written by a first-week intern who is yet to discover the whole truth about modern knowledge work and software?
– Well, that’s exactly why this text will be a much more profound one, since we’re getting a 12-year-perspective on the matter.
Beginning of the Career
Already back when I was studying, I came across a co-operation project with the university in which a map application was being created for Nokia’s communicator. This was impressive as in the beginning of the millennium there were no public map services by the likes of Google. At the time, the closest thing to a map service was a navigator, but unlike cell phones, navigators were not always carried with you, maps needed to be uploaded to them beforehand and you could not build your own applications on them.
Back then the company’s name was not yet Bitcomp and as I recall, the outcome of the project was that the technology was not yet ready for the purpose. Anyway, the people involved and the advanced solution stuck in my mind.
Towards the end of my studies I began to look for employers. Bitcomp instantly had a positive first impression on its side. In addition, the company did (and still does) applications for the natural resources sector. As my own roots are in countryside, I got excited about the idea to create applications that would benefit people at home. There are no farms at my old homestead anymore and since then Bitcomp has broadened its domain more to the forest sector. However, the significance of forestry both economically and for climate reasons continues to rise, so I have not regretted my choice of workplace. Good colleagues have also been a significant factor for thriving at work.
Working as a Programmer
When I started working at the company, Bitcomp was much smaller than it is nowadays. I have been able to work with all sorts of tasks and in several different roles. The challenge factor has varied a lot and the differences between systems for different kind of operators have become familiar to me.
In a little over a decade I have adopted a broad set of different tools for programming, version control and continuous deployment. Right at this moment I act as a Scrum Master in the maintenance and development team of an enterprise resource planning system and enjoy the challenges of cloud transition.
You see, vast ERPs do not transform to cloud native by accident. When done without a second thought, the transition may only increase the maintenance costs. However, it is worthwhile to favor the transition both as a user and as a developer as, at its best, it makes the work what I think software development is supposed to be. When the pieces in the background are in place, the work becomes flowchart-like combination of components and models that have been deemed proper so that the business needs are met. I also really like how over the years the value of information security has been acknowledged. Nowadays, customers too know to demand it, and you are not only allowed but also required to make adjustments and iterations based on it.
Choices in Programming – Tight Control vs Ease of Use
Back when studying I was simultaneously doing one assignment in SDL and other in Symbian. The difference in the process was immense.
Both assignments included making choices and counting results based on the given parameters – this model corresponds well with what I am currently doing on services on the server side. Both compiled a well-performing result that could have been used in my other projects had I needed it.
However, whereas the other tool generated the codes based on a chart I drew, while compiling the other I had to repeat several building steps and unnecessarily editorialize memory management and other low-level issues.
I believe that the bigger the entity would have been, the more likely the quality of the code generated from my description would have surpassed the quality of the code made in the text editor. Although charts definitely would have had their limitations, even the fact that they do would have only directed the work into making definite and modular components. I did not familiarize myself in depth with the generator, but I presume that many of the errors enabled by the language were considered on the generator side.
Therefore, for example buffer overflows typical for the language would have been prevented.
Little doubt remained about working with which tool I would prefer.
When I later listened programming requests of professors as a research assistant, I thought that the requests they described could be fulfilled by the students of their own field if they only had proper tools. 15 years have passed and the world is yet to fully achieve that vision, but at least low-code and GraphQL make this decade a pleasant one for us developers.
Who Can Become a Coder?
I believe that interpersonal skills have always been essential in well-progressing projects. Even during my time their importance has only increased. Colleagues and clients on other continents, agile practices, cloud and the decrease of low-level programming have increased the complexity of the challenges we are able to solve. To turn a problem in to a functioning solution, it is necessary that both parties can discuss the challenges of business and technology freely. Especially as the pressure builds, it is vital to continue to be able to talk about and advance the issues in a sensible way.
As for someone who wants to be a programmer, what I think is crucial is not so much their personality type but rather their self-knowledge. There is work for different kinds of people in the IT sector and in software development – from introverts to extroverts and from people who like tech to those who doubt it. Finding a suitable role is something for an employee and their manager to do together. Certain humility is important. Naturally you cannot get to any position without sufficient showing that you understand the big picture and also because it is a fatal error to ignore your colleagues’ know-how for your own need of showing off. For example, the cloud platforms used have hundreds of features added yearly. Assuming all of them is nearly impossible even for consultants specialized in deployment.
Choice of Workplace
I have worked in a large company and in a small company and I have noticed that I prefer smaller employers. Somehow, an impression has stuck to me that in a large organization my education would have forced me to specialize in a set tool or technical challenge that I would have then worked with for changing projects and clients till the end of the world. I do not believe that maintaining an invisible background feature or delivering a single print to a project version management would give me the same feel of accomplishment as the publication of a larger entity and seeing it in use. The technology is not an absolute value for me. What can be accomplished with the implementation is what is important.
I started my studies in data communications. When I realized I appreciated software more than a bandwidth and an optimal signal, I shifted my orientation to software. You can go around the limitations of technology with a software layer, but a processor output or a generation x data network alone will not save the world. Back in university I participated in a project that created the first versions of a well-known learning game called GraphoLearn or “Ekapeli”. It is likely that there is not a single line of my code in it anymore but knowing that I took part in something like that still warms my heart more than a week-old power laptop laying on my desk.
Working at Bitcomp
Sometimes the workdays at Bitcomp have become longer than expected. Still, throughout the employment there has always been room for other things in life as well. Back in the days I found friends for active biking hobby from the company, I got additional time off to go on cycling safari in Central Europe, and the move back to my old home region only required a key to a different office.
During the last dozen or so years, I have had time for many things. Among others, I have bought a house, got married, had three children, renovated countless hours and even established my own limited company to better understand the business and customers. Although the last one is beneficial for Bitcomp as well, overall the employer has left room for my own growth and supported me both in good and bad. For 12 years and counting.