Foursquare’s Engineering Lead Takes Your Questions, Courtesy of Reddit

Foursquare‘s Employee Number Three, Head of Server Engineering Harry Heymann, took to Reddit Thursday to answer questions about all things related to Foursquare and coding.

Heymann opened himself up to a barrage of queries from Internet nerds who want details on everything from Foursquare’s homebrewed dev solutions to the worst thing about working at the company.

Here’s the condensed highlights of the thread. You can go to Reddit to quiz Heymann on other topics — say, last fall’s epic bout of downtime and the post-mortem that involved an engineering all-nighter and a statement from MongoDB.

What were some of the major technology decisions you made, both good ones and bad ones, which have had the largest impact on Foursquare’s growth?

Harry Heymann: My four biggest technology decisions:

  1. Scala. Nearly our entire server codebase is written in Scala (if you haven’t heard of it, it’s a programming language that is basically what you would get if Java + ML had a baby). This has worked out super well. It enables us to write concise easy to deal with code that is typechecked at compile time. It’s also been a big help with recruiting.
  2. MongoDB. Nearly all of our backend storage is on MongoDB. This has also worked out pretty well. It’s enabled us to scale up faster/easier than if we had rolled our own solution on top of PostgreSQL (which we were using previously). There have been a few roadbumps along the way, but the team at 10gen has been a big help with thing.
  3. Amazon Web Services. Kind of a no-brainer: It’s the default hosting environment for startups these days. Mostly great. I wish the IO (disk) situation there was better.
  4. Lift. A web framework written in Scala. This one is the trickyest. Lift has a lot of cool features we really love but hasn’t seen super wide adoption and it has some rough edges. Still not certain how this will work out in the long run.

What are the best and worst things about working for Foursquare?

HH: Totally cheesy to say, but the best thing about working at Foursquare is the team. We really do have a great group of folks here that are very good at what they do and are all working incredibly hard to help the company succeed.

The worst thing is that Foursquare has invaded my life 24-7. I never stop thinking about it ever. Not being able to turn that off sucks sometimes. Also the pressure to meet our potential is pretty big. Scary sometimes. Don’t want to screw it up.

What kind of internal tools has Foursquare built?

HH: Jason [Liszka] and Jorge [Ortiz] wrote a nifty query DSL that we open sourced a while back called Rogue.

What is your favorite use of the Foursquare API by a third party developer?

HH: 4squareand4yearsago!

Having been involved since the beginning, do you feel there were any disadvantages to being based outside Silicon Valley?

HH: No, not many disadvantages. We had everything we needed for the early stages of our company in NY. We’ve expanded to San Francisco to increase our capacity to bring on great engineers (of which there are many in the Bay Area), but that was only after we grew to a certain scale.

Is it friendly rivalry between you and Gowalla, or more heated than that? I was just wondering.

HH: I think having them around pushed us to build a much better product much faster. Competition keeps you on your toes.

More About: AMA, developers, engineering, foursquare, reddit, server engineering

For more Dev & Design coverage:

This entry was posted in AMA, developers, engineering, foursquare, reddit, server engineering, Web Development and tagged , , , , , , , , , . Bookmark the permalink.