Fluidit Ltd. Five Years – Recap of the First Year
Almost a month ago, Fluidit turned five years old! The story of the company, however, goes back a bit more than half a year more. To celebrate the occasion, I decided to write a recap of the first steps of the company from my personal point of view. I sincerely wish to thank all our employees, clients and partners for making this dream possible throughout the years!
Prelude
The story starts a bit after the 1st of May festivities in 2016, when one of the big directors of my old employer told the engineers: ”we need more entrepreneurship in this company”, which made me think, that, in fact, I was almost an entrepreneur already. I visited the clients and the seminars, I sold the projects, made the offers, executed the projects and sent the bills. The only thing I didn’t do was to reap any benefits or steer the company’s direction.
That very moment I dropped a call to Kalervo, my study time friend and ex-colleague, and told him that ”Now it is the time. Will you be the CEO?” Kalervo said ye, without hesitation and so I told my employer I will resign at the end of the year to start my own business.
Soon we had a pretty clear picture, what we wanted to do: 1) develop and sell model-based analysis software for multiple different network types, 2) provide the simulator and tools as an integrable library, 3) provide world-class engineering services, 4) training and teaching and 5) scientific-technological R&D. The goal was to be an international company from the beginning. We also knew from the onset, that we want to focus quite strictly on the core business, and leave all accounting, ICT management and other supporting stuff to the partners.
Coming up with the name for the company was a lot harder. The initial working title was Insinööritoimisto Sunela & Mies (Engineering Office Sunela and the Man), jokingly. For quite a long time we were playing with different names somehow related to hydraulics, models, networks, mechanics, ICT and so on. In Summer 2016, I accidentally dropped the name Fluidit on a phone call with Kalervo, while waiting for a train on Tikkurila station, and that felt right almost immediately. It contains fluid and IT. Also, in Finnish, fluidit is the plurar of a fluid, i.e. it translates into fluids in English. As a related note, it is pronounced as fluidit, not fluid-IT.
We were also toying the logos and other visuals during the late Autumn – here is one of my proposals as an example, but of course it was decided that this stuff would be ordered from the professionals, but I still think the proposal was not completely bad.
The company was officially founded on 27th October 2016, in order to provide a negotiation partner for the co-operation negotiations with my previous employer, and to enable us to ask for offers for all the banking, ICT, accounting and millions of other services the businesses need. The contract was signed in the brand new Hotel Torni in Tampere.
It was not too stressful to start a business, as we knew very well that there would be enough clients. I had also developed software a long time already and a similar suite of modeling software myself, so I knew what to expect and had a rather good idea of the architecture. We also graciously got office space and some seed money from Sitowise. Also, some early projects were done for them. Without their, especially Perttu Hyöty’s, support, the start would have been much rougher.
Early months
I and Kalervo started working in Fluidit Ltd. 2nd January 2017, Timo joined us two weeks later and Janne in the beginning of February. It is funny that all four initial members of the team were left-handed. Even currently, we have higher than average share of lefties is the company! The picture shows the four of us in late 2016.
In a week or two I managed to re-implement pump batteries and the Python control station support in the good old EPANET 2, based on my scientific publications. I also greatly improved the UIs of both EPANET and EPASWMM, by adding support for panning and scrolling using the middle mouse button. I also added tools for importing network info and exporting the simulation results (including the minima and maxima) into Excel sheets and shape files, so that we could use the free QGIS for creating the maps and Excel and Word for the rest of the reports. We were using these tools until June–August 2017.
Evaluating the tech stack
I spent most of the first month by evaluating and assessing the technology stack for the software. The first question was about the UI layer. As we wanted the tools to be robust, power-user enabled and customizable, I had quite high requirements for the toolkit/framework. I evaluated, among others, various web frameworks, Qt, .NET (WPF and WinForms), wxWidgets, GTK, QGIS, Swing, NetBeans RCP, Eclipse framework and SWT, and many others.
For some time, I was seriously considering QGIS (C++ and Python + Qt) as the basis, but decided against it, as there are plenty of bad examples of modeling tools built on GIS software, QGIS being still quite unstable at the time, and Python being non-optimal even for UI development due to the dynamic nature of the language (my personal opinion!). Also .NET framework, Rust, C++ and JavaScript were quite quickly ruled out.
It became apparent, that Java virtual machine would be still be the best way to go, as it just simply had the best available libraries for any required usage, especially GIS and scientific computing stuff. At that time, though, it felt Java was quite stagnated, and it had been a pain to write a lot of boilerplate code for the software. My previous modeling suite had been around 1.5 million lines of code. So, I decided that some other JVM based language would be the best fit: we could reap all the benefits from Java ecosystem, but the development language would be much more efficient.
Recommended by LinkedIn
For a long time ,I was toying with Scala, but in the end it didn’t support good enough Java integration. Quite accidentally I ran into Kotlin (months before Google selected it as #1 Android development language) – and while it was somewhat buggy and lacking, it ticked all the boxes, including the dynamic properties, reducing the amount of boilerplate a lot.
That left us with the choice of Java GUI toolkits. Quite soon it was apparent that there were two major contenders: Eclipse with its non-standard SWT-toolkit and NetBeans with Java Swing. I was seriously considering Eclipse, especially since NetBeans development was all but halted back then. In the end, Eclipse and SWT proved to be too bloated, slow and badly supported by third parties. Also, NetBeans was recently donated to Apache project, giving hope, that its development would continue again, so I decided to choose NetBeans RCP as the foundation.
In retrospect, both choices, Kotlin and NetBeans have repeatedly proven to be the optimal ones. NetBeans has been under active development and gaining back some IDE market share during the last few years. Kotlin, too, has gained a lot of support and it has matured quickly to a venerable language. The foundation has been strong.
Based on our business goals and my previous experience, I carefully crafted the architecture of the software to be dynamic, extendable, integrable, testable and efficient. The code sharing with the different software was to be maximized, strict separation between the UI and the actual logic of the different tools was enforced, as OSGi framework was utilized to make everything plugin based. One testimony of the success of this architecture is that we currently have about 200 000 lines of code, 95 % of the code shared between all the software, and much more polished functionality than the previous software with over 1.5 M lines of code.
The second half of the year
In March 2017, our own tools started to actually do something useful, and in June I started to use Fluidit Water for one project and Janne for another one – it was doable, but not too nice yet due to the bugs and missing features. Finally in August–September Water had the most annoying stuff fixed and also Sewer started to be in a usable state, and we could really start working using our own tools onöy.
In August 2017, we also gained our second employer (and the fifth member of the team) when Mika Kuronen joined us. Then we also rented an office in Järvenpää too. Finally, we started to have the tools usable for the projects and enough people for doing even more demanding projects.
Throughout the year, Timo, Kalervo and I were selling and doing projects, Kalervo was managing the business, I was coding, and Janne and Mika were doing as much projects as they could. It was fun, though demanding time. In the Tampere office, we spent a lot of time together and did also quite a lot of non-work activities together. It felt like a small family and we all had the feeling that something big will come from this!
It was interesting to note how quickly my and Kalervo’s status changed due to founding the company (Timo already had experience of this): suddenly a lot of people were calling and proposing all kinds of co-operation, which had seem to be impossible before. Even though the titles do not matter much here in Finland, still the people do know who can make the decisions, apparently. Of course, our company has a clear focus, which also helps. These calls and proposals have been continuing ever since, and I think this is one of the key reasons I enjoy being one of the big bosses. It is always interesting and educative to start think about the possibilities of working together with others, even though they are seldom realized.
Autumn 2017 was interesting and exciting also for the fact, that I defended my PhD dissertation on real-time whole-cost optimization of water production and distribution in Tallinn University of Technology on Friday 24th November 2017. Professors Zoran Kapelan and Luigi Berardi were my opponents, and Raido Puust and Anatoli Vassiljev supervisors. The event brought almost a hundred colleagues, clients, researches, friends, and family to the defense and the traditional karonkka party in the Glehni castle close to the university. Apparently, it was the biggest PhD defense in the history of Tallinn University of Technology.
I made a huge coding sprint in late 2017 and during the Christmas holidays, to get the software in usable enough state for the Network Design and Modeling course in the Aalto university starting in early January, where we were teaching with Kalervo. Unfortunately, the user experience was not, quite understandably, yet that good, and I kept updating the software at full speed during the course. In the end, we and the students did manage, but the unfinishedness did show in the course feedback.
In the end, the 1.0 version was released in May 2018, but that was just the beginning, as only the 2.0 version released just before Christmas 2021 fully realized all the original ideas and goals, but that will be another story.
Overall, we made a small, but mentally important, profit already in 2017. Ever since, we have been profitable and growing steadily to the current 15 people at the company. As of late we have been putting quite a lot of focus on updating our brand, training materials, documentation, and user manuals, polishing the UI in millions ways, and sales. We have also started to develop some new products and making the overall R&D and product road map for the coming years. As always, the design and assessment projects form a concrete foundation on which all else can be built.
I will return to the later years, 2018–, in other posts at later time. Thank you for the interest in the company history and for the continued support for our efforts!
Senior Business Development Manager at Insta Advance Oy
3yMarkus, this was a real enjoy to read about your road from the idea to successful business with a strong knowledge base. Congrats to you and your team. 😀
Senior Sales Executive @ Dalux | Bringing BIM magic to construction sites
3yHonoured to be part of this journey Maku! 🙏Thanks for calling me back then. Quite a lot stuff and things has happened in five years, but I bet there will be a lot more just around the corner.