📜 ⬆️ ⬇️

Medicine moves to web, chat, and mobile apps. Talk with BestDoctor

image

There is a strange word "telemedicine", and I associate it only with Kashpirovsky sessions on TV and loading water from the screen. In fact, this is just a term for technologies that can make medicine removed.

This is a huge field in which IT will develop very seriously when all formalities like legal procrastination, areas of responsibility and disputes for personal data are settled. Well, when we agree to entrust technology startups and corporations to analyze our organisms and offer treatment programs in the same way as we trust ordinary hospitals.
')
In the meantime, start-ups medtech deal with things relatively simple. For example, they make services for consultations and records in clinics. BestDoctor - our today's interlocutors - offers such a service to companies instead of the classic LCA. About what it is, how difficult it is to develop a medical product and hire people for it, CTO Philip Kuznetsov and HR Polina Rusakova told us.

Traditionally, we’ll tell you about the company's valuation on My Circle: BestDoctor was ranked as one of our best IT employers (in the category of small-companies) with an average rating of 4.6 . Employees appreciate him for his excellent relations in the team, the space for professional growth and the modernity of the technologies used, but above all - for the fact that BestDoctor makes the world a better place.



How does the DMS alternative


- How is your system different from the usual LCA?

- Philip Kuznetsov: When you take a classic medical insurance, you immediately give the entire amount for the policy. Insurance earns on what remains between the cost of the insurance policy and payments to clinics for treatment. It turns out that the insurance is interested in paying as little as possible in order to earn more. And if you spent on medicine less than you paid for the policy, then this money will not be returned.

In our system, you pay for the services that were provided in fact. For example, you employ a thousand people. Some of them found a thousand rubles, some ten thousand, someone never even went to the doctor. You do not need to pay the same policies for all. There is a predicted overall medical budget from which money is withdrawn as employees seek help.

In this case, you should not immediately lay out the amount for the year ahead, and make a deposit for the quarter. Unspent money is returned or transferred to the next service period. For example, we predicted that the team will need 20 million. But the year was a good one, and the staff were ill a little. You can take back the saved money or spend it on expanding the program. And for those who are afraid of overdoing, we have a risky contract.

We earn at the expense of the fixed commission for each attached employee. This is a service charge - a mobile application, personal account, support, for the base of clinics and the workflow that we provide. We tell where it is better to go, we advise, when people do not know what to do. For example, I received a pack of tests, but it’s unclear where to carry them.

That is, we make a bias on service. The patient can call us at three in the morning, because the child has a pimple on the nose, and we will tell you whether to worry. Even if the child is not insured with us, we still advise. Therefore, we are not interested in the fact that employees will be provided with the least possible services and as cheaply as possible. We will only have a headache.

- And why all still do not go away from the usual VHI?

- FC : Nobody else does this in Russia. When we - the three founders of an unknown startup - came to the company and said that now we are going to make a cheap, cool system that works for sure, and there is no catch in it, the company wondered: choose a reliable, well-known insurance or young project. This is one of the main problems that we have encountered - it is very difficult to obtain credit.



- Were there no such problems with the clinics?

- FC : No, for clinics we work the same way as insurance, almost under the same contracts. We send patient lists, warranty letters. They bill us, we pay them.

- Polina Rusakova : We have one of the key departments that constantly communicates with clinics in order to maintain quality and wholesale prices. If popular clinics give high prices, it will be more difficult. Clinics are interested in the flow. If you give them a stream, all is well. If you ask for a contract and say that there will be one patient per month, of course it is not profitable for them.

- Who helps with consultations? Clinics or your specialists?

- FC : We have our own doctors in the staff, people with medical education.

- PR : Our founders were originally doctors. Therefore, we take the selection very seriously. BestDoctor for our doctors - not the main place of work. We hire only those who have a regular medical practice. This allows them to constantly be in focus, up to date with changes and best practices.



How the product unites doctors, patients and ML models


- What are you doing from the grocery point of view?

- FC : Previously, it was just a personal account for patients on the web. There you could leave a request for an appointment at the clinic and see the treatment program. There was a back office that processed applications for recording and a call center. We also had a statistical algorithm that allowed us to calculate the budget. It was our internal tool for scoring, selection of clinics and programs for clients.


Then the functionality of the HR-office was added. This is a system where HR managers can manage employees connected to the system, attach new ones, see how much money was spent on medicine in which month, check reporting documents, and so on (employees' personal medical data are naturally hidden). Now there is still a mobile application that duplicates the functions of a personal account in terms of program and recording, but there is still a chat with our doctors and call center.

There is also a co-payment, which is also called a franchise. This is about as in insurance companies, but not quite. We have a co-payment - a percentage of the service that the employee pays for themselves. For example, an appointment with a therapist costs 1000 rubles. If the co-payment is 10%, then he pays 100 rubles himself, 900 rubles - the employer.

We remove the payment directly from the patient's bank card in order to reduce the burden on the client’s accounting department. Plus, we make a co-payment depending on the type of service, for example, only in dentistry or a house doctor call. Or for each particular clinic.

- I read that somewhere in the midst of all this there is machine learning. Where?

- FC : Yes, in the scoring model, which allows you to predict customer budgets. When we started, we had statistics for decades. We built the original model on them. Now we are enriching it with our data.

We have to invent models ourselves, because no one uses them.

And yet, in order to properly remove the co-payment, one must understand what the service refers to - dentistry, clinic. To do this, we compare the price lists of different clinics. Here a problem arises: for example, in one price list it is written “primary reception of the therapist”, in the other “reception of the therapist is outpatient primary”. And it is necessary to automatically understand that this is the same thing.

That is, the services are the same everywhere, but they are called differently, and we are able to translate their names into our internal language. To do this, we have written a model that can compare the price lists of different clinics and classify their services according to our internal price list. We can compare and find out where the service is, where it is not. We can rank clinics by price in order to optimize pricing.

Doing it manually will be expensive. Now the work of the model is checked by one person, and we would need at least a dozen of them to do the manual layout, because every month a new registry of services arrives.

- Does a model give a lot of mistakes?

- FC: When we use it on the price list, the accuracy is about 80%. And when on entire registries, there is almost 100%.

- All this - own development?

- FC: Yes. Of the third parties, we use only the chat platform. But we will either develop our own, or use another, more flexible framework. We do not have our own telephony, but we finished our own analytics for it by digging a little in the database structure.



How to learn Python and build a business at the same time


- Who works on all this?

- PR : The whole team sits in the same office in Moscow, we are now 74 people. Some of the guys working remotely. The product is now engaged in three product managers, each responsible for their own direction. The design team consists of two people: one is responsible for graphic design and illustration, the other is engaged in grocery design. There are 12 people in the development department, but now we are expanding. Everything is standard there. Backend, frontend, testers and devops on remote.


- Does such a small team cope?

- FC : There are never enough developers. No matter how big the teams are, there will always be tasks for which more developers can be put on. Naturally, some things I would like to do faster. But the team copes with its tasks.

- I read in the Vedomosti your story from a business point of view. Tell me the same about the development history?

- FC: In August 2015, we had one developer who couldn’t develop. For the year we did the MVP, just that personal account with the treatment program. We chose the easiest entry stack - Python. They took the most popular framework Django, and they began to saw the product on it.

The whole first year we had one developer. In the second year of work, we began to expand the team. First another backender came, then the front end appeared. Then came the products. We began to gradually move to other technologies.

From the normal application on the templates, we began to redo the SaaS with the REST-API (in fact, we immediately switched GraphQL). We have a person who is responsible for Data Science, devops appeared. We have shaken up our architecture, we did everything as people do. Normal CI and deploy, because before this deploy through git push-git pull. Then we got a mobile developer. We began to write on React Native immediately under the two platforms.

Now we have what we have - a team of 12 people, and each is engaged in his piece.

- I just didn’t really understand: as a developer who couldn’t do anything, he worked on the product for two years?

- FC: It's very simple, this developer was me. By education I am a biophysicist.

- So, you learned Python and wrote?

- FC: Yes, I had to.

- When did you start recruiting a team, did you refine yours or threw everything out and start writing from scratch?

- FC: Finished. I do not remember that we were throwing something straight. Is that pieces that are not used at all. The stack also did not change. Since we started using Django and Python since, we use it. And on the frontend TypeScript and React. We took Typscript because I am an adherent of static typing.

In Python, we also switched to a version that supports type annotation to take advantage of static typing - albeit not in such an explicit form as in truly statically typed languages.


- Wouldn’t it be better to abandon Python and still get really typed?

- FC : Sometimes I thought it was worth rewriting something else. I looked at C # and sometimes even at Java (it happens with people that you see where it is not clear, why it is not clear). Potentially it is possible that we move to another stack. But this is due to the fact that we need specialized things. For example, if we understand that Python doesn’t pull out any parts of our apish in terms of performance, we’ll just take it and write it on Go. Or if asynchronism is suddenly needed, and we realize that we don’t want to do it on Python, take as a last resort “Noda” or some kind of Elixir.

But all the problems I encountered in Python were not unsolvable. We just have a service product, not rocket science. We do not have problems with wild highload and complex algorithms. We do not need a specialized language, like "Pros" or the same Elixir. We need a general purpose language.

In this language, you can quickly find good professionals for little money. Python is now very popular, and it seems to me that its popularity will only grow, because there is ML, Data Science, Web. Someone on it even makes mobile toys.

- It seems to me that Python is popular with non-developers. They study it in addition to their main activities. For example, you are a biophysicist ...

- FK : Yes, I agree, many experts study it in order to automate their main tasks on their own. The same testers learn Python to write autotests.

But if a person can well in Python and web development, then I don't care for what reasons he began to study it. The main thing is that he could answer the question I ask him during the interview and then show the result. The prehistory is not important, before my eyes and my example is worth it, so I treat such people normally. There are people who study Python seriously - precisely as developers. There are also quite a few.

- And did you also write models for machine learning, while studying on the go?

- FC : When we only had statistics, and there was no machine learning there, the three of us made the algorithm - with other founders. And I did the software implementation. When the models for machine learning appeared, we already had a data scientist.



How to recruit people in a risky startup


- How did you recruit the team?

- PR : It was probably the most difficult period. When I came here, the company had 23 people. About BestDoctor in general, very few people knew in the IT market, but this is a problem for all small companies.


Our problem was that very few people believed in the project. At first, people came because they wanted to work in a socially significant project, but then they went to work at the bank. Our offers are often refused. We had deadlines, but in the end we put together a really cool team. Now we have no turnover. Over the past six months, 1-2 people have left.

Startups need to grow quickly, and you can grow only if new people come. Most techies came through My Circle or Telegram, plus we talked a lot on the recommendations. At that time, I picked up all the developers I knew.

- It sounds as if they were ready to take any people, but after all, they must somehow be filtered by skill?

- PR : Of course, we have filtered, and not only technical skills. Taking a person who is not very suitable for you is a huge risk. Sooner or later, either he will refuse from you, or you from him. Therefore, to pull himself together and say “no, we will look further” - this is quite a difficult decision. When we realized that the person was not ours, we were looking further.

“Why a man might not be yours?”

- PR : Either the people did not technically suit us, or we them. At the start, the project was not as interesting and global as it is now. Now it is developing, and a year ago there was a completely different story.

And it happens that just did not fit in the corporate culture.

- What is it?

- PR : In a startup, not everyone is ready to work, there is its own atmosphere and energy. A startup is a place where many people think they want to go. But when you openly talk about interviews about the pros and cons, people really think about whether they want to.

Startups and companies where there is an active user interaction always live in the “make as fast as possible” format. In the area of ​​two o'clock in the morning something can happen and you should be ready to turn on

Well, if just a person wants to work on projects that bring in money and nothing else - we probably will not converge. Our goal is to make people healthy and prolong life. Most of the people on the team really got excited by the idea of ​​changing the system, which is far from ideal. Many themselves have experienced imperfections and now want to work for improvement.


- But how do you understand that a person is a good developer?

- PR: We immediately looked for midles and seniors, because in our conditions it is difficult to work with juniors. In the competency check, everything is pretty standard. Like any company, we look at self-learning. There will be no courses built, you need to constantly learn new things yourself.

Need flexibility to work in a team. A startup is a place where through difficult times you can only go side by side. If one person turns away, the whole team experiences stress. It is important to be in close contact, to monitor changes.

- FC : On the technical side, I asked the most basic things, which show that a person is really middle or senor, and in fact has been doing Python for more than one year. The standard questions are “what is a context manager,” “what is the difference between an iterator and a generator,” “what know magical methods,” and so on. Basic questions on syntax that I myself have encountered in three years of work. And if I know, then a person should definitely know. This eliminated most of the candidates: the man said that he was a middle-pitonist, but could not answer basic simple questions.

When the “lice check” was over, we moved on to the tasks. One was to check the algorithms, but there was no problem to solve in the most optimal way. The goal was to make a working decision, and then talk on how to optimize it.

The second task is to work with memory. It was important to see how widely a person can think, bypass restrictions. Does he remember that you can use the recording to disk or some thing related to working with the network.

Since we worked with Django, the following tasks were more complicated: make an internal view for the admin, override methods, or write a function that uses PostgreSQL.

- PR : We have long since abandoned the test tasks on purpose. When a startup without a name, gives a volumetric test, and without that small chance of getting a person, they become almost zero. There were certain risks, and we consciously followed them.

- You have not come across the fact that lice tests can weed out and good people?

- FC : Yes, I know such a thought. But I did not require clear definitions from the books. I waited for an answer to the questions that a person would definitely have to face if he has been developing for several years. If you are a Pythonist, you should definitely know what a generator is. At least how it works and how it differs from the list. You should know for sure what a context manager is and what a decorator is.

If you didn’t come across this and didn’t dive, you either have a completely irrelevant experience, or you did very specific things. This is also good, also experience, but it does not suit us.

- In fact, there were people who flooded on this?

- FC: Yes, a lot. Honestly, I myself was very surprised. I asked the familiar pythonists how they would generally interview people, and they said that a large number of people fall off precisely on these issues. I then treated with skepticism. But then he began to interview and ofigel how many people fall on simple questions.

- You did not have such that you yourself did not have enough skill for interviewing?

- FC : It was a couple of times when people came more skillful than me. If a person tells me things I don’t know, then I thank him. It's impossible to know everything. Whatever you are STO, there is always a person who knows more.

- Interviewing is one thing. And in the work you did not come across the fact that you still need a lot of knowledge to work STO.

- FC : There are periods when you feel that you need to pull something up. Ok - read, talk and solve the problem. I have a service station friend from a friendly company, I always consult him on incomprehensible questions. It is important when you have someone to ask for advice.

- There was no desire to hire a technical director of a very, very powerful development, but to go to the management himself?

- FC : It was, yes. We even tried to do that. But at that time we did not have time for a person to become involved in all processes and subtleties. And we decided that it would be better for the team if I myself went to the required level. Because as a founder, I am the most motivated person.



We are looking for new members of our column! If you want to make your company a hero of such a release, write to us at hr@tmtm.ru with the note “Where to work in IT”.

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


All Articles