Algorithms, Distributed System, Machine Learning
A typical bucketing strategy, but it is probably the most complex one..
Basically I refer to this submission.