Catching Fraud at the Wikimedia Foundation


  • wikimedia-foundation
  • wikipedia
  • fundraising
  • fraud-detection
  • machine-learning
  • ai

Disclaimer - a lot of the values quoted below are ball-park figures given to estimate performance and results of this project. They are not to be confused as official Wikimedia Foundation Fundraising data.

Donations and fraud at WMF

Thanks to donors all over the globe supporting Wikipedia and her sister sites, the Wikimedia Foundation receives millions of donations in any given year. In the fiscal year 2016-17 WMF raised $91 million from over 6.1 million donations! Unfortunately the donations were not bereft of fraudulent transactions - transactions either made using stolen credit card details or made explicitly with the intent to harm WMF by causing monetary loss in the form of chargeback fees.

Frauds are usually anomalies when it comes to donations, but even assuming that frauds form only 1% of all transactions - that is still 61,000 transactions in the year 16-17. Taking into account that usually chargeback fees range from $15-$20 across various payment gateways, chargeback payments alone would cost WMF $1,220,000!

Fraud detection workflow

WMF Fundraising proactively works to make sure that fraudulent transactions are detected before they can be “successful”. The current workflow looks something like this -


A Human Learning Machine Learning


  • ai
  • tetris
  • ml
  • machine-learning
  • genetic-programming

Roll Camera

I have recently (read: since forever) been swamped by a lot stuff to do (read: procrastinate), which kind of explains (read: serves as a valid excuse) as to why I updated my blog after more than a year.

Many a projects lie unfinished, collecting dust in my Github as a random tumbleweed rolls past complaining about the lack of documentation and the tardiness of code updates.

Quick, cue cool graphics before you stop reading. ༼ つ ◕_◕ ༽つ


drive-sync - The Idea, Application and Node.


  • google
  • drive
  • google-api
  • nodejs
  • javascript
  • cli

If you’d rather not read the intro and jump to the application directly, visit the Github page for drive-sync. Most of the information you’d need is in the README file itself.

The Idea

I’ve been using Ubuntu for quite some time now (more than a year) and the thing I love most about it is the flexibility its command line offers to its users. The learning curve might be steep but it pays off to delve into bash.

Inspired by this, I thought: "Wouldn't it be cool if I could access my files on the cloud using a cli?"

I wanted to develop a CLI application to control my Facebook. However, as it unfortunately turns out, the Facebook API does not expose enough data for me to be able to build the app flexible enough to my liking. What the Facebook API does support fully though, are applications which can predict which celebrity do you look like the most. :neutral_face:


Sublime Text vs GitHub's Atom


  • text-editors
  • sublime-text
  • atom
  • github

If vim is too basic for you but IDEs feel too slow and sluggish, chances are you probably have been using Sublime Text as your preferred text editor. Now GitHub has an open source editor in town called Atom which might give competition to our beloved Sublime.

I took it out for a spin and used it as my default editor for a week and the following is my honest review of whether I think Atom can stand up to or even overcome the legacy ST has built for itself over the years.


Opening up to Open Source - Part 2


  • open-source
  • civicrm
  • git
  • github
  • gsoc

I highly recommend that you read part 1 of this series if you haven’t yet.

Writing Your First Real Patch

So let’s get started with how to write a simple patch for your organization. Although keep in mind I’ll be writing this patch for CiviCRM and the exact procedure that your organization recommends might differ slightly.

Finding a Worthy Issue

One way to go about finding a bug to fix is to prowl their bug trackers, search for issues tagged as starter or trivial and comment that you want that issue to be assigned to you. However, most issues tagged trivial are only trivial for developers that have considerable experience working with that code-base.

Instead I’d recommend that you ask your mentor to assign you an issue and provide you with a brief summary of how to go about fixing it.