Talks

Oivan's journey with Ruby on Rails

Oivan's journey with Ruby on Rails

by Aki Teliö

In this presentation, Aki Teliö shares Oivan's remarkable journey in building and scaling multi-million user platforms using Ruby on Rails, specifically in the Middle East region. He highlights the evolution of their company from its humble beginnings to becoming one of the largest Ruby developer teams. Here are the key points discussed:

  • Background: The company NxME was founded in 1998 in Saudi Arabia, while Eva started in Finland in 2009. Both companies faced challenges in their respective markets, with Eva pivoting to use Ruby on Rails amid skepticism.
  • Opportunities in Saudi Arabia: In 2017, a key partner recognized the need for a housing platform catering to the youth demographic in Saudi Arabia and approached Eva to build this system. Teliö played a crucial role in designing the architecture for this project using Rails and Angular.
  • Technical Challenges: As development progressed, the team faced significant technical challenges related to scalability and performance amid high user traffic. They addressed memory consumption issues with their infrastructure and began incorporating other languages like Golang for better performance in critical areas.
  • Team Growth and Structure: After NxME and Eva merged, the team expanded to about 240 employees, becoming a leading Ruby development team. They adopted a microservices architecture to manage complex systems more effectively, utilizing Kafka for task management.
  • Cultural and Ethical Considerations: Teliö emphasizes the importance of maintaining ethical standards and core values such as fellowship and reliability while actively contributing to Saudi Arabia's digital transformation.
  • Ongoing Development: The company continues to enhance its platforms, hiring more Ruby developers and exploring innovative solutions, demonstrating the effectiveness of Ruby on Rails despite it not being the mainstream choice everywhere.

In conclusion, Teliö’s presentation underscores how Oivan has not only contributed to regional development but has also built a successful operation adapting to diverse challenges and opportunities, all while using Ruby on Rails as a foundational technology. He encourages the audience to recognize the advancements taking place in Saudi Arabia, contrary to common perceptions. The journey reflects the company's commitment to growth and the potential of Ruby on Rails in modern application development.

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.