ChallengeeXp Realty (NASDAQ: EXPI) is one of the country’s fastest growing real estate brokerages, and in 2019 set its sights on international expansion. As a digital brokerage, having a streamlined way to recruit, onboard, and pay commissions to their distributed realtors presented a challenge. Evolving data-privacy laws like the European Union's General Data Protection Regulation (GDPR) and California Consumer Privacy Act (CCPA) require global organizations to physically store data within the relevant sovereign borders where it is created.
Furthermore, localized user experiences (UX) tailored to culture specific language discrepancies can become a challenge to manage without a scalable architecture. To accelerate the time to market, Steve Ledwith, VP of Engineering, and Imran Kasam, Software Engineering Manager at eXp tapped Kinetech with the mission to augment eXp’s existing team with Kinetech’s elite Mendix certified expert development team.
The first two markets selected for expansion were the UK and Australia. eXp Realty determined Kinetech was the best partner to spearhead their expansion, and sought Kinetech’s services to build and launch a “JoinApp” to facilitate the new agent application process.
“For the international version, Kinetech augmented our development team and hit the ground running in a sprint. Our teams were given about four months to complete a very large effort of work on this “new-joiner” application.
Their team analyzed and ensured these individual applications could be localized to meet the needs of the international market. From a scalability perspective, Kinetech helped future proof our architecture.”
- C. Cravens | eXp Product Owner
eXp Realty - United Kingdom (UK) JoinApp with Responsive User Interface (UI) & Reflexive Questionnaire.
Kinetech’s key objectives were:
- Temporarily embed within existing organizational structure to enable and accelerate the deployment of a microservice architecture desired for an ecosystem of international applications. The JoinApp serves as the first application included within an ecosystem of connected applications that are deployed to each new market.
- Support “plug and play” capabilities, where the same application may be deployed to new international markets with little to no additional / design-time development.
- Create a reflexive questionnaire that allows form designers from the business to create join forms (i.e. user input forms) at runtime, specific to their market, and support multiple question types and dependencies.
- Provide the capabilities to collect credit card payments (via Stripe), electronic document signage (via HelloSign), cloud document storage (via Amazon S3), email notifications (via SendGrid), messaging (via Kafka) and an integration between two Mendix applications (via RESTful API).
- Data and document storage must comply with recent EU GDPR regulations surrounding data governance, so there was also a legal requirement that specified where data servers must be physically located.
eXp Realty - United States JoinApp with Reflexive Questionnaire.
The JoinApp steps each applicant to eXp Realty through the entire application process to become an agent. The front end of the JoinApp, which is what visitors to the application first encounter, is the join form. The join form is available both on mobile devices as well as desktops. It also is unique in that it’s not a standard page with input fields, but instead is a fully reflexive questionnaire. Here we encountered our first unique request from eXp Realty – create a reflexive join form that provides form designers within each local market with the ability to customize their own forms at runtime. Which simply means - let the form designers create their own customized input forms.
“Kinetech developed custom software for our international expansion to the UK. Their team started by building out a reflexive module allowing us to configure forms at runtime in conjunction with a microservice architecture that would facilitate the onboarding processes in each of our international locations.”
- C. Cravens, eXp - JoinApp Product Owner.
The questionnaire supports all question types, question/answer dependencies (i.e. conditional visibility based on visitor responses), includes an approval workflow, input validations, customizable logic and validations and much more. Form designers may create draft forms, publish forms at any time and restore archived forms.
One particularly unique aspect of the questionnaire is that form designers may map visitors responses to specific attributes within the domain model. This is done at runtime, and is how the JoinForm converts visitors (i.e. anonymous users) to actual applicants. Oftentimes, these types of mappings are hard coded and require a development request to change. This design also allows form designers to map only those questions and answers that need to be stored on specific entities, which will later support an integration to another Mendix application within the international microservice framework.
“Reflexively designed applications require an advanced understanding of not only Mendix but also application architecture more generally. Needless to say, it’s not something you learn on day one.” says Marc Lehane, the system architect for the JoinApp.
“A reflexive design dramatically shortens the turnaround time to implement changes by enabling permissioned users to quickly respond in runtime rather than waiting on development. Second, it limits the burden on the development teams because a reflexive solution is agile enough to handle all conceivable use cases collectively. Lastly, it decreases the cost of maintenance for each instance of the JoinApp since development resources are rarely needed to make changes down the road.”
- Ricky Volz, Kinetech - Lead Developer
This reflexive design again empowers the form designers to make changes at runtime vs. requesting development make changes. Doing so accomplishes a few things, says Ricky Volz, lead developer on the engagement, “First, it dramatically shortens the turnaround time to implement changes. This enables our business partners to quickly respond to their customers and partners (i.e. our end users) rather than get stuck waiting on development. Second, we limit the burden on the development teams because we design a single solution that is flexible enough to handle all conceivable use cases collectively. And third, it decreases the cost of maintenance for each instance of the JoinApp since again development resources are rarely needed to make changes down the road.”
Once the application has been submitted (and the visitor to the JoinApp has been converted to an applicant), then the applicant’s submission is reviewed by eXp Realty personnel. This initial review consists of a review of the responses to the join form. Assuming the initial review passes, then the applicant is contacted via email to complete the remaining steps of their application.
Here we leverage deep links to navigate the applicants to several unique pages that allow them to complete the second part of their application, which includes:
- Electronically sign multiple contracts via an integration with HelloSign
- Upload required documents to a local Amazon S3 server
- Submit credit card details to facilitate payment processing of the application fee
Similar to the join form, each step of the second part of the application process is configured at runtime by an administrator of the JoinApp. That means that contracts may be changed and new templates added, required documents added and dropped and payment amounts and details altered at any time without requiring the development team.
At each step of the process, performance metrics are calculated that document how long it has taken for the applicant to advance through each step of the application process.
Each important activity in the application process is also logged in the application to provide guidance to eXp Realty’s on-boarding specialists. Logging supports not only debugging and technical issue resolution but also ensures on-boarding specialists have the tools necessary to track the applicant’s progress.
Once final approval has been granted, then the applicant is notified via email (via SendGrid integration) and we leverage Kafka messaging to notify the next app that an applicant has been approved and is ready to be set-up as an agent. Here the JoinApp ends, and the Agent Details application begins. Agent Details will then get the necessary information of the applicant via the JoinApp REST API.
“We knew we had a tight deadline, but the requirements were still fluid… that put us in a position where we had to work closely with our product owner and business partners to ensure that we all stayed aligned and expectations were met.” said Ricky. ”But it also gave us the freedom to make certain design decisions quickly and based upon our expertise, which lowered the administrative burden and sped up the development process.”
Kinetech built and launched the JoinApp to the UK and Australia within only a few months. The JoinApp is the first application that an applicant to join eXp Realty encounters in both the UK and Australia, so it was critical that Kinetech hit its deadline and release an application that would facilitate the business’ international expansion strategy.
Ceilia reiterates that “For the international version, Kinetech augmented our development team and hit the ground running in a sprint. Our teams were given about four months to complete a very large effort of work on this “new-joiner” application. Their team analyzed and ensured these individual applications could be localized to meet the needs of the international market. From a scalability perspective, Kinetech helped future proof our architecture.”
Kinetech was able to accomplish one of its primary goals, which was to design an application that supported “plug and play” in new markets. In doing so, Kinetech created an “off the shelf” application that may be set-up in a new market within a single day.
Ricky Volz stresses that “Our primary focus for the JoinApp was to empower the end user, and convert what are typically requests to the development team to capabilities that the end users could manage themselves. That presented an engineering challenge for us, where we knew we must focus on reflexive design and tightly modularized components.” says Ricky. “Afterall, the primary mission from the client was clear: empower the end users and significantly - if not outright remove - the need to involve developers to make changes to the app.”
The JoinApp utilizes 20+ modules, some of which were built for the JoinApp specifically, others are from the Mendix app store and others from the eXp Realty app store. However, there is one module only where all custom microflows and pages reside for each country. This ensures maintenance across all JoinApps is simple and light.
2020 is expected to be an exciting year for eXp Realty international expansion plans, and the JoinApp is spearheading that expansion.
Kinetech, a platform Mendix partner, is a provider of custom enterprise software, delivered through the cloud with a focus on improved business productivity. The company focuses on cloud, mobile, and integrated technologies that solve real client problems. Kinetech’s service offerings are configured and integrated with other web services (APIs), platforms, and enterprise applications (CRM, ERP, HCM). The company delivers its offerings via internet browsers and on mobile devices. Kinetech designs, builds, and supports mission-critical applications, client/vendor portals, and modernizes legacy systems. Its cloud offerings include Digital Factory (Manufacturing), Kinetech PM (Construction / Project Management), GovTech (Government Technology) Cloud, and other bespoke solutions (Enterprise Cloud).