20 March, 2017

What is flespi?

Some background information about why we developed flespi platform and how to compare it with another Gurtam product – Wialon

Hello! My name is Aliaksei Shchurko and I'm a developer. +)

Let me introduce myself before I tell you what flespi is and why we created it.

I was the one who initially created Wialon => nowadays the only telematics software platform in the world tracking more than a million vehicles in real-time. Now it is developed and delivered to the market by a team of 150+ talented people including designers, business analytics, tech writers, and so on. With a large part of the team being developers of course.

I was the first person who launched the SaaS version of the system in a dutch datacenter with a few servers and I was the one who spent sleepless nights if anything went wrong with the software, hardware or network. During our 2nd partner conference in Logoisk (far-far back in 2011) with a hundred of the largest partners from all over the world who came to Belarus to discuss business opportunities, we experienced a major crash of several database servers where we hosted SaaS version of the software now known as Wialon Hosting. And it was me who at 1 AM, a few hours before the conference opening speech, just after the welcome dinner, made my best to eliminate the crash and yes, I managed to fix it and nobody even noticed this downtime. Nowadays Wialon Hosting is running on a few racks filled with hundreds of servers administered by a perfect SRE team and we even have our own NOC.

It was me who created the first GPS software called GPSDisp more than 10 years ago and then, by occasion, during Linux server reinstallation immediately lost all the sources. Software that was sellable! Yep, when I needed to create protection for it later, I had just wrapped it with Sentinel USB keys, and I sold a few copies of it. The solution was running smoothly with no bugs for months and customers were happy. This was my first and last commercial software for Windows OS by the way.

I had nothing else to do, but to develop everything from scratch and make it Linux-based. At the time I already knew what I wanted to have. And it was amazing! The new software was much more feature-rich, but it was my first pure server-based Linux software, so it contained some architecture problems (with lots of good architecture features). The software was named Wialon — I just put some words together in my head, I googled the result to be sure nobody used it, and voila. Now it is one of the most well-known brand names for the B2B telematics market all over the world.

So what did I do next? Sure, I put Wialon v1 sources on the shelf and rewrote everything one more time. The name for this new product was Wialon Beta2 and after we started to sell it as Wialon B2.

A year or two passed and our software conquered the Russian market. It was simple, web-based (yeah, we developed proprietary web-server, you may just google "adf_http_server"), relatively cheap, fast, and very scalable.

We had dozens of installations on customer servers, solved a variety of support questions and what did I have to do next? Obviously — full rewrite!

I had the biggest possible dispute that could ever happen inside the company with all our commercials, but I won (you know, they didn't have any chances in this dispute=)). So within 3-6 months we developed a new platform, we named it Wialon B3, just to show that it is the same Wialon, but a new version. Initially, it was developed to run on multiple servers at once. To test this we employed a SaaS model to provide software from our datacenter. This version was later renamed to Wialon Hosting.

So after 2009, Wialon became cloud software and since then we’ve had no chances for a full rewrite. Hundreds of thousands of vehicles controlled by the system made it impossible.

Yes, obviously, we rewrote a few internal components, tried to develop special AI methods for detecting fuel thefts and fillings, constantly optimizing some things, but preserved distributed, monolithic design and a large customer base, that got used to the software which is becoming a kind of anchor in using new technologies. We couldn’t even rewrite any algorithm, because it would change all the stats for the customers and we would need to support both old and new versions of the algorithm. And this is always weird.

So, two years ago I took a few smart brains, very experienced in the area and we created a team. flespi team. First, we tried to create special components to be used in Wialon, but then, approximately a year after, we decided to target the commercial market as well with a product that is proudly made by developers for developers. Yes, now we have some kind of beta version, not ready for immediate use in super large projects. But this is totally ok for one more start from scratch.

Yes, I forgot to mention => we downshifted from C++ to pure C, we developed so many things on our own, like web client/server, logging, application, configuration, installation frameworks to simplify management of the software running on thousands of servers in various datacenters, own database engine, HTTP REST API framework, we shifted from multithreaded applications to simple one-thread event-driven binaries and many other very low-level raw things. We are using an extremely low quantity of open source libraries and most of the things are developed by us.

Why did we do it? Because we want to have full control over what is going on. Do you know why rally drivers do not use ABS and automatic gearboxes? Just because they want to have total control over each moment of driving. The same here — we want to be able to predict everything and fix any situation that may occur during any type of load on the software. I had so many examples in my professional career when you push the software to its limits, then suddenly third-party libraries start to fail. And it is often the case that trying to fix such bugs does is not successful or takes so much time...

That's why we wanted almost everything to be developed in-house. And now we have a platform built with deep experience in the telematics backend solutions, both from a developer and system administrator point of view. Very flexible and very speedy => flespi platform.

Of course, any product is nothing without the people behind it. I always believe that a good talented team is the most important part of the project, much more important than bright ideas or any kind of money. And our team is incredible in the knowledge and experience of telematics backend solutions. Looking back to Gurtam, we state our mission as to provide application developers on this market with the best technological and reliable backend undertaking everything related to telematics — data access, communication with devices, AI and neural network algorithms for event detection and processing, so that consumers of the flespi platform can focus on their main mission — a business application that processes telematics data and delivers a proprietary product. And I see no reason why we should fail =)

Soon on the blog, I will publish several articles on the principle of architecture we are using and why we are doing it this way. Stay connected.