Airbnb
(Contributor article “Isomorphic JavaScript: The Future of Web Apps by ” Front-end Engineer at Airbnb. Originally appeared on Airbnb)
At Airbnb, we’ve learned a lot over the past few years while building rich web experiences. We dove into the single-page app world in 2011 with our mobile web site, and have since launched Wish Lists and our newly-redesigned search page, among others. Each of these is a large JavaScript app, meaning that the bulk of the code runs in the browser in order to support a more modern, interactive experience.
This approach is commonplace today, and libraries like Backbone.js, Ember.js, and Angular.js have made it easier for developers to build these rich JavaScript apps. We have found, however, that these types of apps have some critical limitations. To explain why, let’s first take a quick detour through the history of web apps.
Data Driven Growth at Airbnb by – As Airbnb’s VP of Engineering, Mike Curtis is tasked with using big data infrastructure to provide a better UX and drive massive growth. He’s also responsible for delivering simple, elegant ways to find and stay at the most interesting places in the world. He is currently working to build a team of engineers that will have a big impact as Airbnb continues to construct a bridge between the online and offline worlds. Mike’s particular focus is on search and matching, systems infrastructure, payments, trust and safety, and mobile.
(Contributor article “SmartStack: Service Discovery in the Cloud by Igor Serebryany” Site Reliability Engineer at Airbnb. Originally appeared on Airbnb)
What is SmartStack?
SmartStack is an automated service discovery and registration framework. It makes the lives of engineers easier by transparently handling creation, deletion, failure, and maintenance work of the machines running code within your organization. We believe that our approach to this problem is among the best possible: simpler conceptually, easier to operate, more configurable, and providing more introspection than any of its kind. The SmartStack way has been battle-tested at Airbnb over the past year, and has broad applicability in many organizations, large and small.
SmartStack’s components – Nerve and Synapse – are available on GitHub! Read on to learn more about the magic under the hood.
The problem of services in an SOA
Companies like Airbnb often start out as monolithic applications – a kind of swiss army knife which performs all of the functions of the organization. As traffic (and the number of engineers working on the product) grows, this approach doesn’t scale. The code base becomes too complicated, concerns are not cleanly separated, changes from many engineers touching many different parts of the codebase go out together, and performance is determined by the worst-performing sections in the application.
The solution to this problem is services: individual, smaller code bases, running on separate machines with separate deployment cycles, that more cleanly address more targeted problem domains. This is called a services-oriented architecture: SOA.
As you build out services in your architecture, you will notice that instead of maintaining a single pool of general-purpose application servers, you are now maintaining many smaller pools. This leads to a number of problems. How do you direct traffic to each machine in the pool? How do you add new machines and remove broken or retired ones? What is the impact of a single broken machine on the rest of the application?
Dealing with these questions, across a collection of several services, can quickly grow to be a full-time job for several engineers, engaging in an arduous, manual, error-prone process fraught with peril and the potential for downtime.
(Contributor article “How We Measured America’s Most Hospitable Cities” by Riley Newman, Head of Analytics/Data Science at Airbnb. originally appeared on Airbnb Blog)
By: Andrey Fradkin, Riley Newman & Rebecca Rosenfelt
Lately, we’ve been thinking about how we can promote and share exceptional hosting practices. We know that some hosts on our site consistently receive exceptional reviews. What are the common characteristics of these hosts?
As a first step in our investigation, we created a “Hospitality Index” that measures host quality across cities. Immediately, we saw stark regional trends in host quality and hospitality.
Methodology
To build the index of America’s most hospitable cities, we looked to reviews, our richest source of data about how a trip went. After each trip, we ask guests to rate a number of specific dimensions:
- Cleanliness — a foundational aspect of any travel experience.
- Check In — a crucial moment that affects the entire trip.
- Communication — the primary factor in resolving queries and forestalling any issues.
- Value — This one is a bit tricky because in some ways it encompasses all the other measures. But capturing a guest’s sense of the overall value of the experience is an important metric.
- Accuracy — expectation management is key to a smooth Airbnb experience.
There’s a long history of criticism surrounding 5-star review systems. For example, scores tend to be binary (5 or 1). But we can be confident that a 5-star score is a good experience, at minimum. So for the index we looked at the percentage of trips (not reviews, which would be biased by review rates) where guests give 5-star scores for all of the above criteria.
This talk is by , a Data Scientist at . It is a talk sponsored by .
Josh talks extensively about the rare statistician/software engineer that is the Data Scientist. He posits that there is a continuous need for their craft especially as data sets become larger and computational skills more necessary. Josh puts forth ways to develop and grow data scientists and teams, sharing how to build an appealing and inspiring workplace for them to thrive.
This talk is by , Staff Software Engineer at Google. It is one of the series of tech talks hosted and sponsored by Airbnb .
Brad will give a tech talk on Go, a new general-purpose programming language developed at and in use by Google, with contributions from nearly 300 open source contributors.
Go gives you the fun and agility of scripting languages, the performance of traditionally-tedious statically typed languages, and built-in language concurrency mechanisms to let you write simple and straight-forward code whether it’s small “scripts” or huge servers dealing with millions of action connections, without the pain of either event-based code or the pain of threads.