The Grubhub Product and Technology Teams on
Welcome to the Grubhub Tech Blog! For the folks out there who are fans of our brands and consider themselves “innovative foodies”, this will be your new favorite thing on the internet! Here, you’ll find a behind-the-scenes look at our technology and an in-depth look at what it’s like to work for Grubhub. Spoiler alert: it’s as fun as you would think!
At the most complex levels of CSS development, front-end software is developed by assembling reusable components or design patterns. These are different than the design patterns created by the Gang of Four. Rather, they are agreed-upon user interface building blocks that have been approved by both design and engineering teams. At Grubhub, we create these patterns as bundles of CSS code that can be easily exported and attached to HTML for assembly on external client apps.
Every year, Grubhub runs an internal pitch competition that allows anyone in the company to present ideas to a panel of judges.The teams with winning ideas get prizes, including stock grants — but most importantly, our ideas become real products. Having recently attended Google I/O and WWDC developer conferences, we thought this competition was the perfect opportunity for us to pitch ways to use the latest technologies we were exposed to. We brainstormed various ideas to help improve our platforms and overall diner experience. We came up with 20 ideas overall and eventually submitted our top 5 ideas for consideration.
Grubhub uses a microservices architecture which requires developers to manage a wide array of various services in their development environment. To tackle this problem, Grubhub developed a vagrant-managed virtual machine using docker-compose to manage and run service dependencies. Utilizing this system, called garcon-in-a-box, we have had new developers attend orientation on Monday, learn our services and set up their development environment on Tuesday, and have their first code change ready for review Wednesday morning.
On March 15, Grubhub celebrated the launch of our first voice-controlled ordering system, ‘Reorder with Grubhub’ for Amazon Alexa. Designed for frequent Grubhub users, our skill evolves the ordering experience by enabling diners to reorder their favorite dishes without lifting a finger. We’re so excited to offer this skill, and that enthusiasm extends to this blog post, where I’ll walk you through basic skill functionality, our design process, and our run-up to launch.
At some point in their careers, most software engineers have been asked to build features that need to run on a schedule. Sending a daily email, reporting on system health, and cleaning up stale data are a few examples of such automated tasks. Usually, these tasks can be implemented with Cron or by using a third-party scheduling tool like Obsidian. While these tools work well, they don’t have a good solution for high availability, such as running in multiple regions.
At Grubhub, we always keep an eye on new technologies, analyzing and evaluating their suitability for building tools that keep our hungry diners happy. Users have little patience for software that doesn’t respond immediately — in fact, only 16% of users will try a failing application more than twice. Working software that responds quickly is even more vital for our users, who are often on our website or mobile app because they’re hungry or looking for a favorite meal.
At Grubhub, we use different technologies to manage the substantial amounts of data generated by our system. One of them is Spark. Some of us also use PySpark, which is working well, but problems can arise while trying to submit artifacts and their dependencies to the Spark cluster for execution.
At Grubhub we have Learning Friday, which is an afternoon per week set aside for team members to learn and innovate. Although some people make good use of this time, many of us let our day-to-day tasks consume it. I had begun wondering how we could use Learning Friday more effectively.
The Grubhub Product and Technology Teams on
The Grubhub skill for Alexa is available for all Grubhub diners who have a device with Amazon Alexa such as the Amazon Echo, Echo Dot and Amazon Tap. The convenient voice-ordering experience allows diners to ask Alexa to recite their past three orders. They can then reorder from one of their favorite local restaurants.
Grubhub’s newly formed product team develops new features in order to fulfill over 290,000 orders each and every day. With a laser focus on user experience, we’ve made significant strides in 2016. Leveraging learnings from our massive troves of customer data, we started testing changes to make sure that they offer the best possible user experience for our customers.