Career path - Olli Kalmari
Scroll down and discover what a Software Developer does at Pinja!
A flexible and interesting workplace
I was originally a trainee at Pinja during my university studies in 2007, and there hasn’t been a single reason to leave. I started out with software development. Over the years, my responsibility has shifted to client project testing and automation testing.
Our current development team includes programmers, project supervisors and testers from different companies and locations. For this reason, communication is mostly handled through Microsoft Teams. I have been blessed with nice and talented people to work with – all of them are skilled experts in their own line of work. You can always ask the team members for advice and discuss how to handle things sensibly.
The best part of the job is when the ordered system is completed for the client and it helps them in their work. It is even better if there is something extra in the system, which was not even thought about at the initial planning phase.
Pinja has maintained a positive and encouraging atmosphere over the years. Although we are in a hurry sometimes, and the work tasks can be challenging and stressful, a positive mood and a good team spirit remains. Our stress level is also reduced by the fact that the employer is flexible. If necessary, we can run personal errands during the workday as long as the work tasks get done.
The best thing about my workplace is: Pinja has a good atmosphere, and we do meaningful work with a sensible attitude – it’s nice to work here.
My career path
Software engineering studies at the University of Jyväskylä
At university, I studied programming, databases, project management, testing, and processes. One part of the studies consisted of an application project carried out in a group of students as customer work. In the project, I coded an application for browsing photos in Symbian C++.
Internship at Pinja as a Junior Software Developer
My first so-called real job and practical software development work was when I started my internship at Pinja. I started as a programmer with industrial projects, but I was already doing a bit of testing and test planning back then. At that time, the most used language in projects was C++. I worked with, for example, harbor crane automation for improving the efficiency of container handling.
A master’s degree in philosophy and a permanent job at Pinja
I graduated from the University of Jyväskylä with a degree in software engineering, which also provided me with basic knowledge of programming. One thing that I remember well is the Java programming course that was part of basic studies. As I graduated, my job at Pinja became permanent and I continued with software development.
The client project changes and the programming language becomes C#
I originally became a software developer for an ongoing client project for developing a reading system for remotely readable electricity meters. I coded the project in C# and used it to develop the part of the system that manages software updates.
The overall responsibility of the team was, and still is, the renewal of the client’s product: the planning, deployment and testing of the required features, as well as installation in different environments. I have always liked our flexible responsibilities. Team members can participate in all areas in addition to their own special expertise.
Transition from coder to tester within the same client project
At the client’s request, testers were needed for the project. I had previous experience in manual testing from a test bank project, and thanks to the development work done in the current project, I also had knowledge of the system to be developed.
Testing seemed interesting, so I got involved. The testing was started using the Postman, Insomnia and SoapUI applications, among others. The platforms were virtual Azure machines that ran the software under test.
Getting to know automation testing with Robot Framework
During the client project, I became familiar with the interesting testing automation. The current project uses Robot Framework, which is a framework built with Python. It provides a suitable syntax for defining tests, as well as some general-purpose interfaces.
When testing, the Robot code calls an API to be tested, and examines if a compliant response was received. Quite often during testing, it becomes apparent that some detail has been overlooked in the design of a feature. Therefore, the application is either malfunctioning or its performance is not sufficient for large amounts of data. Once the necessary corrections have been made to the code, a new test is performed in order to see if the application works without errors this time.
It’s great that I can combine the best parts of my past experience as a software developer and a tester with my current job description.