Certn (certn.co) is one of Canada's fastest growing background check providers. They came to Lazer for help architecting, and building out a Python micro-service to integrate a 3rd party provider.
The expected timeline was 3 months, Lazer completed the work in just 1 month and was able able to drive 67% cost savings. The remaining time and budget was used to push forward other projects such as internationalization.
Read below for more details and to learn how we did it!
"The speed and quality of Lazer is second to none. In an environment where we need to hit aggressive timelines and milestones, you need partners you can trust that will execute at the highest level."
Andrew McLeod, CEO & Founder, Certn
The project was a microservice that would exist between Certn user-facing systems and third-party data providers that they relied on for background checks. In the system we were building we would handle orders from users, trigger the correct background check from a data provider, and finally send the data back to the user once it was received.
We had a three-month timeline for the project and understood there were quite a few moving parts within the system. We took the following approach at the start of the project:
It is very easy to just jump into a project and start writing code immediately. This approach can quite often lead to early progress but quickly you find yourself backtracking and drastically changing logic or database models because you haven't really thought of the entire system and how all the pieces will integrate with each other.
When Lazer received the requirements for the project the first thing we tackled was the details of the micro-service and all the functions it needed to perform. The best approach we found for this was creating a system architecture diagram that defines all the major flows and pieces of the system.
Having the architecture diagram not only let us be confident about the implementation but it let us easily explain it to the Certn team to gather their feedback and most importantly, see if we missed anything.
The next thing we tackled was defining the database models at a high level. As much as we want to get this right on the first pass, we knew that this would have slight modifications as we got down to implementing all the features. Putting together a quick database model lets us have a great understanding of the basic relationships and tables that would exist in the database.