Engineering Blog

Yelp Hackathon #5 Brings You KegTime and More

If you read this blog regularly, you’re probably already familiar with Yelp Hackathons. They’re 48 hour periods of time we devote to anyone in the company to crank on projects that they’re excited about. In the past, our Hackathons have included special guests, pinatas and, oh yeah, hacking! This year’s didn’t disappoint, with 28 total projects built, a petting zoo in the office (What? Your company doesn’t have those?) and a High School Science Fair type set-up so our hundreds of Yelp employees in San Francisco could wander, sip some Belgian ale and take a gander at what their fellow...

Continue reading

Understanding Git

Yelp converted from using Subversion for source control over to Git over a year ago. As it turns out, however, Git (and distributed version control systems in general) can sometimes be daunting for some developers to understand, especially if they’re used to more traditional centralized versioning solutions. Git can also be a bit daunting for new developers just starting to use source control - it tends to assume that everyone is a power user, offering a high amount of potential, but sometimes at the cost of user-friendliness. In an effort to help more people get a deeper understanding of just...

Continue reading

Parcelgen: A Code Generator for Android Data Objects

When I switched from working on Yelp’s iPhone app to our Android app, one of the first things I encountered was the radical difference between the equivalent classes to handle what I normally consider a “screen” or “page” of an app. On Android, an Activity handles what on iOS you use a UIViewController for, but they work in fundamentally different ways. One of the biggest differences is that on Android you can’t just instantiate a new Activity and display it like you can with a UIViewController. Instead you create an Intent and tell the system to start an Activity based...

Continue reading

Gotta Bounce... to an Engineering Offsite

Here in Yelp Engineering, we spend lots of time working on useful and cool stuff for Yelp users of all sorts—consumers, business owners, and even our own Community Managers. Sometimes though, it’s nice to take a break and go hang out with your coworkers for a bit. What better place to “hang out” than a few feet up in the air? Our most recent offsite took us to House of Air, a giant indoor trampoline park. After getting a brief safety introduction from HoA’s “Flight Crew” the team hit the trampolines, and well… I think these say it all: Of...

Continue reading

MySQL Minutiae & InnoDB Internals

At Yelp, we store nearly all of our data in MySQL. At any given time we’re issuing tens of thousands of SQL queries to our database cluster per second, with some individual servers going above the 10k qps mark. Our database cluster consists of billions of rows. In response to a lot of different problems we’ve had to optimize the snot out of our MySQL installation, and we’ve learned some interesting things along the way. A colleague and I recently gave a presentation to some of our coworkers, titled  MySQL Minutiae & InnoDB Internals. The talk covered some good background knowledge that every developer should...

Continue reading

After Hours Project: Kinect Hacking

Here at Yelp, we’re passionate about building things; it’s at the core of our engineering philosophy. In fact, we enjoy it so much that many of us keep on building after we finish work. I recently found some spare time to work on an interesting project with the Microsoft Kinect. I think it’s a cool start and I’ve open sourced the code so that others can build something even cooler. Easy Skeletal Tracking If you’re reading this blog, you’re likely familiar with the Microsoft Kinect. It combines an RGB camera, an infrared laser projector, and an infrared camera to determine...

Continue reading

Upcoming Tech Events at Yelp

Over the next couple of weeks, Yelp is going to be hosting two open-to-the-public events for members of the software development community: PyPy Just-in-Time Interpreters March 3rd, 6pm Armin Rigo of the PyPy project will be giving a presentation on achievements made by PyPy, the “fastest, most compatible, and most stable ‘alternative’ Python interpreter.” Special attention will be given to advancements in the area of dynamic (JIT) interpreters. You can find more information on SFPython’s Meetup page. If you plan to come, make sure to RSVP at least a day in advance so that security will allow you into the...

Continue reading