Qconn

Scaling Foursquare: From Check-ins to Recommendations

Scaling Foursquare: From Check-ins to Recommendations

Time: 
Wednesday, 10:40am - 11:30am
Abstract: 

Foursquare has grown from a simple check-in application to one that can tell you the best place to grab a burger. Along the way we've also become the best source of local data for apps like Instagram and Pinterest.   I'll talk about the general architecture, storage systems and development practices that we've created to handle the ever increasing volume and complexity. Foursquare started out as a PHP MySQL app running on a single virtual server. Early on we switched to Scala and Mongo and have recently been aggressively splitting a monolithic application into multiple services while maintaining a single code base. I'll talk about the somewhat unique approach we've taken in our service oriented architecture. I'll also go over how we run Mongo and the additional storage systems we're running for more specialized tasks like search, key-value lookups, and offline tasks.

Jon.Hoffman's picture
Jon Hoffman has been a software engineer at Foursquare for over 4 years. He's led teams building features and backend infrastructure. In the course of his tenure at Foursquare Jon has made contributions to MongoDB’s core server, mongo-java-driver, Lift Framework, and scalaj-http projects. Before Foursquare Jon spent a brief time working at a three person startup, built distributed systems at Goldman Sachs, worked on VoIP apps for the telephone company, created a medical record app for palm pilot, and graduated from Carnegie Mellon. @hoffrocket