If you had to create the company of your dreams, what would it be?
A few years ago, Arseniy Seroka and Jonn Mostovoy started on a quest to answer that question for themselves.
Now we have Serokell, a company of over 50 people that work remotely, sharing the same values and creating spectacular projects.
How did they realize their dream? To find out the answer, watch this interview with our CEO Arseniy Seroka (made by the lovely people at HuntIT). While the interview is in Russian, we have added English subtitles for our international audience.
In addition, we have also featured some of the more interesting questions and answers down below!
Hi! Tell me, why are we in this informal atmosphere, where are we and why not in your office?
The thing is that we do not have an office. Even though we don’t have that many people, more than 50, less than 60, we are an international company, we work from the whole world remotely and we try to hold on to the principle that we do not have any official place of gathering or office.
How do you do it? You have a lot of employees all over the world, how are they distributed, where are they located?
We have employees from all parts of the world, some from America, some from Europe (and Russia), and Asia, and we coordinate all that with modern tools like Slack, YouTrack, GitHub and other means of communication but the main thing is that we try to cultivate, develop, and maintain certain processes within the company that help us communicate better.
For example, even if somebody has talked with somebody else offline, we still try to bring the information back to Slack.
Who are the people at Serokell?
Mostly, the employees at Serokell are young specialists, 20–30 years old, if we are talking about developers. We do not have only developers at our company, there’s also marketing and HR, for example. But the main backbone of the company is these people aged 20–30 with similar interests, love of Haskell and functional programming.
And, you know, it is a very good uniting force because there is not a lot of work in Haskell out there (even less in real projects) and when the developers find out that, woah, I can do that not only for money but actually have an interesting project — it means a lot.
But how is it all built? Regarding communication, do you somehow meet and mingle outside of work?
Yeah, of course, a lot of our people are from St. Petersburg, some of them are from Moscow, several from Amsterdam. Naturally, those who live in one city frequently meet without us organizing any events but we try to do trips together, try to visit different conferences, participate in different events. In those cases, we try to gather together different people from different parts of the world, to go to conferences and then the person can meet others, communicate.
To be honest, you could count on one hand the number of employees that have not met somebody else from the company, have not talked to them.
We understand that remote is extremely hard, it is hard on you psychologically, especially if you have never done it before. That’s why we are trying our best to create an atmosphere with a feeling that we all are one team, make our colleagues and comrades feel that they are not alone, that even if you work in the Canary Islands (we do have employees that work there), you’re still in the loop.
Right now, what are the main customers, what are the main projects?
Officially, we are located in Estonia. Most of our clients are from the USA, there is a client from Europe, and there is a client from Korea — those are the ones I can talk about publicly.
In addition, we have a lot of our own initiatives, first — in research, and second, we very slowly and accurately are trying to make our own small products about which, unfortunately, I can’t talk about right now.
They are connected with problems that we run into in our daily work, instruments, tools for automation, HR, project management, everything that is modern and popular. We can’t find it all in one instrument on the market right now.
We are just trying to solve this task for ourselves and we have the feeling that a lot of projects, a lot of companies of our scale, basically, middle-sized businesses, have a need, for which we will try to release a product on the market.
In general, what is your stack, what technologies do you use?
We use Haskell, we use Nix and NixOS for our servers and deploying systems. We are doing a little bit of frontend, and for that, we generally use TypeScript, PureScript, but the main specialization is backend. In addition, we use Erlang, Elixir, and just a tiny bit of Rust.
Obviously, everything depends on the business task. You can’t say that Haskell is perfect for everything or that C++ is the panacea. The main thing is to know your instrument, to know other instruments, and be thoughtful about what you are doing.
Are you doing anything in open source?
Yes, our philosophy is to do as much as we can as open source. We often try to explain to our customers: If you have a large system that people need to trust, do open source. You will not lose money if you have a correct business model.
The modern world as whole goes toward releasing all source code because people are starting to think about how the computers work, what are we using, and if they do not spy on us while we walk past our webcams.
We are trying to release our own libraries and the projects that we do, both commercial and non-profit. In addition, we have several people working on compiler development for Haskell. That is, we pay them to develop the compiler that the whole world uses.
I know that you lecture at ITMO. In addition to running a company, you’re also a lecturer?
Yeah, it happened that way. A very large factor in the emergence of Serokell was my lecturer of functional programming, Jan Malahovsky, a wonderful human being who inspired me to study all these technologies.
And, it so happened that about 4 years ago he moved to France to do a PhD and there was no one left to lecture on functional programming because it is not a popular area of study at our faculty. (I studied and finished IT at ITMO.)
I understood that I am the only one at the faculty that knows the subject, loves the subject, and I understood that I want to give my knowledge to students just to somehow popularize those approaches, instruments, and technologies.
For many companies remote work would be a bonus, it is everyday life for you. Are there any other bonuses for employees?
It’s a difficult question. We have quite an informal atmosphere and any employee can write to anybody else if they wish and in different situations if people need help at anything.
For example, something has happened to the person in Petersburg and they have just moved in, they can write in the chat and practically everyone will answer them and give some kind of help.
Often, we try to keep in touch with each other. We don’t have it like: here is the supervisor, here is the subordinate, you cannot talk with those and those. No, we have quite a friendly atmosphere and everyone understands approximately what is happening with others, the people are open, the people have some kind of life experience, and try to have each other’s backs.
How do you evaluate people? Obviously, everyone is on a different level and style of work, how to rate developers, what should one pay attention to?
We do not rank people as juniors, middle, or seniors. We know and understand what everybody knows, is capable of, what background they have. For the most part, we try to hire people that know how to learn quickly. Technologies change as quickly as tides, and it is not really important for us whether you know any specific framework or technology.
How do you make sure that the person really works, really is committed to their tasks and is not hanging out at the beach instead?
Good question. Our company position on this matter is such: for example, a person has a task and the agreement is that it should be done on Friday. The person says, yeah I will do it on Friday, no worries, or says that to do it on Friday is unreal — I will do it on Monday. But, if the person has named some deadline, then we trust him.
The main thing that we try to create in the company is trust in each other, respect for each other’s word. If a person says on Wednesday that, strictly speaking, I said I will do it on Friday, but I can’t really make it, (programming is not really an exact science) then obviously, talking, communication is the key to everything as always. And, if you give in time the information that you can’t do that task before the deadline, it helps prevent further problems.
What kind of people are you searching for?
The main indicator for people we are searching for is, for the most part, those that love to learn and who want to learn because we try to be well-rounded.
When a person comes to you from an area where they had to build ships and they become your head of HR or when a mathematician who does logic comes to you and becomes a developer, every one of them brings a part of their experience and knowledge to our common piggy bank.
That allows us to grow not only in one direction, but to develop in all directions and be kind to the world.
If you had an unlimited number of developers, no limits on finances, time, size, office, all in all, no limits on anything: what would you do, what would your employees do, where would you move the company?
We love science very much, we want to develop computer science and science in general. We love such things as formal verification which is not that well developed.
What is it about in a few words?
You prove a theorem of the fact that the program works. For example, dependent types. It is quite a deep technical process, but we are trying, we are doing it right now, we are trying to popularize things that allow you to do more qualitative work.
Yes, it is also harder work but it is of better quality, and as a result, the client suffers less and the people suffer less.
Originally published at https://serokell.io.