Category Archives: Foursquare Engineering Blog

Foursquare Engineering Blog

Pants 1.0

Today, the Pants Project announced the release of Pants Build 1.0. Foursquare is a proud contributor to Pants, and we’d like to thank and congratulate our fellow contributors in the Pants community. Foursquare’s developer workflow benefits greatly from Pants, especially … Continue reading

Improving Our Engineering Interview Process

Previous Process and Motivations Up until a year ago, Foursquare had a very typical interview process for a startup. We started with a phone call where the candidate implemented one or two simple questions in a collaborative editor. If they … Continue reading

Cross Language Information Retrieval Via Taste Translation

What’s the best place for lamb in Santiago? If you’re a local, you’d know to hit up Jewel of India for their cordero magallanico or Barrica 54 to try the Garrón de Cordero. But what if you’re an English-speaking traveler … Continue reading

Finding Similar Venues in Foursquare

Foursquare has a deep collection of more than 65 million venues. One of the signals we use to help users discover new places they’ll love is similar venues. Similar venues not only powers the features shown below, but is also … Continue reading

Improving Language Detection

At Foursquare, we attempt to personalize as much of the product as we can. In order to understand the more than 70 million tips and 1.3 billion shouts our users have left at venues, each of those pieces of text … Continue reading

Personal recommendations for the Foursquare homescreen

Earlier this summer, we shipped an update to Foursquare on Android and iOS focused on giving each user a selection of “top picks” as soon as they open the app. Our goals with this new recommendation system were to improve … Continue reading

How the World Looks to Your Phone

[Cross-posted from a Quora answer I wrote here.] One of Foursquare’s most useful features is its ability to send you just the right notification at just the right time, whether it’s visiting a new restaurant, arriving in a city, or … Continue reading

Managing Table and Collection Views on iOS

As most iOS developers can tell you, dealing with UITableView or UICollectionView can be a pain. These UIKit views form the basis of most iOS apps, but the numerous callback methods that you have to coordinate can be a hassle … Continue reading

Gson Gotchas on Android

This is Part 2 in our 2 part series on latency. In Part 1, we discuss some techniques we use for measuring latency at Foursquare. Here we’ll discuss some specific Gson related changes we made to improve performance in our … Continue reading

Measuring user perceived latency

At Foursquare, tracking and improving server-side response times is a problem many engineers are familiar with. We collect a myriad of server-side timing metrics in Graphite and have automated alerts if server endpoints respond too slowly. However, one critical metric … Continue reading