Posted on 10/03/2020 by Michael Oliver
Client Server’s Michael Oliver talks to Octeract’s founders Nikos Kazazakis and Gabriel Lau about how they’re changing the way raw data is turned into decisions.
Michael Oliver: You two have known each other a long time?
Nikos Kazazakis: Yes, we have. We actually met eight years ago where we did our PhD in the same office. We've been friends ever since. When I had the idea to start Octeract, my first action was to recruit the smartest guy I know.
Gabriel Lau: Certainly the way Nikos pitched at the time, I thought that was a great opportunity to introduce something that could potentially be revolutionary and also something super interesting and try and commercialise that at the time.
MO: What does Octeract do?
NK: We build the next generation tools that people use to convert raw data into decisions. We hear a lot about data science and how people use it to convert data to insights. We can use data science to get probabilities about things that are happening and see trends. However, what most people don't realise is that there is a step missing.
MO: What is that step?
NK: The scientific field that actually converts insights and numbers to actionable decisions is called mathematical optimisation. While we've seen the big difference fundamental technologies like Python or Machine Learning have made over the last 20 years, that kind of change has not happened with mathematical optimisation – it’s still a very manual, laborious, experience-heavy process that can take months to years to just figure out. This is the problem we are solving.
MO: How are you doing that?
NK: We have multiple angles of attack when it comes to creating a streamlined process. In my PhD, I worked on a new solver technology for mathematical optimisation problems. This, for the first time allowed us to harness the power of the cloud to get better solutions faster. In technical terms, these are massively parallel algorithms for mixed integer and nonlinear problems. And in layman's terms, these mixed integer, nonlinear problems are decision making problems. A good example is, say, we have a factory. We can create math and use math to describe the machines, how they operate, connect them to environmental conditions, add constraints about schedule and so on. Data science can give us trends, but what if we want to use this information to actually operate the factory? That’s the question we’re looking to answer.
MO: What are you working on to address that issue?
NK: In the last two years, we've built a very unique optimisation solver. It uses a technology called MPI to seamlessly find thousands of processors in the cloud and solve very difficult optimisation problems. But solving is only one piece of that automation puzzle, which leads me to our second innovation: a new programming language and a compiler that interprets and compiles that language. It's a program we're calling The Reformulator.
MO: How does it work?
NK: The Reformulator enables people to generate mathematics automatically. Reformulation is actually a very time-consuming task and it has to be done by an expert. It's not uncommon for people to spend three weeks to two months reformulating a single model to another form. The Reformulator basically automates this so people can save two month iterations just by using that technology. And by the way, there's no machine learning in this. This is all mathematical goodness.
MO: Is this the first of its kind?
NK: It's unique, there is no product we are aware of that can do these kinds of manipulation. And in fact we are very certain because if it existed we could have used it for development.
GL: People found that formulating a model and sending it to a solver just doesn't work. You have to go back and tweak it, modify the math, do all of these tricks. It also just happens that we were already building this because it's a fundamental part of what makes our solver work so well. And also it's a fundamental part of how we were so efficient, as Nikos was saying earlier, in terms of catching up to get the solver to a state that's competitive with the rest. So it's taking that model that we already had, fitting it into what the market data was telling us and realising that there was a gap and opportunity.
MO: What kind of tech stack do you use at Octeract?
GL: We use a lot of C++ because everything we do is high-performance, including symbolic manipulation. We use a bit of C interacting with Fortran to write interfaces to third party code written in Fortran. We also use a lot of third party software that does very specific calculations. So we use some open source optimisation solvers as part of to solve some sub problems, our solver generates in order to do its magic. So we use things like IPOPT, CBC, CLP and so on.
"...There's no machine learning in this. This is all mathematical goodness."
MO: What kind of people are you looking for?
NK: I think the people we are looking for are the problem solvers – the people who don't necessarily have pristine knowledge of all of these technologies, but have a deep understanding of how C++ works and how good C++ should be designed and how the code we write interacts with the hardware. So especially in high performance calculations, we care a lot about data structures. We care a lot about maintainable design. We care a lot about algorithmic ideas. So successful candidates typically demonstrate this kind of understanding.
GL: Generally, what we found is that the successful candidates have just that logical structured and algorithmic type of thinking. And it's not like they need to be a complete guru at C++, know all the advanced tricks, but it's being able to take things like the algorithms, the data structures and fit that into C++.
NK: Yeah, and beyond that, we're looking for passion, because what we do here is different. It's the kind of environment you can't really find in many places in the world. We are building fundamental technology. We are building what people would call the next Python, the next Machine Learning. These are the tools that people will be using for the next 10-20 years to build other things.
MO: How have you found working with Client Server?
NK: Honestly, it's been an amazing experience for us because we struggled a lot with recruiting. Since we raised our first funding round a year and a half ago, we only hired one person that we didn't know before. We had been trying to hire more people to do some specific jobs for a year and we just couldn't fill the positions. But Client Server just solved our problem in three weeks.
MO: How has the team grown in that time?
NK: It's more than doubled.
GL: I think the main thing was Client Server managed to iterate other candidates that fitted what we wanted very quickly. At the beginning, it was more of an exploratory thing about finding which type of people were suitable for us. But I think within a week we probably found a very high number of targeted candidates.
MO: What are you looking forward to in the next 12 to 24 months?
NK: The next couple of years are going to be packed because we have built a lot of technology over the last two and a half years and now we're at the point where we're preparing to go to market. That's why our team doubled and we foresee it will double again in a few months' time. It's that exciting part where we get large numbers of people actually using the technology. Because we are builders, we build tools that help people build other tools. So I'm very excited to see what kinds of things people will build with the new tools that we'll give them.
GL: I think the most exciting thing is we've built this platform and this technology and the community actually grows enough to a point where they're actually using that to build new tools and then that community grows and then it becomes popular. And in fact optimisation itself would be democratised enough such that new companies can come in and just use this technology seamlessly, just exactly how Machine Learning revolutionised data science.
Driven by technology, powered by people
Let's start the conversation
Follow Client Server on LinkedIn, Twitter, Facebook and Instagram.