Welcome to the Notarize Engineering Blog. Here we will share various insights into our development process at Notarize, tips, tricks, the occasional bit of open source, etc.
Notarize is a very interesting company from an engineering viewpoint. As originally conceived, our product allows businesses to send documents to individuals, or individuals to upload their own documents, then have that individual electronically sign those documents and get them legally notarized by a notary public. So we deal with a lot of document and transaction management, dashboards, admin panels and all the stuff that you would expect there.
We verify the signer's identity with knowledge-based authentication and electronic credential analysis to validate that the person signing the document is who they say they are.
The documents are signed and notarized in a live on-line video meeting with a notary public. Signatures, seals and other annotations are placed on the document in real time with the visual document state synced across the meeting. The document is then digitally tamper sealed and made available to those who need access to it.
We successfully complete hundreds of these meetings per day, and each one is a critical transaction for the parties involved. Most people don’t need to perform notarizations very often - once every few years at best - but when they do it's usually a pretty significant event. As we like to say, we help people with life's most important moments.
We've also expanded beyond notarization, adding other services such as non-notarized electronic signing of documents, with or without identity verification.
But our biggest focus currently is in the real estate market, making it possible to complete a home refinance or purchase on-line. This has us partnering with lenders, title agents, and other financial institutions. We recently announced that Notarize has facilitated over one billion dollars in real estate transactions!
As you can imagine, this line of business adds another entire level of new features, legal, security and compliance needs, as well as stability and performance requirements.
The Notarize engineering department
We have about 25 engineers on staff, split into a few different teams:
- The "RGB" team handles retail, growth and business related features.
- The "REAL" team tackles all things real estate.
- "CORE" handles the platform itself and the underlying pieces that tie everything else together.
- The Mobile team creates our iOS and Android apps.
- And QA keeps things running smoothly.
Notarize currently has three offices - Boston, MA, Fairfax, VA, and Dallas TX. Until recently, our engineering team is based entirely in the Boston office. But we now have several engineers who are fully or partially remote.
On the backend, it's Ruby on Rails for the most part. You'll find lots of standard stuff here: Postgres, Redis, Sidekiq, Heroku, AWS, Docker, Kubernetes, Terraform, etc.
On the mobile front, we have fully native iOS and Android apps, with all the latest technogy - Swift and Kotlin, using Clean Architecture.
We are committed to testing - unit tests on the front end and back end, and fully automated end-to-end testing using WebdriverIO, Selenium, Mocha, and Chai.
And we're always experimenting with new technologies. There's even a machine learning project in production. Currently it helps us identify specific types of documents that need special handling in our workflow, but there are other use cases we'll be working on in the near future.
So there's a very brief overview of Notarize and our engineering department. As I said, it is a very interesting and exciting place to work. There's always some new challenge or initiative going on, new business areas to move into, and exciting opportunities to tackle. We'll be posting on a regular basis with more details about some of our projects, hopefully with some useful information or insights that you can use as well.