Flo talents: how ex-Facebooker joined Flo to shape the future of women’s health

Kozub Alena
Flo Health UK
Published in
12 min readDec 21, 2021

When Vadim Nikulin, Data Science Lead, left the London Facebook office to work with Flo, he already had experience at Yandex and Microsoft. In his interview for IT-portal dev.by, Vadim discussed how he prevented improper behavior on Facebook, why he traded a major corporation for a startup, and what breakthrough he is working on at Flo.

Vadim Nikulin bio

Vadim was born in Yaroslavl. In 2006, he graduated from the Mathematics Faculty of the Yaroslavl State University with a degree in Applied Mathematics and Information Science. Vadim competed in ACM ICPC programming contests, reaching the 2006 World finals.

During his sophomore year, he started working at Tensor. In 2009, Vadim got a job at the Moscow office of Yandex. He started out as a backend developer, eventually moving on to ML and Data Science. At Yandex, he was engaged in the final stage of search ranking, developing the component that assembles all relevant search results (news, articles, videos, and images) and outputs them to the user in the best possible order.

In 2016, Vadim was hired by Microsoft and moved to London, where he worked on Bing’s search suggestion ranking for a year.

In 2017, he took the job of Senior ML Developer at Facebook’s London office.

In 2021, he was recruited for the position of Data Science Lead at the London office of Flo.

Beginning: programming competitions and fist career steps

— As a student, I participated in many student programming competitions, going as far as reaching the finals of the Programming World Cup in my first year of graduate school, and it helped determine my career path. ACM ICPC (Association for Computing Machinery International Collegiate Programming Contest) is sponsored by IBM, Google, and other major companies. If they notice you, advancing in that field becomes much easier.

That was when I simultaneously submitted my CV to Google and Yandex. Yandex didn’t take long to reply, so I moved to Moscow. There, I started out working on the backend before eventually moving on to Machine Learning. I’ve stuck to Data Science and ML engineering ever since.

Everything at Yandex was fine — the tasks were interesting, and the team was great — but I wanted to do something on a larger scale. That’s how I ended up in London in 2016.

At first, I got a job at Microsoft. There, I worked on Bing’s search suggestion ranking. A year later, I was offered the position of Senior ML Developer at Facebook.

— Was it easy for you to get the job at Facebook?

— I didn’t have any difficulties with the technical part of the interview: Yandex employees have strong expertise, and anyone from there can solve the Olympiad-level problems in Facebook’s interviews.

The behavioral interview, which tests personal qualities and motivation, may present difficulties — and it’s why I only managed to get hired at Facebook on my second try.

It all boils down to a difference in approaches. At Yandex, teams were structured differently, and employees had different roles — we didn’t have managers or team leaders; there was no clear product line. At the job interview, I was asked to give examples of various interactions, and mine turned out to be irrelevant.

Basically, at Yandex, we could hang out at a café in the evening, brainstorm an idea, and a couple of days later we’d have a prototype, while West companies tend to focus on processes and fine-tuning products.

Both approaches have their pros and cons. Additionally, much depends on what stage the company is at.

Facebook attaches great importance to feedback culture: how people adapt to others, how they respond to criticism, and how they resolve conflicts. On top of that, “conflict” has completely different meanings at FB and Yandex.

At FB, conflicts are about resources and different approaches to solving problems. In some cases, you’re expected to be “more data-driven,” that is, make decisions based on data; in some, convince the manager to pursue a certain direction; and in others, motivate someone from another team.

Meanwhile, when people from Russia are asked about conflicts, they start telling unrealistic stories that are practically impossible around here.

— About someone forgetting to wash their coffee mug?

— Yeah, that’s one example. Or someone’s foot getting stepped on in the elevator. These are completely different things.

Work at Facebook

— I sought to land a job at Facebook because I always wanted to work in user digital safety.

The company’s London office was engaged in two main areas: advertising (increasing the click-through rate and monetization) and protecting users from various threats, including fake news, scams, and extortion, among others.

At first, my main area of activity was protecting minors from adults who solicited them on social media with lewd requests. Our team detected situations when, for instance, a relative or family acquaintance attempted to cozy up to a child to do something malicious to them.

After that (it’s common at FB to rotate tasks to keep things fresh), we took on the task of looking for people who were planning to commit suicide so that we could intervene and offer help.

— Was the search for potential suicide victims and violators automated? Did you write special algorithms?

— Right, it’s performed through machine learning. Engineers write an algorithm that analyzes a person’s social media profile — their interests, what pages they’re subscribed to, what kind of posts they write, and what pictures they upload. Certain suspicious activity is sent for manual review, where a specialist examines the case to see how the person is doing.

— Is this algorithm limited to the English-speaking segment?

— No, it isn’t. This is why I wanted to leave Yandex for Facebook: the tasks there are on a different scale. At Facebook, we were required to write not just an algorithm, but one that will work effectively for any country.

— So this algorithm is scaled to all languages at the same time?

— There are different approaches. You can use a translation engine, which is the easiest option, though it usually doesn’t work as well, since the meaning can get distorted during translation. It is more efficient to use machine translation during the labelling stage, than collect additional labelling data in the target language. In this case it’s possible to make an algorithm that would work in any language.

For example, any text or image can be reduced to a set of numbers, so that text with the same meaning will return the same or a similar set of numbers in different languages. This is called vector representation of content.

— How interesting and effective was this work?

— It was very interesting. From time to time, we were sent links to articles on how FB helped prevent a crime or a suicide. There are hundreds, possibly thousands of such cases. It’s motivating. When you’re operating with metrics and dry numbers, that’s one thing. But when you see real-life examples, you clearly realize that your day didn’t go in vain.

— But you didn’t deal with the cases themselves — you were only responsible for the development, right?

— Occasionally I had to examine individual cases to figure out why the algorithm worked one way and not the other. But, generally, such situations were handled by a dedicated team.

— Where else did you use such algorithms?

— My area of work was child protection and suicide prevention. But the team as a whole was involved in other areas as well — for example, combating scams and misinformation, such as fake news about vaccines and the coronavirus.

All of these tasks are very closely related, so I ended up generalizing our approaches by writing libraries and guidelines to speed up launches and make them possible with a team of, say, three ML engineers, rather than twenty.

Switch to Flo

— Did Flo lure you in from Facebook? Or were you ready to move on by then anyway?

— Of course they did. At first, they simply approached me to talk. After our conversation, I realized that their mission is very interesting to me. We discussed the tasks. And once it came to the offer, it wasn’t easy to make a decision.

— You weren’t actively looking for a job at the time, were you?

— No, I wasn’t looking for one. But there’s a nuance: In early 2020, I received a Global Talent visa, which allowed me to work in the U.K. without being tied to one specific employer. Before that, I had to get special permits to change jobs. The reason I was granted the visa is that I have several patents at Yandex and co-authored a few scientific articles and a book on Olympiad-level programming.

With Global Talent, I was no longer dependent on Facebook, and although I had no plans to leave at that time — the visa simply made it easier for me to get a residence permit — this feeling of freedom must have swayed my decision: Job offers began to slowly pour in, and I ended up accepting one.

— What made you decide to trade a corporation for a startup? Tired of being a cog?

— No, quite the opposite: Facebook had some very interesting tasks cropping up, and it offered clear growth opportunities for the foreseeable future, including cross-team collaboration, contributing to a couple of dozen teams, and constructing and scaling up processes.

I didn’t feel like a cog, but I’ve always wanted to work at a startup where there are fewer people, the environment is more relaxed, and you can just talk to the CTO whenever you want and make significant contributions to processes. I was also tempted to work in Health Tech, a field where you help people.

— Did Flo outdo Facebook in terms of salary?

— Working for a startup always comes with its risks and rewards: It’s a matter of finding a balance between the two. In the short term, my move to Flo is more of a minor setback: while the pay here is quite adequate, I’d probably be earning more at Facebook after a year. But if we take Flo’s prospects into account, it’s a very good choice. If the company manages to implement the plan and make a technological leap, the figures will be completely different once they make an IPO.

— So you traded Facebook for a startup in hopes of being part of a technological breakthrough and an IPO?

— It was a combination of many factors: the mission and the ability to directly influence processes. Well, and the prospect of an IPO is lucrative as well.

Technological leap that can lead Flo to an IPO

— Could you tell us about the technological breakthrough? What do you do at Flo?

— Essentially, the same thing I did at FB — automating process pipelines. I speed up iteration and generalize the work of ML engineers to allow performing more tasks at the same time, reducing the time it takes to prepare releases.

You know how it used to go up until now? For instance, a company has an idea to launch a more accurate cycle prediction. To do this, they have to collect data for labelling, develop a model, train it, run a test, and try it on older data and live users — and each of these steps requires writing code. It’s too time-consuming.

Meanwhile, the way we want to do it is to write a configuration file and specify where the data is located, what type of model should be used, and how it should be tested — and that’s it, the whole process is launched almost automatically and without any testing errors. Thus, we get a calibrated process that allows us to greatly speed up the result.

The same applies to our work to show patterns that may be connected with diseases or conditions and propose users to visit a doctor. Usually, it’s a long, essentially scientific process. For instance, imagine we’re systematically, step by step, working on the possible signs of risk of polycystic ovary syndrome: we gathered the right sample data, created a model, and validated it with doctors. Now imagine that tomorrow we’ll want to do the same for endometriosis or other conditions. Are we supposed to go through all of the steps all over again?

In an ideal future, we’ll be able to create a playbook, a set of rules that allows us to “launch a new condition in production”, in just three months, rather than a year.

— How are you going to do this?

— It’s a complicated task. Our model will have a graph of questions, and depending on the answers given it will provide a recommendation — for example, whether a person should see a doctor — and a list of recommendations.

Our goal is to make sure that we’re able to construct this decision tree and choose the correct values. If we manage to validate this approach, we’ll be able to build models faster.

— So it’s just a questionnaire? Then where does it use big data?

Each node in the graph has a sample of users that get there based on their answers. We break it down into smaller samples and give them personalized recommendations.

But it doesn’t have to be a questionnaire: The graph can include data from smart watches and other devices that can send telemetry about their user’s condition, such as their heart rate, temperature, and activity. These signals can then be automatically interpreted with the help of the machine learning model.

For example, heart rate variability is a very important piece of information that tells us much about the condition of one’s body. It can be used to measure stress, sleep, and age. We’re working on including these signals in our predictions so that they can be used to assess the overall condition of the body and make recommendations, such as to change the diet, exercise more, and so on. There are many areas to work on.

— Do you receive direct communication from users that offers real-life feedback about the effectiveness of the predictions?

— These methods don’t work very well: the more actions the user has to perform, the less likely they are to use the app. Everything should be automated. At the moment, users have to enter information about their conditions manually, but ideally, it should be collected from their smart watches, smart rings, and other devices. The better we automate this process, the more accurate our data on the history of the user’s condition would be.

— How do you know if your predictions are accurate?

— Measuring predictions is quite easy: we know what was predicted and what actually happened. All we need to do after that is optimize the difference. Suppose the user answers a question on whether they have a certain symptom or not. If they do, this means our assessment was correct. As far as the cycle is concerned, you can simply measure the deviation of the actual from the predicted.

— How do you collect and transmit data from smart devices?

— It depends on the model. For example, Apple created its own infrastructure where it stores huge amounts of information, some of which it’s willing to share with various applications. We ask our users for permission to use this data, and from it, we can draw certain conclusions.

— Are there any problems with correctly analyzing and interpreting the data?

— There are many problems. One of them is that most of the information comes in at night when the watch is usually being charged. There’s no point in measuring the temperature during the day when the person is active. The most accurate measurements are made when the person is at rest.

Convincing users to wear their watches at night and charge them during the day isn’t an easy task. Furthermore, we also need to convince them to share this information.

That’s why we first have to make a product that will interest them and extract the right labels for our purposes. After that, we can adjust our predictions and develop additional products.

— Flo has been working on a virtual assistant that was connected with polycystic ovary syndrome for a long time. What other conditions are you planning to start working on in the foreseeable future? Is there a reason you mentioned endometriosis in particular?

— We try to help people notice a pattern of symptoms that might indicate a disease or a condition and advise them to see a doctor.

We don’t have any specific diseases or conditions in our roadmap yet. Right now, we’re focused on the process, so that we’ll be able to build release-ready features from the ground up in just 3 to 4 months. Once the playbook is ready, we’ll be able to pick the most common diseases and work with them.

That’s why we first worked with polycystic ovary syndrome — because it affects at least 10 percent of women.

— Temperature, heart rate variability, and other metrics aren’t limited to women’s health. Does gathering all this information make you want to expand to health in general?

— Even if the process is successfully automated, it takes several months to launch a project сonnected with a single disease or condition. Three months, if you’re very lucky. I doubt we’re going to lose our focus that much.

By Polina Legina for dev.by

Translated in English by Flo Health

--

--