Jun 16, 2021
When a weird and elusive bug appears you need to have the right hands on deck. It’s even better if they have experience with quality code and making sure that whatever went wrong will never happen again. Then Goran Šiška is your man.
Goran is a QA Solution Architect working on AdInsure platform quality assurance. His job is to think of ways to break software and then look at how to prevent it from happening again. Even though he started his career as a trained lawyer, he is now a hard-boiled developer who loves his job and believes he would make merely an average attorney.
We talked to him about his path to becoming a developer and the most interesting bugs he worked on recently.
Let's start by talking about the elephant in the room. How did you get into IT after graduating with a law degree?
Actually, law was not the plan. I’ve arrived at the university looking to study comparative literature and had to take another subject. Since my brother was studying computer science, I wanted to do something else and chose law.
In the end, however, I spent most of my time at the Faculty of Electrical Engineering and Computing, where they had a laboratory with the latest equipment and were doing the most interesting things.
What about after you finished school?
My first job was in a company that was putting legal content online and was looking for someone who would be in both worlds – part computer geek, part legal professional. The main issue was that the legal team and the IT team did not really understand each other and needed someone to mediate and help things move along.
At the same time, Microsoft launched its .NET platform, which was when I got deep into actual software development. Soon after I also got an opportunity to work on building a similar system from the grounds up and I turned full-time developer to my parent’s chagrin.
They weren’t happy about it?
Back then, IT wasn’t really a profession. My brother was really into it and my parents hoped that at least one of their sons will be a lawyer and make something of himself.
How did you end up in Adacta?
For years, I worked as an independent developer and consultant with multiple companies. Adacta was one of my customers. They had an attractive ad and even though insurance software did not seem all that fascinating, the first meeting was very informative.
We talked about the things I was interested in – testing, code quality, development patterns, and so on. I initially worked as an external contractor for a couple of years and then realized that out of all the things I was doing, Adacta was the most attractive, so I became a full-time employee.
Are there any similarities between the legal profession and IT? Is there anything in your legal training that helps you in your daily work?
There are parallels between the two professions. In development, you have a framework of rules within which you operate. You need to build algorithms that follow the logic and comply with a set of rules. Diction is also very important and you need to be precise with your words, so that is something shared by law as well as in computing.
What is the role of your team in Adacta?
In recent years, Adacta grew exponentially. It has many more employees and larger clients, which means that errors in our system could result in much more damage. That’s why we need a team that works on quality.
Our role is to prevent these errors. We work on two fronts – the first is quality control where we run manual or automated tests to check whether the software works and has the functionalities we promised to our clients.
The second part of our job is prevention and that’s actually our focus. We are working on tools that will help developers avoid issues. We are training developers to write better quality code and follow best practices. QA is not just working on creating better products but also on the talent making this software. You will never catch all the bugs and you should work on creating a world where quality code is the norm.
»QA is not just working on creating better products but also on the talent making this software. You will never catch all the bugs and you should work on creating a world where quality code is the norm.«
What are you currently working on?
A long-term strategic project is our research into system performance and scalability. In computing, you can improve performance by either putting your system on a faster computer – this is called scaling up – or you can distribute it over more computers, a process called scaling out. Since there is a limit to scaling up, you need to look at scaling out.
Of course, AdInsure architecture allows you to that. However, you are working with multiple components that serve different purposes from data storage and business logic to UI. Of course, the performance of these components depends on the hardware they’re running on and their performance is hard to predict once they’re processing large amounts of data.
Our customers want to know what hardware they need for their requirements and my job is to take these complex setups and create a simple formula that allows them to come up with what they need. It’s actually a very difficult problem because there are so many variables which makes it really hard to simulate.
What project or thing has thrilled you recently?
For example, AdInsure has a system that creates a component once it receives a request. If it receives 10 requests, it generates a component. Under heavy load, it starts creating exceedingly large numbers of these components that need more memory and create problems for the entire system.
This was a bug that was very hard to reproduce and remove. We did manage to create an automated test that finds the error and removes it. When we change things around, we can now run this test and fix the issue way before it ever reaches a client.
Since QA focuses on quality, you are not regular developers. Is there a difference in what you are focusing on?
Yes. Developers are focused on creating something functional and easy to use. We need to look at how it is possible to break things. An example I often use is that QA looks at a shopping cart in an online store and asks what would happen if someone added -10 products to it.
We are a part of the development team and tell developers what they’re doing wrong and what are their shortcomings. And no one wants to hear that. The challenge is to tell people what they’re doing wrong without them seeing it as criticism. It’s like being a teacher where you need to give a poor grade but still motivate the child.
»Ask as many questions as possible. Adacta has top experts in individual areas. They work on user interfaces, applications, data warehouses, business logic and so on. These are experienced people who love to share their knowledge.«
What advice would be the most useful to you on the first day in Adacta?
Ask as many questions as possible. Adacta has top experts in individual areas. They work on user interfaces, applications, data warehouses, business logic and so on. These are experienced people who love to share their knowledge. People love talking about what they know and you never know what will get you interested. I was interested in books and writing and I thought I was going to be an editor. However, I love doing what I am doing now.
What’s your favourite thing about Adacta?
People. Developers can work from anywhere but I found people in Adacta who had experience and I loved working with them, so I decided to work here. Adacta managed to attract a lot of top talent and the workplace atmosphere is great. The management understands developers’ needs and trusts them. I sometimes see people committing code at eleven at night on a Saturday without being forced to just because they love doing what they do.