Remote Work at SoftwareMill
- Team Members
SoftwareMill is a Poland-based software house and consultancy that develops customised IT systems, especially backend solutions. We solve IT challenges such as system integration, data processing, monitoring/data analysis, workflow and business rules. We focus on efficiency and scalability of solutions. SoftwareMill specialises in Scala, Akka and the Typesafe Reactive Platform; our company is a Consulting Partner of Typesafe.
SoftwareMill has international references in Telco & Messaging, Finance, and Banking & Insurance industries. We deliver software to North America, Australia, Africa, Europe and to the space. We have a proven track record working with the community, leading open-source projects and organizing Scalar, the biggest Scala conference in Central Europe.
We started remote from day 1.
Next to a flat company structure and internal financial transparency, remote work is the basis of our business model.
- We are not restrained by the geography when hiring talents.
- People do not sacrifice their personal life for work.
- Productivity grows significantly.
- There’s no problem with office space while the company grows.
The founders have never worked in an office, so it was a natural thing to do. What strengthens the decision is that people usually love to work from home.
We hire only senior developers who can work independently and have reasonable experience. That’s because we believe mentoring remotely is very hard and ineffective. We make it easier for both sides by not having to do it 🙂
The process is quite complicated because we believe the cost of hiring the wrong person is very high. We start with a survey with questions that can break the hiring process fast. Like how much would you like to earn? This is a simple question which allows us to reject a candidate very early and not waste each other’s time. After this step we have a few talks, both technical and informal, and a programming task. Besides technical knowledge, we want to check the candidate’s English and we want to meet in an informal atmosphere to chit chat and check if they fit the company culture. The question we are trying to answer here is “Would I like to go with them for a beer?” 🙂
Partially. There is a company scrum at 10am every morning during which people are expected to come, but it’s not a big deal if they cannot make it from time to time.
We have monthly meetings in person. The idea is to meet, to connect and get motivated for the next month. Moreover we have a bigger meeting once a year. Everyone comes with their families: wives, husbands and kids.
We do not. It either works or not. The mutual feeling has to be positive and the client has to be happy. There’s really nothing else that matters.
Each team that is working for a client takes responsibility for all the issues: financial stuff, agreements, customer relations, etc.
Thanks to our policy, people work on big projects, they are responsible for really important stuff, and they can live whenever they want, while with standard companies they might have had to move to a “bigger city”.
People charge daily. If they do not work, they don’t make money. It is also possible to have a lower daily rate and include 20 days off each year.
First of all: confidence. Relations have to be built on trust. Each team that is working for a client takes responsibility for all the issues: financial stuff, agreements, customer relations, etc. It wouldn’t make sense to have one person managing all these projects. When one of the developer teams needs to buy iPads for everyone to do the job well, why force them to ask the board for permission. They know best what they need for their project.
Furthermore we have a wiki. We put all the rules we have in the company. There’s a starter page for everyone to read through. And it just describes all the basics and how we are running. That’s a good thing to have. And when there are things we just can’t agree upon, we vote. And the result becomes a law. And there’s a special place for such laws in our wiki. But the laws become official only when we feel the need to make something official, because it itches us not to have The Way Of Doing something. So formality grows organically 😉
Believe that remote work can be more effective than in the office. On the other hand…sometimes people who start to work remotely expect to be given something to achieve and then, after a week or two, have it solved. I don’t think it can work very well in such a big company like ours. So what we do is actually try to simulate office work. Thus, we have “rooms” dedicated for each project in TeamSpeak app. When working on a specific project you might go into that “room” and talk to the other people who are “present” there. We have a very quick conversation whenever it is needed.
We also have monthly meetings in person. I find it crucial for running a remote company, because people like seeing other people, and they like to remember we’re built of flesh and blood.
The only real challenge is to convince people that they can work well from home. This problem has two factors – firstly people are used to working in an office and are afraid of the lack of human contact. Secondly, especially when they have little kids, they are afraid that they won’t be able to force themselves to work when there’s so many temptations/disturbances around.
So they want more people on one hand, and no people on the other… once they get that, they’re sold 😉
First big thing was the introduction of monthly face to face meetings. Then we introduced open policy for everything, which resulted in opening finances and decision making to everyone working for us. And then we had to formalize decision making, because ~25 ideas were hard to put into something concrete 🙂
I have a separate room to work in, where I have installed a lock. 🙂 My family (wife and 3 kids) are used to the idea of minimizing disturbance while I am at work, so that is not a problem.
Worst – can’t name any.
Best – Hartbespoort near Johannesburg, South Africa during European winter 🙂