A few years ago, entrepreneur Pat Kinsel was trying to finalize the sale of his company to Twitter. The only problem? A recent ski accident left him with a shattered knee and a pile of paperwork that needed to be notarized. Since notaries don’t make house calls, Pat was stuck. There had to be a better way.
Six custom-built user applications and 5,000 batched updates to the code later, our engineering team made it happen. Pat came to MetaLab looking for a partner to help him design and develop a fully virtual notarization platform from scratch, and now thousands of people use Notarize every day to get their legal documents out the door in minutes.
We had a feeling this would be one of our most challenging and rewarding projects to date, and we weren’t disappointed. It was exciting to lead the charge on breathing new life into a brick and mortar business with technology and design. Here’s what we discovered about our development process along the way.
Lesson 1: Don’t let the learning curve be a showstopper.
The complexities of the notarization industry are not for the faint of heart. To get ourselves up to speed, we jumped into research and started talking to Pat and notaries right away. We also worked shoulder-to-shoulder with the Notarize team to write the end-to-end business logic of getting a document notarized. Sharing regular application builds with industry experts helped ensure we were running after the right goals, actioning the right feedback, and accounting for the full user experience in our development roadmap.
Lesson 2: The integrity of the user experience is non-negotiable.
With legal hoops to jump through, personal data to protect, and logistical realities to contend with, it was tricky to prioritize ease of use. But if we couldn’t build a seamless user experience that met strict legal requirements, we had no product. With the right technical expertise and a lot of creativity, we found solutions for every blocker that posed a threat to the quality of the user experience.
Having an API service with many different front end applications meant it was important to maintain data integrity and speed up request times. We used a graphQL server to keep requests brief and allow each front end to request and receive only what was needed at the time. Customers could join a queue, see realistic wait times, and get paired with the right notary for their needs as soon as they become available.
If we couldn’t build a seamless user experience that met strict legal requirements, we had no product.
Nobody likes wasting time, so creating a positive waiting room experience was central to the product’s success.
Lesson 3: Change is constant, so code accordingly.
Since this product was charting completely new territory, we had to accommodate new and constantly-shifting requirements and business logic. We worked hard to architect the product and its codebase so that we could make sweeping changes with ease and speed.
For example, when we realized that most notary customers need multiple documents signed by multiple signers, we had to touch about 80% of the code to make this multi-signer update. Because we spent time upfront getting to know exactly how each feature interacted on the app architecture level, making this change was relatively simple, and didn’t interfere with getting a stable MVP out into the wild.
Lesson 4: Newer isn’t always better.
In the development world, there’s a tendency to assume the next shiny new tech will solve problems better and faster than its predecessors. On this project, we learned how to let each tech play to its strengths, harmonizing old with new instead of choosing one over the other.
The main languages we used were tried and tested, like Ruby on Rails, which is known to be reliable and generate a quick and solid back end server. But when we needed something that could handle the strain of our queueing, we turned to more cutting edge tech for the back end, like Elixir and Phoenix, and React Redux on the front end.
Lesson 5: New challenges mean new milestones.
Who said tough projects aren’t fun? Some of my best work memories to date happened on this project when we’d invite the entire engineering team to try and break the code we’d written. These “testing parties” were a blast and the bugs we uncovered ultimately helped us develop our most stable code ever. Not to mention it was a pretty awesome milestone to code for the first digital mortgage signed in the US!
Lesson 6: The ROI of trust is infinite.
This project required a massive—and collective—leap of faith on both sides to push technology into completely new space. We knew it would be key to establish mutual trust early on and that investment paid off. Just last year, Notarize secured an additional $20 million in funding, has facilitated more than $1 billion in real estate transactions, and currently supports over 5,000 businesses across all industries. With 1.2 billion notarized transactions taking place every year, we’re proud to have built the product at the forefront of this $32 billion market opportunity.
Want to learn more about how our design and development teams worked together to make Notarize happen? Check out the case study here.