The interview was originally published on NoFluffJobs blog (in Polish).

Jacek Kunicki and Sebastian Rabiej speaking at JUG Łódź (photos by P. Włodarski).

SoftwareMill is a fully remote company with no project managers. It consists of self-organizing teams that have an impact on the whole organization. We asked Jacek Kunicki and Sebastian Rabiej what it is like to work in such a model, what the company life looks like, how they develop themselves and what their dreams are.

Jacek Kunicki

He is a Senior Software Engineer at SoftwareMill who cares about the quality of what he does. Specializes in Java/JEE related technologies, but believes that software craftsmanship is technology agnostic — thus he never limits his technology portfolio.

Proud husband and father. In his free time an active sailor and mountain hiker, he always carries his camera and — most of the time — a classical guitar. He may also be found in the kitchen preparing delicious meals.

Sebastian Rabiej

He is a Software Engineer at SoftwareMill. Sebastian is a software engineer who cares about business. He asks a lot of “why” and tries to help. An active member of IT community. Sebastian is interested in JVM world and Clean Code.

In free time Sebastian is a gamer, and likes watching good movies.

SoftwareMill is well known for its fully remote work model. What is it that you get personally from working remotely and what challenges did you have to face in the beginning?

J: The most important advantage of remote work for me personally is the fact that I can manage my time on my own — I can run errands if I need to during the day. I have more time for my family as I don’t have to commute. I can also adjust the time spent with my colleagues to my current needs in the project. I can easily get into a focus mode. I just inform the team about it and then switch off all the distractors like Slack and other communication channels. Finally, remote work enables me to work from any place in the world that has access to WiFi. Thanks to that, you can benefit from a workation, which is a longer trip during which you divide time between working and traveling.

Of course, every stick has two ends — sometimes due to flexible working hours I work in the evening while in a standard office people have surely already left. The lack of commuting means that I read less as I used to read when using public transport. The biggest challenge I faced at the beginning of working remotely (more than 6 years ago) was getting used to the fact that work from home is just normal work. It took me around 2 months to organize the space and create productive habits which made work from home natural for me. It’s really so much different when you work from home from time to time and when you’re working fully remote.

S: Thanks to work in a dispersed team I can decide on my own about the temperature in my room or from where I work, which is great especially during the summer heatwave. To be honest, at first, I was terrified about the remote work model as it resembled me home-office. It’s the time when you work at home but you miss on the whole life of your company and you basically feel excluded. Luckily, all my doubts perished after the first day at SoftwareMill as it’s 100% remote and all the communication is shared with everyone. The main channel of communication is Slack where we write about just anything — from things about our projects, technical stuff, up to things not connected to work at all. In the decision-making process, it’s also the Slack discussions that we start with. Another channel is TeamSpeak that we use for voice connections. There is also some time each day for a video connection and it just adds to the feeling that we’re all in one big, virtual office.

You don’t meet face to face every day, but once a month you gather in one place for an all-company retreat. How does it look and how do you benefit from it?

S: It’s during the retreats that we discuss many important topics like where we are heading as a company, what changes we should introduce. It’s the time you can see that the company is transparent and everyone has an opportunity to decide. Bonding is really important during these meetings so we simply have fun and spend time together.

J: The meetings are crucial as it’s totally different to work remotely with people who you met in person at least once. If you know someone only from virtual meetings it’s really easy to get into a trap of unnecessary prejudices which are usually false.

After having met people in real life you get to understand that they are a lot different from the image you created in your head before. After such a meeting you tend to understand a person a lot better in your everyday communication — it’s not only an avatar or video of a person anymore.

SoftwareMill-ers climbing the mountains at one of the retreats.

These monthly meetings in real-life must be really boosting your team’s motivation. But setting them aside, what motivates you in your day-to-day work?

J: For me, the biggest motivation are the people, I simply like and know I can count on them. After more than 6 years at SoftwareMill, I can loudly say that we have a family-like atmosphere that’s based on trust. It’s what makes me like coming back to work after weekends or vacations.

As for projects — it’s like everywhere — you get more and less interesting ones. Clients also differ a lot. But it’s the fact that I know that the whole team stands behind me that makes everyone deal in even most difficult situations.

S: SoftwareMill is full of colorful personalities and everyone is different. That’s why different things keep us engaged. We have people who love motorcycles, game players and family-oriented people who appreciate remote work as they can spend more time with their kids. Everyone develops themselves and the company out of different reasons, but we all contribute to one thing — creating the best possible remote workplace.

The Holy Grail for every programmer is an interesting project to work on. Please tell me more about the most interesting projects you’ve been working on so far.

S: Just recently I’ve joined a project for a client that knows our company for quite some time. We’ve been working together for a long time and we gained his trust. We can use the tools that we choose and our estimations are treated seriously. We’re working for the biggest SMS gateway in our client’s country. Our current challenges are adjusting the project to the new, more complex way of how the company operates and getting prepared for twice as big traffic.

J: One of the projects that was most satisfying for me, was the first project I got at SoftwareMill. We inherited code that was against all the best practices of software development you could think of, but it worked on the production. After some time we’ve managed to introduce many refactorings that didn’t break anything and significantly improved the further development of that project.

Another example, or category of examples was a system that we had to rebuilt from scratch. The challenge was the number of smaller and bigger decisions that had to be made (from a database that will be used or HTTP framework, up to one style of formatting a code). All the decisions and this process gave me a lot of useful experience.

The last project that I’d like to mention was the development of a system that was written by SoftwareMill some time ago. The technologies that were used have been already outdated, but the problems that emerged weren’t trivial and solving them gave lots of satisfaction.

You have clients outside of Poland only. Why do they decide to work with a Polish software-house? What’s the image of a Polish programmer nowadays?

J: Polish programmers, especially Scala developers are well recognized — you can talk to anyone during an international conference to find it out. I think we’re renowned for the skills and scrupulousness that you get for a reasonable price.

S: In every project we try to deliver business value as good as we can. We’re first and foremost professionals and that’s why our clients recommend us to others. SoftwareMill’s blog also helps us with promoting our brand. I’ve heard many times that Polish programmers are good at what they do, but personally I think it’s a matter of personal traits rather than national.

Apart from client projects you write technical articles and present at conferences. What’s in it for you?

S: When you want to check if you really understand something fully, try explaining that to someone else. Writing blog posts and creating presentations makes us better specialists in our field. Taking part in different events gives us an opportunity to meet amazing people, bond with really inspiring ones.

J: Preparing presentations or writing articles enables us to share our knowledge, which we believe makes sense. Additionally, it’s a great way of learning and mapping out our know-how. Just as Sebastian mentioned — there’s no better way of fully grasping a particular subject than explaining it to another person. Our tech blog and presence at tech events is what also attracts our potential clients. It’s quite often that our technical posts let us win new projects.

Jacek Kunicki speaking at one of the conferences.

Speaking about the development, if you could go back in time to the beginning of your programming adventure — what advice would you give yourself?

J: My best advice is to start working on a real project for a real client, as it’s the best way to find out how to solve real-life problems and what are the constraints that you have to deal with in a commercial project. When I look back at the projects I used to work on during my studies, I can see exactly how different was the reality in such projects from the one I found in my professional life.

When it comes to learning new technologies, now I already know that instead of just going through tutorials, in which everything works fine, it’s better to come up with your own project and build it in a particular technology. That way you leave the troubleless world and solve real-life problems which lets you understand new language or framework.

S: Find people who are better than you and learn from them. The quote “If you’re the smartest person in the room, you’re in the wrong room.” is something I live by. I wouldn’t recommend making decisions about your career based on financial motivations only. In the first years of your career it’s worth investing in your development, learning. The profits will be much higher than the short term financial gains.

How do you imagine the work of a programmer in 10 years? What will you be doing then?

S: It’s a really tough question. The market shows that AI will be part of software development process. Personally, I think that in 10 years, we’ll still have the same goal which is solving business problems. We might be using ready-made elements and our work will be more automated. I really hope that in the next 10 years we’ll develop even better best practices for productive teamwork and time management.

J: I think that the work itself won’t change a lot. What could happen is that it will evolve even more into combining ready-to-go elements instead of creating something from scratch.

But for sure we’re entering a new chapter in terms of the average age of a programmer. Nowadays, programmers over 50 are rather rare. I hope that in the next 10 years I will still have so much fun from programming and that there will still be place on the market for the older ones.

What are the dreams of SoftwareMill’s programmers?

S: First of all, it’s finding this Holy Grail. Everyone wants new challenges and interesting projects. Many people would love to contribute to a project that solves a real, worldwide problem. We know there are not many such projects, but we keep on looking for them.

J: My dream is to buy a yacht one day and be able to sail in peace and quiet across the world, coding for pleasure from time to time :)