Category Archives: Foursquare Engineering Blog

Foursquare Engineering Blog

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

Geographic Taste Uniqueness

Last August we launched Tastes to help our users customize their local search experience. Taste tags like “trendy place”, “pork buns”, or “romantic restaurant” not only help users find the kinds of places they like when out and about, but … Continue reading

Announcing the first Foursquare API Demo Day!

Every couple of weeks we have an internal demo day – an hour where people demo things they’ve been working on to the rest of the company. Demos can be anything from a prototype app feature to a cool data visualization … Continue reading

Exploring the Foursquare ‘Taste Map’

In order to deliver great personalized local recommendations, Foursquare needs to understand not only which places are the best, but also what makes places all over the world different from each other. Whether it’s a dive bar with great late … Continue reading

Introducing Pants: a build system for large-scale codebases like Foursquare’s.

Foursquare and Swarm are written predominantly in Scala on the server side. But as we’ve grown, so have the size, complexity and diversity of our codebase: We currently have around 700,000 lines of handwritten code in 6500 .scala files. We … Continue reading

What today’s announcement means for developers

Update (August 2014): For the latest on our plans for the API, be sure to read our entire recent update for developers. Today we announced some big news about the products we work on every day here at Foursquare. Read … Continue reading

Looking forward to Mongo 2.6: A deep dive into the new write commands

We’ve been longtime Mongo users at Foursquare and each new version has brought enhancements in performance, reliability, and features. Mongo 2.6 has a bunch of new features that we’re excited about, but I’m going to focus on just one which … Continue reading