00:00:05.819
Hello, everyone. My topic today is to tell you about our journey of building multi-million user platforms, specifically two of them, using Ruby on Rails. I believe it's an interesting story. I didn't prepare any slides because they wouldn't adequately support the complexity and craziness of this story. So, how did a small company with only a few dozen people end up building such applications in Saudi Arabia? This is the topic of today.
00:00:25.199
In 1998, we started a small company called NxME, which penetrated the Saudi Arabian market and pushed the button to set up the internet in Saudi Arabia. On the other hand, in 2009, there was a small company called Eva in Finland, founded by one guy who gathered some talented individuals experienced in the booming internet era, around the same time NxME was establishing itself in Saudi Arabia. Unfortunately, the Finnish internet boom collapsed, and while some survived, a young coder who had built an accounting system in Rails joined the others in Eva. They recognized his talent, but skeptics doubted the viability of his system. This coder eventually went to Concan, Thailand, to hire young talent to create systems with Ruby on Rails to sell in Finland.
00:01:05.220
In 2014, I joined the company, where we focused on building with Rails and Angular, among other things. By 2017, we had one common partner in both NxME and Eva, who was board member for both companies. This partner approached Eva, stating that while they had ten professionals working on highly specialized operations, they didn't know how to build applications. He mentioned that clients in Saudi Arabia were asking for a platform that needed to provide housing for millions of people, emphasizing that 70 percent of the population was under 35 and needed suitable housing. They had invested millions in systems that were not meeting the demands.
00:01:59.820
A small company based in Helsinki and Thailand, called Eva, was tasked with building this system. At the time, I was in Thailand, enjoying my stay as I spent a couple of months there yearly while living in Helsinki. I received a call from Yusuvette, the founder of our Thai office, who informed me that we needed to start this project. He asked if I could create an architecture for it, as we were building in Rails. While brainstorming, I had been experimenting with GraphQL and thought of building a generic module to facilitate the architecture and scalable systems. We decided to set up a database with multiple GraphQL modules and a robust API layer to handle traffic effectively.
00:03:02.840
As we progressed, our development teams built several API modules, creating a coupled system with database modules, CRUD functionality, and API gateways, all centered around Rails. We used Fusion Passenger in production, but soon faced memory issues during high traffic periods. With numerous third-party integrations that we relied on, intermittent service outages caused our system to wait for responses, leading to memory consumption with each request. At the same time, we didn't have options like Amazon and Google on our hands; our use of local infrastructure from Saudi Telecom limited us to virtual machines.
00:05:02.940
Eventually, NxME and Eva merged into one entity. During team calls, I faced challenges when managing customers who felt we weren't taking their demands seriously, despite our hard work to meet their requirements. They set enormous goals for a platform meant to serve millions, replacing the previous system created by a large firm, Accenture. Building this from scratch required extensive refactoring and problem-solving, as scaling Rails for demanding traffic proved challenging. We utilized Rails solely as an API module while Angular powered the frontend. Despite our best efforts, scaling to the levels required by the customer remained daunting because their housing projects were often in high demand, with properties disappearing within seconds of being listed.
00:06:33.420
For example, when offering plots of free land, 600 plots would be claimed in a mere 30 seconds after notifications were sent. We incorporated other programming languages, like Golang, to enhance performance in critical areas of the system. Despite five years of operation, our main platform remains predominantly built on Ruby, as the client appreciated our work. We also developed a rental platform that needed to efficiently manage four million rental contracts. Initially opting for a monolithic approach, we later encountered challenges splitting it into microservices, leading us to create our framework around Ruby to facilitate easier microservices architecture.
00:09:03.960
This framework allows us to utilize any language for microservices connected to a communication bus built on Kafka for task management. We now have achieved a sophisticated microservices structure while maintaining strong Ruby roots. Over the years, our company has grown from a small team at NxME to approximately 240 employees at Eva, making us the largest Ruby developer team around. Our primary client is still the same, as these platforms continue to expand with added housing services. We are hiring numerous Ruby developers to manage the ongoing enhancements.
00:10:41.880
We also explore various technologies and microservices solutions as we build our systems, allowing team members to continuously learn while they work. By expanding our operations, we've grown into Vietnam, with offices in Thailand, Vietnam, and a new office in Riyadh. It’s important to address the perception of Saudi Arabia often depicted in media; I assure you there are many normal, welcoming people there. The country is evolving, with the introduction of tourist visas and more roles for women in the workforce, creating a more inclusive environment.
00:13:29.460
We maintain a strong stance on ethics, with core values of fellowship, responsibility, and reliability guiding our actions. Coinciding with Saudi Arabia's transformative vision, we're playing a role in its progression toward digitalization and independence from oil. You may be surprised at how advanced some initiatives are, and we take pride in contributing to that development. While Ruby on Rails is not mainstream everywhere, our story illustrates the incredible things we are building with this technology. That's all from me, thank you.