In 2013 Grouper decided to pivot towards a mobile-first experience, and I was brought onboard contracting as a senior full-stack developer.
Notably, I built the recommendation engine, the matching engine and a significant part of our asyncronous billing system.
The matching engine was a bounded context which generated dating recommendations between our members. To build this system we used a combination of Neo4j (a graphing database) and Elasticsearch (a search engine specialising in fuzzy queries).
The matching engine was an asyncronous and auto-stabilising series of workers using the actor pattern which used a variant of the “stable marriage algorithm” to match our members over time, and automatically send invites and push notifications to even out our numbers across our dating nights.
As part of an ongoing initiative, we frequenlty built off-shoot products and experiments in order to test our assumptions about our market.
Each iteration went from conception to market in less than 2 weeks.
In particular, our team built an a number of ReactJS