28 April 2022
Tech study: Over 500K users joined a platform made for Saudi businesses
Saudi Arabia’s economy transformation pushed the country’s ministries into mandatory process automation. Most of them are still glued to Excel. To organize digital transformation for labor operations, the Ministry of Human Resources and Social Development needed a commerce platform for Arabian businesses. Here’s a story of how The Software House spent 67,456 hours to develop Qiwa — a system now serving 500,000+ Saudi organizations and 9 million users in total.
Why the Kingdom leads new digital transformation initiatives
Middle-Eastern economy analysts concluded Saudi Arabia is turning the heat on innovation to avoid over-reliance on increasingly competitive oil sales.
While the government has kept technology services at the top of the menu since 2016, ministries and their regional offices were slow to adapt.
In 2018, The Software House (TSH) was working with a Saudi HR enterprise, Takamol Holding. Their business leaders launched a digital transformation project called Qiwa to help digitalize the Ministry of Human Resources and Social Development.
Although we weren’t looking to build a government technology solution, Takamol recommended us as a partner to Qiwa.
We joined this digital transformation journey with excitement. How hard can a project be, anyway? (:
From this study, you’ll learn:
- Why Saudi Arabia partners with foreign developers
- Why do companies in the country jump off the cloud
- Which labor services needed to transform the most
Qiwa’s development process was at first stuck in the sand
At the start of the project, 38% of organizations in the Kingdom were not digitalized.
Most labor professionals clung to Outlook, Word, Excel, and simpler ERP systems to handle their business processes.
One day, the government set new, accountable goals that administrative offices could only fulfill by aggregating commerce information from up to 9.2M+ companies.
Qiwa’s goal is to make 100% of Saudi Arabia’s labor operations digital (uh-oh).
The project had only a few developers in the beginning because sourcing professionals from within the country wasn’t an option.
Companies paid riches to the big-brains people who could handle the development of the system to keep them loyal.
Even if Qiwa wanted to go talent-fishing, they had no automated sourcing process and few resources to validate the candidates’ competency.
The management got recommended to reach for talent in Poland. Many eager developers waited there for a golden opportunity to kick it in an enterprise project.
The project’s scope
The Software Houses’ work on the Qiwa ecosystem took 3.5 years and continues until this day.
At a peak, we had 30 developers assigned to the project, which were still supported by other development groups because of the system’s enormity.
As a partner to Qiwa’s team, we developed every digital tool listed below:
- Visit Visa — The country’s employment visa processing system
- Individuals — An administrative dashboard for employees that is like LinkedIn+
- Contract Management — A service collecting employment information for a government review
- eAdvisor — A dashboard presenting a company’s growth factors
- Report Dashboard — A service for generating monthly reports with business growth statistics
- Employee Transfer — A service for moving professionals between companies
The fun part of it was that Qiwa needed services in English and Arabic, so each one on the list has a left-view and a right-view version.
The technology picked for Qiwa’s digital transformation software
Our development teams went through several technologies throughout the project.
At first, we developed the services in Vue (front end) and PHP under the Laravel framework (back end) for the AWS Cloud.
Then, the Kingdom’s new law from October 2019 started the Privacy Olympics.
The cloud got blown away
The new “E-commerce Law” ruled out cloud computing as it barred providers from using or disclosing customer data for unlicensed or unauthorized purposes.
Qiwa set up an underground data center, and The Software Houses’s dedicated team wrestled for months to transfer all services to it.
A necessary swap from Vue to React
Eventually, we faced another greater force that made us wave goodbye to Vue.
We had been using Vue 2 until the authors released Vue 3 which was re-written so much that it didn’t process the code without errors.
Since each Vue developer was a React monk, our Head of Frontend prepared a case for a technology swap for Qiwa.
We knew Facebook, Netflix, Airbnb, Dropbox, and PayPay lived with React just fine.
The Software House’s State of Frontend 2021 and 2022 reports reveal around 75% of professionals pick React over anything else.
The client considered the benefits with care. Wide developer access, built-in components, and integration with Vue made Qiwa accept the winning suggestion.
All hopeful about the software development process under stricter privacy law, we continued the work in React and Node.js (front end) while keeping PHP Laravel (back end).
Work shared between two APIs
To aggregate service data, Qiwa deployed the IBM API Connect service early on in the partnership.
The service provides an API based on a microservice infrastructure that The Software Houses’ API uses to present relevant responses in the users’ UI. This communication model is called Backend For Frontend.
📚 Hear what 3703 frontend pros think about the job
Grab a free copy of The Software House’s juicy State of Frontend 2022 report.
Curated by 19 frontend experts from Netflix, CodePen, Code Sandbox, and AWS.
The Ministry of Human Resources and Social Development launched the platform at a private business event.
Speakers presented Qiwa as an engine for the digitization of labor in the country that focuses on the nationalization of employment, women’s work rights, and the advancement of Saudi investments.
Although Qiwa is an independent company serving the government, two of the Kingdom’s Ministers have been like product owners for the platform.
Here’s their opinion on our Middle-Eastern experiment in custom software development.
“Qiwa platform is a platform for empowerment, localization, and business continuity. Eventually, it will be the engine of the job market in the future”
“We launched a strong platform to enhance transparency, raise the quality of the ministry’s services, support digital transformation and partner with government agencies to facilitate beneficiaries and customers.”
Three years after the platform’s launch, 500,000+ companies rely on Qiwa’s 85 e-governance services.
I haven’t seen a software system built without faults. It’s only natural that we encountered a few while building Riyadh’s new digital skyscraper.
A defensive API
The Software House’s API connects with Qiwa API powered by the IBM API Connect service. The IBM part of the relationship was shaky.
IBM’s API returned errors at times, making it tougher to build our services.
We had to follow a “bug-free development” mentality to ensure we predict and catch issues in every corner of Qiwa while notifying the user and the client about them.
To make reporting of such less like an investigation, we were pasting in an “x-correlation-id” key to the header of our API requests. The key led to our logs where we recorded all requests sent to the IBM API to dig up ineffective requests at a speed.
The team faced irregular deployments which could happen even mid-sprint. That was an undebatable requirement.
We defended the stability of our services by introducing the application versioning mechanism after each sprint.
As a result, we prepared a new, stable version of the application every two weeks that could be implemented in the production environment at any time.
The elements of Qiwa’s ecosystem that we built
The development team worked in 2-week sprints based on Scrum.
Close to the sprint’s end, The Software House prepared an application demo for a joint review with the Product Owner, which we advised on feature components and UX/UI optimization.
Access to the platform
One service covers one business process in the Qiwa system. There are two account types.
A business account lets a representative deal with operational matters, eg.:
- Analyzing the nationalization process in the company
- Observing company law compliance metrics
- Buying work visas for employees
To help their hard-working employer stay in business, ordinary citizens can supply key information through their employee accounts.
We even prepared a new LinkedIn-like system with less narcissism called Individuals that register work history, skills, qualifications, training, and employment contracts.
For each service, there are 3 development environments, including staging, UAT, and production.
The Software House’s developers can access logs of all 3, but the work takes place in staging because of security and data privacy policies.
Our code lands in UAT for verification from Qiwa’s QA ground control.
1. Visit Visa
Our goal was to add an employee visa management function to the company’s admin panel.
Visit Visa is the sole service built by The Software House’s developers that’s a part of a larger group of visa services. Its components include:
- A form for recharging the “visa balance” — the maximum number of visas a company can generate
- A form for requesting a new visa for an employee
- A dashboard presenting the list of requests and visa balance packages
We were also tasked with developing a dashboard service for an employee-user.
On the inside, one can verify their data in the system, add certificates and courses, and share the profile.
There’s also access to Qiwa’s e-governance services, where an employee can fulfill their reporting duties. The service’s components include:
- A personal data dashboard
- The “Services & Tools” section with tiles connected to microservices (implemented as micro frontends)
- Several tabs where the user can input their personal data
Displaying microservices as tabs blocked us for a moment.
After a couple of retros, we connected our microservices with the panel with success by using Webpack 5’s Module Federation.
Our good buddy Robert, who is a Senior Frontend Developer, wrote an in-depth tutorial on working with micro frontends.
💡 Catch up with over 7.5K readers who tamed Webpack 5
3. Contract Management
It’s in the name, really, but the HQ still expects us to explain it, I guess 🙂
This service lets a company admin create, edit, view, and export contracts for Saudi and foreign employees. It includes:
- A form for creating and editing contracts
- Another form for creating and editing draft contracts
- Yet another form for contract templates
- A function for creating bulk contracts
- An additional form (good guess!) for the creation of contracts for foreigners
- A contract preview component
- A pdf export function
I consider the bulk contract generator as our little, digital Tesla S that needed a lot of work under the microscope. It’s kind of like a customer relationship management app.
We needed to source data from 3 channels: the contract template; unified fields filled for all contracts; the rest of the information from single contracts.
The gang prepared special functions that connect requested values together within big data structures.
How do you patch up an economy? You just tighten the law and tax everything!
While we didn’t deal with taxes, one service prepared by us served as a law compliance monitoring center for Saudi businesses. eAdvisor is made of:
- A dashboard with the “Primary Compliance Score”, presenting the nationalization level, the state of work permits, notes from the wage protection system, and authentication indicators for contracts
- A dashboard with the “Secondary Compliance Score” presenting labor policies, deductions, and self-assessment points
- A fancy chart for displaying scores for both dashboards
5. Report Dashboard
Qiwa needed to fit the statistics we’ve just described into one pot. Ok, but hol’ up! How?
This service was built to collect them into a .pdf report and send them out to the company owner and their collaborators month by month. The PO also needed the generator to access historical data.
This service might just be on an alien technology level when compared to other “cutting edge” report generators in the country.
Qiwa had 500,000 active companies in the production environment. To catch data for a single business report, our API sends 7 requests to Qiwa’s API, resulting in 3,5M requests throughout the process.
The probability of error in that calculation can give any web developer a migraine.
We first balanced the load with a custom-made service that collects essential report data with just one request. We then convinced the client to assign a part of the IBM API’s resources for report generation.
6. Employee Transfer
The Ministry needed to see what’s happening on that front to ensure more Saudis than foreigners work at the Kingdom’s businesses.
As a solution, we prepared the sixth service for Qiwa that registers transfers between subsidiaries or transfers to a new workplace. The main components are:
- A panel displaying active employee transfer requests
- A form guiding the employer through the transfer request process
- A confirmation page
We go on together to continue with digitization for commerce
The client extended the work with our durable team indefinitely with The Software House as the leading technology adviser.
Qiwa is the only business software development project for which we deliver a 16h/day support for the trust that we received. I hope we’ll sleep well moving forward.
Before our involvement
38% of government organizations in Saudi Arabia was bottlenecked because of their long standing business processes done with pen, paper, and disconnected tools.
Qiwa’s core team needed to lead a digital transformation of labor operations under strict KPIs.
Saudi talent remained hardly accessible, government stakeholders circled above the project, and new developers had to have enterprise-level programming experience.
After 3.5 years of working together
The Qiwa platform was recognized by the council of Ministers as an essential driver for future labor market growth. Seems we can call it a successful digital transformation!
It became the daily-use suite of business applications for half a million companies that now are better equipped to work with the government.
The system needs hundreds of new microservices
Qiwa’s team plans to build up their validated e-governance platform by 100-200 additional microservices.
The mission is to prepare a service for each bureaucratic process a Saudi or a visa employee has to go through with The Software House as a core partner.
🏗️ Need a development team for a high-stakes project?
Ask The Software House for access to a full-stack team that built banks, payment apps, and pet or investment marketplaces. Recommended by 98% of our clients.