Xapo is a Cryptocurrency / Fintech company known for being the world’s most secure crypto bank and the single largest custodian of Bitcoin. The company was founded by Wences Casares, one of the most famous entrepreneurs from South America. Casares is a serial entrepreneur who has started multiple financial software companies, resulting in several successful and profitable exits which approach $1 billion. His latest entrepreneurial pursuit was creating Xapo, which is believed to hold as much as $10 billion of the cryptocurrency and has the backing of some of the most influential entrepreneurs in America.
The competition for the contract was a two-week long assessment process against other outsource software development vendors. Senior and select members of the AccelOne team attended daily meetings at the Xapo offices to receive instructions and explanations of what Xapo needed. The AccelOne team was asked to present a recommended software architecture, software team configuration, and estimate for the number of work hours needed to build Xapo’s platform.
Additionally, the new platform had to incorporate Xapo’s new business model directive. Their goal was to deliver crypto transactions to serve as the future enabler for transactions between buyers and sellers of all kinds, not exclusively for Bitcoin. They also wanted a quick and easy-to-use platform to attract consumers beyond the early adopters. In order for this to be possible, the platform would have to enable integrations to other financial services and institutions. Ultimately, the software platform would become the hub of all of Xapo’s future transactions, becoming the first of its kind worldwide.
A further challenge was that the prior platform was constructed largely by human operators at Xapo using internal proprietary tools. The entire project presented many challenges for the AccelOne team who hoped their recommendations would impress Xapo’s senior engineers.
After reviewing the various vendor recommendations, Xapo selected AccelOne as the chosen outsource vendor to deliver their platform.
The first step was to onboard the AccelOne team and introduce us to Xapo’s teams and worldwide project stakeholders. AccelOne was then familiarized with the practices and tools used by the rest of the developers, operators, and administrators across the company.
Our team was integrated by a senior solution architect and two senior enterprise-level Python developers into tech stacks that Xapo used which included:
- Python 3.6 with the light Flask framework
- REST full API to expose process information: Flask Restful plugin
- APS Scheduler Python library used for transactions processing and as a foundation for a decoupled transaction processing engine
- React.js + Redux for the front end
The system that our team worked on was integrated with the proprietary admin tool of Xapo (Buy Manager) and with a group of Cryptocurrencies Exchanges through the use of their APIs.
There are three main environments which host the system:
- Development (on the developer’s workstations)
- Staging (for Xapo stakeholders evaluations)
- Production (for the final release product)
Everything runs in Amazon Web Services (AWS) infrastructure and two main services are used among others:
- S3 to store digital assets, all stored data needs to be heavily encrypted
- ECS to run the Docker containers with the app
The main challenge of the execution was to organize all the stakeholders from different areas of Xapo and our team to avoid project blockers and to allow a smooth and accurate process integration with the rest of the customer systems.
Before beginning development, a prototype of the process was created to define the logic, rules, parameters, and to simulate possible scenarios. Once the prototype was approved, all the related framework and middleware was created. Lastly, the integrations were analyzed and we designed a data-driven model to empower a multisource architecture. The transaction processing engine was designed to be a multisource data loader, parser, and interpreter. With extensibility in mind, we integrated Xapo systems, payment networks, and exchanges in a modular way — allowing new sources with different levels of initial capabilities going from simple value range and similarity matching to more complex rules.
During the entire project duration, Scrum framework was used to assign tasks and keep track progress, milestones, deadlines, and blockers. Orchestration of the interaction with all the rest of Xapo’s resources was key to the success of the project, including constant communication with Xapo’s CTO.