📜 ⬆️ ⬇️

Ruslan Sinitsky: "Do not be afraid to destroy standards"

Introducing the zero-issue podcast about technologies, processes, infrastructure, and people in IT companies. Today CTOcast is visited by Ruslan Sinitsky, CTO and co-founder of Jelastic.

Listen to the podcast

1st part of the text version of the podcast


')

Text version of the podcast (2nd part)


Alexander Astapenko: I want to return us to the question of people. How many people are working in Jelastic now? Where they are? Do they work from the office? Remotely?

Ruslan Sinitsky: We have a distributed team. There are people who are in Zhytomyr, Moscow, America. Someone works remotely. We still try to keep people in the office, because communication and communication are very expensive. It is remotely possible to work, but in our case, when the product is very complex, a large number of communications is required. 30% of the time in our team goes to meetings, this or that technical solution is constantly discussed. Currently there are about 50 people in Jelastic.

Alexander Astapenko: What kind of people are these? What is the percentage of developers? Where are the developers sitting and who is, for example, in California?

Ruslan Sinitsky: Our team is divided approximately as follows. We have system administrators - those that program in Bash, Perl, say, those who write scripts, automate routine administrative processes, there are Java developers who write backend, there are JavaScript developers who write frontend. Backend and frontend are separated from each other. We have a completely one-page web application that communicates on the basis of the JSON protocol, that is, the client code is not generated by the server part.

There are testers, now there are about 7 people and we are expanding this team even more. There are test automation systems that automatically test the Jelastic installation, perform functional testing, regression testing. There is a operations team that installs Jelastic on hosters or enterprise clients. In America, mostly sit marketing and sales, that is, people who are engaged in business.

Pavel Pavlov: Speaking of development processes, you now have a fairly large testing team. I understand that at the very beginning there was no one and probably had enough problems. And how was the process of product testing organized, especially considering its specificity?

Ruslan Sinitsky: Testing was initially based on self-testing, that is, you write, test yourself and check if everything works. Then we realized that we need to expand, add testers, write an automated test system. We have two types of testers: manual, which are tested by hands, and autotesters, who write autotesting scripts. We have developed our own internal system, which runs the API, complex scripts for calling combinations of API. When a bug climbs on production, you realize that the quality of the code needs to be increased, the quality of the product needs to be improved, and you start making efforts in this direction. Again, iteratively, everything is iterative.

Pavel Pavlov: Did you have a desire to open the system that you created inside yourself and use for testing, that is, to share with other people so that they could use it on their projects?

Ruslan Sinitsky: I am the guys who write this system, saying that they create a startup inside a startup. Because there really is made a unique thing that I have not seen on the market - testing API directly. Probably, then we will make it open.

In general, we think about Open Source. The question is that now it does not change our business, and only impose certain burdens. Just to open the source code means nothing, you need to support the community, communicate with people, make it convenient to work with this source code. The question is only time when Jelastic will become an open product. Java was initially closed, then it became open. The time has not come yet. Because we concentrate on the most important things for our team. Now it is the creation of a successful business. If there is a successful business, then other issues can be solved. Currently Jelastic is not profitable, we spend more than we earn. At the same time, of course, we grow. Growth is good, income grows about 30% per month. But there are still the most critical things that need to be addressed.

Pavel Pavlov: With the emergence of such a large team of testers practice unit testing remained? Or is it no longer necessary and responsible for the quality of the product QA / QE?

Ruslan Sinitsky: Unit testing is, but minimal, because we have a very complex product, which consists of different modules. This is a hybrid, a mixture of client, server code, admin scripts. Therefore, we use complex testing systems that allow you to call a whole chain for scenarios and determine the problem in a particular module. We are not avoiding unit testing, just for the time being we are not paying enough attention to it due to lack of resources. In the future, we will cover modules with unit tests.

Pavel Pavlov: Does the company practice code review and who, ultimately, is responsible for the quality of the code?

Ruslan Sinitsky: Yes, we have the code review in the team. We know which modules require review, and which, in principle, not, which are critical and which are less critical. I myself do code review of certain modules. There are people who insure each other. We try to periodically make code review in critical parts. Especially if we see the emergence of regression, that is, the test determines that something breaks after adding a new functional. Accordingly, more experts are beginning to delve into the code, this module and make a review.

Pavel Pavlov: What tools did you use? Did your own solutions create or apply something?

Ruslan Sinitsky: I would not say that we have automated everything here. A person just commits, there are people who are subscribed to commits to one or another branch, an alert arrives that such and such code has committed. A person can roar. Or, for example, I ask the developer, who is working on the module, to sit down and see how it is implemented inside. I would not say that this is a super-formal process.

Pavel Pavlov: And, in fact, there is no need for such a super-formal process?

Ruslan Sinitsky: Now, no, it will be necessary in the future, when there will be even more people. At the moment, that is, we are satisfied. But code review is a very important thing, it is very important to have several people who understand one piece of code.

Pavel Pavlov: And how do deployments and updates occur from the point of view of end customers, users? How do you deliver new versions of software, new builds? How seamlessly does the whole process go?

Alexander Astapenko: I will add one more thing. If you were something like cloud service solutions with your servers, infrastructure, then you would roll out and control the deployment process absolutely independently, automatically, but when you have a scattered network of partners, that is, such a middle-men, through which you are already knocking to end customers, how do you roll out updates to them, how does this process occur?

Ruslan Sinitsky: Indeed, upgrading to the next version is one of the most complex processes within the product. Because there are people who are already paying for the product and it is necessary to prevent any downtime of their applications, to minimize the downtime of our deshbord. Imagine how many partners there are, each of them has its own custom, some kind of thing. Someone has one billing system, someone has another, someone has some settings, someone has a little different, different types of servers. And it brings quite a lot of trouble. What are we doing? We have created such a tool, which is called “pipe”, and as if in this pipe we say: “We have version 1.9.2. We want to upgrade to 1.9.3 ”. The pipe clears the iron, installs 1.9.2, performs tests, then upgrades over it, tests again and sends a report. And we see what problems, at what stage, and we are trying to prevent them at the stage of upgrading testing. We write patches for upgrade: patches of infrastructure elements and patches of custom containers (sometimes also required). All these patches, additional modules are tested during the upgrade. Further, when an upgrade occurs, with new releases we introduce such a rule (in order to protect the end users that our partner has more): the partner must provide a separate platform where we clone production and do a pre-production upgrade. We make a pre-production upgrade, we see that some custom things that this partner has, for example, are incompatible with the current update. If everything is okay, then we upgrade the production.

The process, frankly, is very complicated. Often, the first upgrades took two days. Well done guys, of course, the team is very motivated, but in the end - squeezed lemons. Today we have divided the process into two stages. The first is to prepare for an upgrade, when certain actions are performed, they can be carried out in a relaxed atmosphere, without haste, prepare the infrastructure, somewhere back-ups should be done in advance. And the second - the actual update time. That is, we are trying to minimize the update interval, to bring the maximum action to the preparatory stage. Recent updates took about 4--5 hours. There were more, there were less, depending on the complexity of a particular production. We strive to ensure that updates are made by our partners, that is, we release a new version and say: here, in the repository, a new version, following such and such instructions, you can update your production.

Pavel Pavlov: And what is the current distribution of roles between you and partners, hosting providers, in the context of user support and infrastructure?

Ruslan Sinitsky: At the moment, the procedure is as follows. We install Jelastic and provide a series of trainings. Trainings on support, on monitoring the platform and in parallel connects marketing, which starts teaching partners, for example, hosts, how to market this product, what can be advertised, how to change the site, that is, a whole range of measures and procedures. There are three stages of launching our platform - POC (Proof of concept), when we just put Jelastic on a piece of metal, we see that everything works well; then a beta launch, when we are already in the process of customization, a series of trainings and the hoster begins to manage the platform independently; and commercial launch, when billing integration ends and press releases are held, a full-fledged marketing company. After that, the hoster is responsible for maintaining the health of the cluster and for supporting end-users. All messages, first of all, come to a hoster and all problems come to a hoster. We provide a second line of support and fix some complicated things that, for example, the hoster for one reason or another cannot figure out: the complexity of the product, the flaws in the product (this also exists, of course), or the hoster’s misunderstanding of this or that functionality. But after the commercial launch, we are no longer responsible for the platform. Therefore, currently there are various providers that provide a different level of quality. I now know that in one country there are hosters that provide a different level of Jelastic quality. And on one hoster people are happy, but on the other - not very.

Alexander Astapenko: Is it not in Russia by chance?

Ruslan Sinitsky: I will refrain from commenting)

Alexander Astapenko: Do hosts do not require any legal guarantees from you? Especially regarding the moments of down-time, which are possible during the transition from preproduction to production.

Ruslan Sinitsky: I would not say what they require. They expect that everything will be fine, that there will be no downtime and that we will do our job qualitatively. Frankly, sometimes there are serious difficulties, because it is really a very complex product, there are a lot of modules and it is sometimes difficult to foresee some points. Naturally, we try to avoid such situations, but if they happen, we do everything possible to minimize the damage. Yet people, hosters understand that problems can arise, it is important how you feel about solving these problems. If you turn your back and react slowly, then the relationship is not very good. There are hosters with whom we have a golden relationship. I invite them to us inside the team, sit down with them, rummage and discuss the roadmap, try to understand their feedback. There are partners with whom we simply maintain formal relations. There are partners with whom we communicate little, because they do their job well and we do our job well. There are very different situations.

Pavel Pavlov: And which region was the most difficult, where it was most difficult to go out and work? And were there any such regions, countries?

Ruslan Sinitsky: At the moment, Asia is for us the most difficult region for a commercial launch, as long as there is no Asian partner. I hope that in the near future will appear. I mean Singapore, Malaysia. We have Australia already, Japan, I would also like Singapore and China. China, of course, is very hard. There is a hard business. Directly through cooperation, I do not know, everything is specifically in fact. I would not say that it depends on the region, it depends on the motivation of a particular hosting provider. Hosters are different: there are big, there are small. Somewhere the director was delighted, Jelastic was hooked up and the whole team was delighted. They do a lot of promotion, their customers love it, everything goes well, everything grows well. And it happens that someone is lowered from above: “launch the product” and the person who is responsible is not motivated, therefore the development is slow. Everything depends, first of all, on the people with whom you work.

Alexander Astapenko: A brief question on the same topic. There is integration, then support. Does the latter happen remotely, or is there a specialist onsite? You talked about an account manager, a technical specialist. Do some of them leave the site or is it some kind of business trip? Or is someone always there?

Ruslan Sinitsky: This is not currently necessary. The product is automated. Sometimes business people go to build relationships. I went to my partners several times in order to talk inside, sit down, understand how to speed up the processes and eliminate these or other problems or just listen to their business ideas. There are partners with whom it is necessary to keep very warm relations, they are critically important. We meet with them periodically.

Alexander Astapenko: Well, as a minumum, have a beer.

Ruslan Sinitsky: As Minumum to drink beer. Exactly. That is, you need to understand that you work, first of all, with people. These are ordinary people, they are the same: they both drink beer and swear obscenities sometimes.

Alexander Astapenko: Or Sake.

Ruslan Sinitsky: Well, or sake, yes)

Alexander Astapenko: We are slowly coming to an end. I think, Ruslan, you are already tired of talking. Very good at us so far. I wanted to ask about people in Jelastic. Why do you think they want to work in your company and what values ​​do you bring to the world, what motivates people to work in Jelastic?

Ruslan Sinitsky: I think the team will respond best. But my opinion is that, first of all, we have good relations within the team. We have a normal, friendly relationship. We are like a family. Initially, when there was not enough and one house enough for us, we lived in a private house as on Facebook, ate at the same table, that is, it was a family team relationship, a family product. Now we have grown, there was not enough space - we moved to another, more formal office now. Nevertheless, the relationship remained warm inside the team. Second, very important - people understand that they are creating a serious world-class product, that we are competing with big players, that they are creating history. It is highly motivating. And many things do not come down to them from above, and they themselves can take part in the development of the product.

Alexander Astapenko: And you, Konstantin, were at the head of this family for a long time, and then in September of this year a new CEO came. Can you say a few words about the reasons? Maybe about unofficial reasons. I already read the official reasons in the interview. How did the idea to take the CEO outside take hold and are you satisfied with the result of two months?

Ruslan Sinitsky: Thought has matured as follows. The orchestra man is good at a certain stage, but when a company starts growing, it slows down growth. To some extent I was such a person. And technology, and business, and marketing. It is impossible to take a long time. We decided that in order to scale our business, it is necessary to attract more professional people. And this is actually a good practice. This is a very important point to realize. Many people may fear that here comes a man who is smarter, will take you and throw out or deceive, trick. But these are silly concerns. You need to attract people who are smarter than you, so that they can do better than you. John is just that person, he has much more experience in many things than I have. We are opening a new enterprise-direction - an area where I have never been. For me, hosting was a new field and it was not easy. Enterprise is even harder. They play the role of relationships, dating, experience, trust. The right person, the right english. There are many factors that are important. Therefore, we decided to hire a professional director. , , — , , .

: , “”. , , - , , - . , ? , , , , , , ? Maxfield Capital. ?

: , , . . , , . Maxfield Capital , , .

: . - , . , enterprise, , ? Jelastic?

:I think that not everything is perfect yet, many questions need to be solved, there is still space for me here. I'm interested in working at Jelastic at the moment, because this is a drive, I live by it. I wake up - I live Jelastic, I fall asleep I live - I live Jelastic, my wife is jealous of Jelastic. I am not tired yet from working at Jelastic.

Naturally, I follow the parallel technology, news, but I can not say that I have enough time to concentrate on some additional direction. In principle, I still do not burn with a special desire. I want to make Jelastic a really big successful company that would be known all over the world and consistently stood on its feet.

— . , , , . , . , - . , , . , , , - .

: , “CTOcast”. , . - ?

:Do not be afraid to create something new, do not be afraid to destroy standards, do not be afraid of the state where you live. Fight for your idea, for your dream, do not give up, try to create something interesting, new. Try to make work so that it is a part of your life, then you will have fun. Because we spend 30% of our time on work. Rejoice in what you have and strive for more. On such a note I would like to complete our podcast.

Source: https://habr.com/ru/post/204424/


All Articles