Pretty incredible that the TripAdvisor story began 15 years ago above a tiny pizza shop in Needham, Massachusetts. As the world’s largest online travel website, TripAdvisor impacts the lives of hundreds of millions of travelers. Here's the inside scoop on their engineering team. Read on to learn about the awesome projects they are up to in this Engineering Spotlight!
TripAdvisor is one of Boston’s largest employers in tech. How large is the engineering team in Boston?
We have hundreds of engineers located between our Global Headquarters in Needham, MA or our downtown Boston office on Causeway Street. About ⅔ of these engineers are part of our Core Engineering organization with the rest being split between our Vacation Rentals, Flights, and Smarter Travel Media business units. We also have engineering hubs in NYC, Palo Alto, LA, Ottawa, Dublin, Oxford, Paris, Sydney, and Beijing.
There are so many different parts to what makes all the different TripAdvisor websites and products work from a technical point of view. Can you share or highlight some of the details of the underlying architecture?
At TripAdvisor, when we think of the technical architecture and operations that support one of the most popular websites in world, 2 words immediately come to mind - “simplicity” and “flexibility”. We’re relentlessly focused on creating simple software and designs, with no complex hardware, limited processes, with a ground up approach to architecture and tools.
Scalability is woven into our organization on many levels - data center, software architecture, development/deployment/operations, and, most importantly, within the culture and organization. It is not enough to have a scalable data center, or a scalable software architecture. The process of designing, coding, testing, and deploying code also needs to be scalable. All of this starts with hiring and a culture and an organization that values and supports a distributed, fast, and effective development and operation of a complex and highly scalable consumer web site.
- Open Source Linux, Apache, Tomcat, Java, Postgres, Lucene, Velocity, Memcached, JGroups
- Keep it really simple - easier to build for, debug, deploy, maintain, and operate
- Bank of very simple, stateless web servers, running simple Java and Velocity templates
- Each "functional" area (media, members, reviews, travel lists, etc) is packaged as a service
- Bank of "services" - each service is high level, business oriented API optimized for over the wire performance
- We assume things fail. So we either have plenty nodes in a cluster (web servers, service machines), or have true N+1 redundancy (databases and the datacenter itself)
The scale that TripAdvisor’s works at is massive. Can you give our readers a perspective around this topic?
- TripAdvisor influences 10% of global travel spend, with $20.5B in 2014 attributed to us, typically in the form of longer, or more frequent, stays.
- TripAdvisor is the #1 ranked travel website in the world based on traffic
- 340M unique monthly visitors
- 350M reviews and opinions, growing at ~230/minute
- Completely Dynamic Website = each website hit is executing 100k’s lines of code
- Users have downloaded Trip Mobile Apps more than 315M times
How has the engineering culture at TripAdvisor evolved as you continue to grow and scale?
“Over the 8 years I have been with TripAdvisor Engineering there are some things that have remained consistent about the culture and some things that have changed. We have always had and will continue to promote a sense of personal responsibility and ownership to every single engineer and the work that they do. No matter how large or small the project you are working on there is an expectation that you take responsibility for moving your project forward quickly without getting bogged down or blocked and that you quickly take ownership for any issues that arise from it. We move quickly and sometimes things break which is expected and ok, the important part being how we identify, fix, and learn from these breakages.
I have seen the engineering culture evolve as the team grew 6x the number of when I started. In order to maintain our fast pace and sense of personal responsibility and ownership it required changing some of our processes and the way we think about things. One specific example would be the way in which we view automated testing and failures. When your company and your code base is small and an automated test fails it typically blocks development in some way, but it is much easier to determine who should be looking into this issue and quickly respond. Given our culture of personal responsibility the engineer who owns or is responsible for the issue can easily identify it and claim it. As the team and code becomes larger and more distributed it becomes less clear where the issue should be routed. Additionally the cost to having development blocked increases as your team size increases. Consequently, we started to shift our views on automated tests such that a failure should not halt development because the cost is too high. Instead we should allow for development to continue, but ensure there is an appropriate mechanism in place to get any issues resolved in parallel prior to it becoming a 'real' issue such as when code is released. This allows a larger engineering organization to continue to move quickly while preserving our culture of individual responsibility."
- Steve Bourdeau, Technical Manager - Product Engineering
“The essence of the TA engineering culture is that of quick iterative software development with pragmatic solutions. Engineers work closely with product and design to incrementally deliver solutions, measure their results, learn, rinse and repeat. Engineers own what they build and determine when it ships. Mistakes are part of this process and that is okay. We learn from our mistakes with the goal of not repeating the same mistake more than once.
Continued success requires that we continually evolve the way we develop software, adapting to a more complex business environment, and distributed development teams. As a business, TripAdvisor has made changes to our business model, dealing with the transitional challenges head on. Our engineering team is no different and will continue to evolve the way we develop software.”
- Nick Shanny, Co-Founder/SVP Global Engineering
We noticed that Rekha Singh is a female VP of Engineering at TripAdvisor, can you share more about her background and what she manages?
Rekha’s performance and track record speaks for itself. Her software engineering career started 26 years ago after graduating with a computer science degree from Western Michigan University (she also later received her Master's degree in computer science). After working for a combination of large corporations and technology start-ups, Rekha arrived at TripAdvisor 8 years ago to manage an 11-person team, which she has since grown to well over a hundred engineers. She is responsible for the overall management of our product engineering teams which include our instant booking platform, our site experience teams, along with our sales and community product teams among others.
Rekha is one of the best multi-taskers in the business. During her time with TripAdvisor, she has started the internship program from the ground up, manages our campus recruiting efforts for engineering, runs our “Girls Who Code” program all while simultaneously managing over 15 product engineering teams!
Some keys to Rekha’s success include:
- Finding the right people who have a passion for building a great product in which they can be proud of.
- Moving fast, collecting the data, learning from a failure and revise it until you make the product successful
- Setting high standards, but also giving people the flexibility to excel
- Maintaining the culture of a start-up
- Allowing freedom and creativity to exist on projects
What are some of the cool & interesting problems that engineers get to solve?
The Places team is responsible for building a platform to collect, manage, analyze, and publish the millions of locations our travelers visit every year. Our data set spans core listing data, usage and tracking metadata, geocodes, and photos. Our charter is to publish the most complete and accurate location database in the industry.
To deliver on this mission we enhance data collection on the main site and our TripAdvisor mobile apps, build a data processing pipeline, integrate with third-party vendors, implement a manual curation user interface, and develop automated validation algorithms.
Our key challenges are data volume and data quality. Our processing pipeline must quickly assess the hundreds of signals received for each of our millions of locations, then distill and publish the best possible data set. Our solution leverages a cross-discipline approach. While some specialize in machine learning, UI design, or mobile app development most engineers on this team are polyglots. On any given day a developer might implement high performance rules in Java, extend the Redshift datamart, improve an algorithm to identify duplicates, or build a new system to collect map-pin placement feedback from our millions of mobile users.
We’re constantly looking to improve and we work based a feedback loop that prioritizes new projects from data-driven assessments. We iteratively build new process to measure some facet of our data quality, and then implement a system to drive the target metric to goal. Are all geocodes consistent with corrected addresses? Yes, great- let’s measure front-door pin placement rate!
Machine Learning Team
TripAdvisor has a huge amount of data. TripAdvisor’s Machine Learning group concentrates on using that data with advanced techniques to augment and improve the content on our site.
Given our huge database of reviews, it shouldn’t be surprising that we do a lot with natural language processing. Ever wonder how TripAdvisor knows whether a hotel is “trendy” or “romantic”? Whether a restaurant has a good bar scene, or an attraction is good for young kids? We use our huge library of reviews along with votes collected by our users to build models that give us the answers. We have over 300 models running over our 350 million reviews and opinions. In order to handle that amount of data, we use advanced machine learning techniques built on top of Apache Spark and other big data tools.
We use other natural language techniques to extract contextual review snippets so we can present our users with the most relevant information. Looking for an Italian restaurant? We’ll make sure to tell you about the amazing osso bucco or pumpkin tortellini. Looking at a huge list of reviews? We’ll find the most interesting, diverse set of phrases so you know how to drill in to what you think is the most relevant.
In addition to NLP, we use our huge amount of site traffic with other predictive modelling techniques. We do recommender systems, predicting what our users will be interested in next so that we can help to get them there sooner. We help with site search, understanding our user’s queries and predicting how we should sort search results. We find fraudsters trying to submit fake reviews. We’ve even redesigned the pop-index, which determines the rankings for the best hotels and restaurants for every area in the world.
In short, our mission is to use the considerable amount of data at our disposal to make sure you get the most reliable and relevant information each time you come to TripAdvisor.
Search and Discovery Team
Our Search team is tasked with indexing all of TripAdvisor's user-generated content, making it searchable, to enable users to find that perfect restaurant or hotel. The team's infrastructure handles tens of millions of search requests per day using the open-source Elasticsearch stack. We believe that by having this giant trove of reviews from real travelers, TripAdvisor is excellently positioned to understand what dishes a restaurant is known for, or what makes a hotel unique, and using that information to power our user's search results. We're constantly iterating on our search ranking algorithms, to bring the best a city has to offer to travelers.
We solve huge scaling problems, such as how to speed up search response times, examining millions of locations and reviews under peak loads of thousands of requests per second.
In the long-run, we’re working to get a deeper, real-time understanding of search queries - moving far beyond keyword search, and into understanding natural language to match our output to users’ intent. Search intents are different whether you’re on the go, or browsing from your laptop. We’re developing location-aware solutions to enable users on iOS and Android apps to search for amazing sights and restaurants close to where they are right now.
Key to our product culture, we’re big believers in data-driven decision making. We roll out all new search features to a small portion of users, measure their reaction, and use that data to know what to enable widely, and what to re-work.
TripAdvisor opened up their beautiful new campus in Needham last year. Are there special perks that engineers can expect by working at your headquarters?
Each newly hired engineer will be outfitted with the latest Macbook Pro using a Linux Workstation with 64GB of RAM with their choice of either two 27” HD monitors or one 30” HD monitor.
All new TripAdvisor employees based at HQ are able to enjoy:
- Free gourmet lunches everyday
- Access to an onsite state of the art fitness center along with a $600 annual fitness reimbursement program
- 6 different beers on tap/selection of wines in multiple wine fridges in our pub and game room
- Yearly travel stipend
- Discounts on travel purchases through many suppliers
- Educational Assistance programs of up to $5000
- Cold Brew Iced Coffee on Tap
- Free Snacks, Beverages on every floor throughout the office
- Relaxed Dress Code
- & Many many more programs, perks for all employees to take advantage of
Can you highlight some of your job openings?
We’re always looking for exceptional engineering talent and will always try to make room for hiring great passionate engineers.
We’re constantly on the lookout for full stack java engineers with exceptional computer science fundamentals and due to our big push into mobile we’re ramping our hiring plans for senior iOS and Android engineers for multiple product teams.
As you can probably imagine, TripAdvisor houses an incredible amount of data, so we’re also actively looking for senior data science engineers who have deep experience working with massive amounts of data.
What do the engineers do for fun outside of work?
Engineers are involved in a variety of extracurricular activities including:
- Hanging out around Cambridge at the local pubs
- Going to Red Sox Games
- Playing card games in the game room and throughout the office
- Video games
- Running 5k’s with the TripAdvisor Charity Team
Complete this sentence for our audience:
I love working at TripAdvisor because…
… you never get pigeon-holed into working on a tiny part of the system, working here you own features in the backends, the mobile apps, and the website. There’s so much variety in the work!
... of the speed and frequency that something is released to the live site.
...of the engineering culture (start-up mentality)
...of the ability to own projects from conception to production.
...I get to contribute to our products at every stage of development, not just engineering. My ideas are taken into account during the conception, design, implementation, and analysis phase of the product.
...of the freedom that I have to work on projects - there are no barriers.
...it’s a safe environment to fail. You can learn from it and then move quickly to address it and fix it.
...our web traffic and mobile user to engineer ratios are best in the business - meaning every engineer can have a massive impact across the globe at scale.
...of the people who are here. I’m lucky to say I feel I get to work with some of the brightest and most enjoyable talent in all of tech.