Capital Match is a market-leading peer-to-peer lending and invoice financing startup for SMEs in Singapore, and we are in the process of expanding to other countries. In this blog, however, we will take a break from our awesome and rapidly expanding business and focus on some of the technologies behind Capital Match.
In case you don’t know yet, we are one of the few companies that use Haskell in production. Haskell is not just an experimental component here. Almost everything is in Haskell, from the back-end service, data storage, to our deployment, and build system: all of these are written in Haskell. Regrettably, out front-end code is not written in Haskell, and that has caused some pain and suffering especially with regards to types (yes we’ve accidentally shipped code to production that would attempt to fetch an entity whose (supposedly) numeric ID is
[object Object]), but that was a choice made by our former CTO, Arnaud Bailly, back in 2014 and yes, we agree with Joel Spolsky that rewriting this chunk of code isn’t worthwhile.
Speaking of our former CTO, he has published a mini-series of blog posts on the technology here at Capital Match a while ago, here, here, and here. Some of the information contained in these blog posts is outdated/inaccurate, but others are still relevant. In the near future, we will be writing some more blog posts to examine and reflect on what we have learned in the intervening years and what changes we have made to our technology stack. Stay tuned!