Backend
The primary backend initially was Parse, which migrated to Firebase later on. There were a lot of challenges migrating to Firebase, the toughest problem we solved was most probably migrating the existing user sessions over to Firebase from Parse. Firebase is used to store all user data.
For HIPAA compliance and extra security, we don't store any sensitive information, credentials, or files on Firebase. Instead, we use our web infrastructure (API) to store this information which was designed and developed prioritizing security above all. All REST communication is encrypted, and authenticated with a secured JWT (JSON web token), and all files and databases are encrypted at rest.
Android App
1. Android app is written in Java and is based on a robust, reactive architecture designed following the MVVM to achieve a clean architecture.
2. Android uses several open source libraries that were developed by us e.g an OpenCV-based library for real-time scanning of ID documents, A secured preference storage and encryption library that encrypts data using 128-bit AES encryption with a KeyStore backed key, A barcode scanning library based on Google's mobile vision SDK for blazing fast barcode scanning, etc.
3. Android uses RxJava for making things reactive, Dagger 2 for dependency injection, Realm for fast encrypted data storage, Retrofit for REST communication, and several other awesome libraries.
iOS App
1. iOS app is written in Swift 4 and based on a robust, reactive architecture similar to the VIPER architecture.
2. iOS also uses a few open-source libraries that we developed with the help of the awesome open-source community e.g. A library to scan ID documents, A tool for generating VIPER boilerplate components, etc.
3. iOS uses RxSwift to make things reactive, Realm for fast encrypted data storage, Alamofire for REST communication, and several other awesome libraries.
Miscellaneous
1. Initially, the app used Mixpanel for tracking analytics. Currently, it uses Firebase Analytics for tracking key metrics and events to improve the app through an informed iterative process.
2. Fabric is used to track key performance metrics, bugs, and crashes.
3. The intercom is used for customer communication and analytics.
“I had the pleasure of working with Mehedi during my time consulting with Credntia, an app company focused on identity management solutions. Mehedi was responsible for leading the development of the company's iOS products, and especially working on the app's security and scanning technology for the collection, storage, and retrieval of a user's physical identification credentials. He was excellent to work with and explained the technical side of his work in meaningful ways that enable the communications team to translate this work for our website and media assets. He was a pleasure to work with and I look forward to working with him again in the future.”Kelly PageHead of Communication, Credntia LLC