Project management, Recruitement, Software architecture, UI/UX Design, Marketing
2019 - 2021
Here is the behind-the-scene story on how I built the first ever B2B SaaS for one the biggest multinational corporation in the energy industry.
Official website
In 2019, I started working for Tractebel-ENGIE in Brussels as a data science consultant for the nuclear business unit. During my time there, I was introduced to a wind engineer who had developed a methodology in Matlab™ and Excel to assess ice fall risk from wind turbines during the winter.
The next step was to build a web application to make this tool available to clients directly, without having to inquire Tractebel’s engineers to receive a risk analysis. However, they struggled to find an IT team as they had a limited budget, no in-house developer available, and working with external consulting companies is often very time and money consuming so it wasn’t an option.
After a few conversations, I had a great feeling about the TRiceR product owner and it was clear that our approach to software development was similar. I am convinced that this kind of relationship and trust is an important part of success when you are driving innovation from within companies or creating a startup.
At that point I was pretty sure I could build a proof of concept in a few weeks with the help of a small team. After a couple of phone calls explaining the goal of the project, I contracted a back-end developer as well as a front-end developer with specific skills I was looking for and I took the lead on project management, AWS architecture and UI/UX design. I quit my data science consulting position and went all-in on TRiceR.
For the interface design, I was trying to replicate the steps of the Matlab tool while keeping the UX light and intuitive. The main idea was to use a left column as a file explorer (taking inspiration from Notion) and have the rest of the screen free for calculation inputs and viewing results.
I designed each frame on paper first, then made a functional prototype on AdobeXD that we reviewed many times with the product owner to make sure we had the best layout possible for the users. Then finally, the front-end developer brought the design to life in the application interface.
Paper
AdobeXD prototype
Frontend result
Using the original procedure, ice fall risk calculations were taking around 1h30 to compute followed by several human hours to present these results in a PDF. The plan was to translate the Matlab code to Python, optimize it as much as possible and use cloud services to parallelize processes.
We decided to opt for AWS because ENGIE was already working with them on other projects. It was my first time using a cloud provider so I spent 4 days taking online classes to learn about the different services, how to deploy code, optimize costs and finally pass the AWS Cloud Practitioner exam.
Here are different iterations of the software architecture :
Board draft
Version 1
Version 2 - schema not final
Before cloud services existed, applications had to be run on servers that were usually physically in company offices. Nowadays, you can simply pay a provider and access these servers remotely. But you can push this concept even further and design an architecture using “serverless” services, meaning that you don’t have to manage the hardware and software of servers and that you are only paying for the actual server usage time (think of it as an on-demand system) instead of a fix monthly price for example.
That means that when no clients are using TRiceR, the monthly billing cost for ENGIE is close to 0$. The main technical drawback of this setup is that after 2 hours the next calculation will take a few seconds longer to process as the server needs to “warm up” again. On the other hand, when several users are launching calculations simultaneously on the app, the backend system auto scales to as many servers needed so there are no slowdowns.
TRiceR’s technical requirements were a perfect fit for this kind of architecture and every time I present it to other project managers or even to AWS engineers they are pleasantly surprised as this is an uncommon yet really efficient way to approach these use cases. Nevertheless, it’s a quite complex approach to implement as you need engineers with cloud specific skills and that is rare to find.
The biggest challenge on the backend side was a part of the code that involved a Monte Carlo simulation that looped 10 million times, naturally creating lengthy computation time. We didn’t have the possibility to reduce the number of iterations as it would have reduced the accuracy of the model, which is counterproductive for a risk assessment tool. Thankfully the cloud provides us with other options.
The idea is that instead of having a single computer processing all these iterations, you can split them between hundreds of servers (700 in our case) running at the same time and then merge the results together.
We managed to get calculation times from 1h30 to 1min15 (that we would later even more reduce to 25seconds) and the cherry on top is that the cost of this operation is the same as if we didn’t parallelize the simulation (1h30 in serial or in parallel is still 1h30 of billing time).
We had spent 2 months building a solid backend and an intuitive interface in the beginning of 2020. It was time to put all these efforts to test in the outside world.
ENGIE identified 12 Belgian companies that would be interested in TRiceR. We prepared several demos for them and in person events. We managed to convince most of our potential clients to try out the application and we opened beta servers for the following 2 months.
Meanwhile, we got our code pen-tested, meaning that a team of developers tried to hack the application and find security breaches in our system, which they couldn’t achieve thanks to a properly wired back-end architecture and overall good code quality.
The feedbacks were great, everything went smoothly, no major unexpected bug was discovered and therefore we could officially announce the development of TRiceR successful🎉.
From there, I had to build off of the small success we had and take it to the next level. I started my own company in Belgium (TOMORROW STUDIOS SRL), strengthened professional relationships with my associate developers through contracts and signed a 3 year software development deal with ENGIE.
With a product ready to be shipped, the next step was to focus on the business part of things (pricing, sales, marketing, legal). There were several things out of my hands that turned out to be more difficult than I expected. As I mentioned at the beginning of this story, this was the first app of its kind ever created inside the ENGIE group, so they didn’t have the tools to sell this kind of product and didn’t have the right people to take care of it neither.
The thing is, until now we had been working mostly quietly under the radar so I could manage most tasks myself but then when the word got around that a software made “in-house” was going to be sold to other companies, I had random people that had no idea about the project telling me what I should be doing or trying to change processes without any understanding of the philosophy behind everything we had built. This started a constant fight between corporate sluggishness and trying to stay true to the lean approach while still being compliant with ENGIE legal rules.
Nevertheless, I tried to help business development as much as I could using my previous experience working as a data analyst for a SaaS startup in Barcelona (https://www.redpoints.com/). I wrote a sales/invoicing process recommendation document that is available here : open document.
I later hosted a public webinar with 200 attendees for the commercial launch of TRiceR where I presented all the great product’s features.
Nowadays, my team and I are still updating the application when we receive clients’ requests and new budget is available but most of the work is finished.
As a final word, I am really grateful for the opportunity ENGIE gave me and I am beyond thankful for the people who believed in my ideas, making this journey possible. Through this experience, I could showcase my abilities and learned so much along the way. I was lucky to meet the right people at the right time and their dedication is what allowed us to accomplish so much in a short amount of time.
This was an amazing kick start to my early career and it set us up for more successful projects in the future, surrounded by such a talented team.