Recent Projects

Fraud Detection System for a Payment Company
We are currently leading the rearchitecture of the fraud detection engine for one of the biggest payment company in the world. We are working remotely with people from that company and are currently rewriting major components. Some of the major challenges are
  • Design a plugin based risk engine, along with a very simple DSL that allows non technical risk analysts to create rules on the fly from a UI
  • Design a plugin based service responsible for collecting different kind of data needed for fraud analysis. The plugins must run in parallel and should be resillient to some brittle services.
  • Design a new modern machine learning fraud detection and anomaly detection engine.
Automated SMS Tagging, and Bank Statement Analysis
We built this product for a well funded fintech startup to help them better analyse credit worthiness of their customers. There were three parts to this project
  • We first built an android SDK that was responsible for collecting user's non personal sms and sending them back to a configurable backend. The SDK was extremely configurable, allowing the app to decide at what frequency and what efficiency level they wanted to collect data at. We, also experimented with collecting notifications, user app usage and browser history.
  • We then implemented unsupervised clustering on huge corpus of SMS data and converted them into clusters such that SMS in each cluster was similar in terms of its domain. We also built a custom UI that then allowed manually tagging these clusters instead of manually going over this huge corpus of SMS individually. This dramatically reduced the time to construct a training set for our supervised ML algorithm to automatically tag incoming SMS.
  • Implemented a new modified hierarchical Naive Bayes Algorithm to automatically tag incoming SMS. The system was designed with great instrumentation support as well as ability to automatically update the model everyday with new incoming data.
  • Built a parser to create bank statement for the user from all the SMS tagged by our ML system to be related to banking transaction.
Monero Mining in Browser
This was more like an experiment to understand whether crypto mining can be a good alternative to advertisements or adblocker We built a js based monero mining , an android mining SDK as well as proxy for the mining pool that can interface with our browser based miner. We ran our JS based miner on couple of websites with millions of views daily
  • JS Based Monero Miner
    This involved cross compiling one of the C++ based monero miner into webassembly and then writing a JS wrapper around the actual minining implementation. The wrapper provided a simple and elegant api to interact with the webassembly miner and was responsible to communicate with the mining pool over websockets
  • Monero Mining Pool Proxy
    This involved building a mining proxy that interacted with our js mining library over websockets on one side and with mininig pools on other. This was needed because most of the mining pool cannot deal with such large number of low powered miners. The proxy was also responsible to divide the POW challenge posted by the mining pool into further smaller challenges for each of the js miner it was connected to.
  • Monero Miner for Android
    Build an Android SDK that allowed android apps to perform crypto mining in the background. This again involved porting a C++ miner to run as native code and a Java wrapper around the actual mining implementation. The android mining SDK was extremely configurable and allowed app developers to decide how frequently or efficiently they wanted to run mining in the background