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
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