A
Airbnb Engineering
nerds.airbnb.com · Company blog · on HN since 2010
Airbnb's engineering team writes about its infrastructure, open source tools, front-end architecture, testing and engineering culture.
What HN saysHN commenters list it among good company engineering blogs, alongside Instagram and Stripe, and point to it for Airbnb's engineering work.
110HN people shared it
55linked it in comments
94stories submitted
3.1Kstory points
10 years agolast shared
2010people per year2026
Most-shared posts
- 1Isomorphic JavaScript: The Future of Web Apps12 people · 179 points · first shared 2013 · 117 comments on HN
- 2Airbnb - Switching to a HTML5 Photo Manager10 people · 7 points · first shared 2011 · discussion on HN
- 3Introducing SmartStack: Service Discovery in the Cloud9 people · 94 points · first shared 2013 · 37 comments on HN
- 4Our First Node.js App: Backbone on the Client and Server7 people · 224 points · first shared 2013 · 61 comments on HN
- 5Introducing Chronos: A Replacement for Cron5 people · 154 points · first shared 2013 · 61 comments on HN
- 6Testing at Airbnb4 people · 197 points · first shared 2014 · 55 comments on HN
- 7Airflow: a workflow management platform – Airbnb Engineering4 people · 33 points · first shared 2015 · 5 comments on HN
- 8Engineering Culture at Airbnb4 people · 6 points · first shared 2014 · 1 comments on HN
- 9Hacking Word-of-Mouth: Making Referrals Work for Airbnb3 people · 56 points · first shared 2014 · 5 comments on HN
- 10We've Open-sourced Rendr2 people · 230 points · first shared 2013 · 54 comments on HN
- 11Architecting a Machine Learning System for Risk2 people · 174 points · first shared 2014 · 39 comments on HN
- 12Experiments at Airbnb2 people · 164 points · first shared 2014 · 43 comments on HN
- 13MySQL in the cloud at Airbnb2 people · 102 points · first shared 2010 · 20 comments on HN
- 14Upgrading Airbnb from Rails 2.3 to Rails 3.02 people · 84 points · first shared 2012 · 27 comments on HN
- 15Scaling Data Science at Airbnb2 people · 76 points · first shared 2015 · 8 comments on HN
What HN people wrote when they linked it
altern8tif · 2017-04-21
Great design + engineering teams = Awesome products
Instagram (https://engineering.instagram.com/)
Stripe (https://stripe.com/blog/engineering)
Airbnb (http://nerds.airbnb.com/)
lzecon · 2015-04-01
Airbnb - San Francisco
We love you.
https://www.airbnb.com/careers/departments/engineering
http://nerds.airbnb.com/
JayeshSidhwani · 2017-04-21
I had asked a similar question on Quora [1] few years back. Here is the summary:
- Facebook: https://www.facebook.com/Engineering?sk=notes
- Google: http://google-engtools.blogspot.com/
- Twitter: http://engineering.twitter.com/
- Linkedin: http://engineering.linkedin.com/blog
- Dropbox: https://tech.dropbox.com/
- Instagram: http://instagram-engineering.tumblr.com/
- Netflix: http://techblog.netflix.com/
- Flickr: http://code.flickr.com
- Etsy: http://codeascraft.etsy.com/
- Yelp: http://engineeringblog.yelp.com/
- Heroku: https://blog.heroku.com/
- Airbnb: http://nerds.airbnb.com/
- Bitly: http://word.bitly.com/
- Evernote: https://blog.evernote.com/tech/
- Highscalability: http://highscalability.com/
[1] https://www.quora.com/What-are-the-companies-that-have-some-of-the-bes…
dispatcher68 · 2016-08-06
There is an entire blog dedicated to the topic of tech at Airbnb: http://nerds.airbnb.com/. Perhaps you will still feel the same after reading this?
Peter Thiel's Zero To One described four pillars that were necessary for a monopoly. It appears Airbnb has most if not all of these.
1. Network effects - this is usually more important than proprietary tech. They have this - global network effect. This is not a "retail company" any more than Amazon's 3rd party marketplace or Alibaba's is.
2. Tech - read blog and decide for yourself. It's easy to imagine at sub-scale also being able to build Facebook, Instagram, Snapchat, etc. Most of the challenges come at scale (and are protected by #1 above).
3. Brand - the commenters seem to agree they have this.
4. Economies of scale - they have this.
GarethX · 2015-08-26
348 according to http://www.quora.com/Airbnb-in-2015/How-many-front-end-engineers-are-i… assuming all 'nerds' are engineers, which usually isn't true of course, but http://nerds.airbnb.com makes me think maybe they are.
jsingleton · 2015-06-04
Nerds seems to be a well used term there [0,1]. I agree that I'd prefer something else. Maybe they got the same guys that did the new logo to come up with it?
[0] http://nerds.airbnb.com/
[1] https://twitter.com/AirbnbNerds
sehr · 2014-10-06
The learn more page links here: http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/
Isn't the greatest site though. Looks like it was started and then abandoned around March
tomblomfield · 2014-07-21
"One problem is not many tests. Tests aren’t needed because there’s a great community... If users find any problems with it they report the bugs that they’ve found."
I'm often surprised at the paucity of test-coverage in relatively large companies.
http://nerds.airbnb.com/testing-at-airbnb/
alexatkeplar · 2014-04-16
Great idea! Also see if there's anything you want to steal/borrow from Chronos - http://nerds.airbnb.com/introducing-chronos/
slewis · 2014-03-04
I agree with your point that it might be worth paring back features to improve code quality.
But there is no one true code to test ratio. If you're trying to become a better programmer be wary of dogma.
As posted here the other day, airbnb didn't have much testing until a year ago: http://nerds.airbnb.com/testing-at-airbnb/
I'm not saying either way is right or wrong, which is kind of my point.
exhaze · 2013-08-26
Jeremy also gave a great Airbnb tech talk on this topic:
http://nerds.airbnb.com/reddit-netflix-and-beyond-building-scalable-an…
igor47 · 2014-04-18
i am constantly impressed at the hashicorp guys, who continue to release great tools. they actually released serf on the same day as we released nerve and synapse, which comprise airbnb's service registration and discovery platform, smartstack. see https://github.com/airbnb/nerve and https://github.com/airbnb/synapse
that said, as i wrote my blog post on service discovery ( http://nerds.airbnb.com/smartstack-service-discovery-cloud/ ),
dns does not make for the greatest interface to service discovery because many apps and libraries cache DNS looksups.
an http interface might be safer, but then you have to build a connector for this into every one of your apps.
i still feel that smartstack is a better approach because it is transparent. haproxy also provides us with great introspection for what's happening in the infrastructure -- who is talking to whom. we can analyse this both in our logs via logstash and in real-time using datadog's haproxy monitoring integration, and it's been invaluable.
however, this definitely deserves a look if you're interested in, for instance, load-balancing UDP traffic
avodonosov · 2016-10-25
Airbnb blog post from 2013 how they share code between client and server: http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/
crazy_geek · 2016-03-21
The sidecar part of this looks like what is essentially SmartStack[1] but requiring the user be aware of it's existence (due to Micro's proto3 api) whereby users of SS can more or less be ignorant of it's existence. Actually, to fully to what the sidecar does, you'd want something like Kafka[2] or some other pubsub system too.
[1] http://nerds.airbnb.com/smartstack-service-discovery-cloud/
[2] http://kafka.apache.org/
mtmail · 2016-02-25
thenayr · 2015-10-26
It's called Smartstack and is also entirely open-source - http://nerds.airbnb.com/smartstack-service-discovery-cloud/
Having been a long-time user, I can tell you the added complexity of every service having to allocate its own port, then tracking that port across every other service is a lot of overhead on its own.
Not to mention you also have to run a zookeeper cluster and two additional daemons on every instance.
All in all it's a good concept, but slightly too complex for my needs. Recently made the switch back to using internal ELB's for every service and not looking back.
toomuchtodo · 2015-10-02
Have you seen AirFlow before? I hooked a data scientist friend up with it dockerized, and he raves about it: http://nerds.airbnb.com/airflow/
danesparza · 2015-07-28
"The time for Dockers and containers isn't quite today, but it's very close."
Hmmm ... tell that to AirBnb (http://nerds.airbnb.com/future-app-deployment/), New Relic (https://blog.newrelic.com/2014/08/12/docker-centurion/ ) and Spotify (https://blog.docker.com/2014/06/dockercon-video-docket-at-spotify-by-r…
It is a young technology, but moving quickly. Just 10 years ago, YouTube wasn't owned by Google yet and we didn't have the first iPhone.
Hell, 17 years ago VMware (arguably the king in the virtual machine software market) was founded. If it was a kid, it wouldn't have graduated from high school yet!
mambodog · 2015-04-20
If you google 'isomorphic Javascript' you'll get a bunch of hits explaining this particular (ab)use of the word, here's a good one: http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/
Rafert · 2015-04-18
Afaik Ruby 1.9.3 -> 2.0 was less painful than getting from 1.8.7 to 1.9.3. See http://nerds.airbnb.com/upgrading-from-ree-187-to-ruby-193/
tlrobinson · 2015-03-20
The two are not necessarily mutually exclusive, especially with JavaScript frameworks you can run on the server to render the initial page, which then gets wired up to the client-side application. i.e. "Isomorphic JavaScript" [1][2]
[1] http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/
[2] http://isomorphic.net/
defenestration · 2015-02-21
I can give you some pointers.
1) A good discussion about Unit Testing on Hacker News. Is most unit testing a waste or not? https://news.ycombinator.com/item?id=7353767
2) A story about unit testing at Airbnb: http://nerds.airbnb.com/testing-at-airbnb/
3) Practical tips for test driven development:
http://soundsoftware.ac.uk/unit-testing-why-bother/
thirdtruck · 2015-01-21
It's not just you. It's too abstract of a word to tell me anything without more context.
Edit: Here's the definition they're using: http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/. In short, "JavaScript that runs on both the client and the server." This goes beyond "using node" to mean that (e.g.) everything is rendered on the server, but that you can also render only parts and send them to the client to handle on its own.
nwienert · 2014-11-26
I think really what happens is Node enables a new type of stack[1]. It doesn't actually really step on anything new the SPA's aren't already doing. Instead it moves to become isomorphic, so initial render is done by Node, but still the data sources, validation, and heavy backend logic all stays behind an API. That API could certainly be Erlang powered.
Also to respond to your points...
1. This I see as the most valid argument, but not a deal-breaker (see Walmart, LinkedIn using Node without problems scaling).
2. Check out Flow by Facebook [2] or TypeScript.
3. Not true with require/modules.
4. It's incredibly easy to include a JSLint file in your repo and as a git hook.
[1] http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/
[2] http://flowtype.org/
cmicali · 2014-11-26
One argument for one language everywhere is the benefits you get from an "isomorphic" app (http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/)
Sharing code between client and server lets reduce duplication and use the same templating/rendering on both sides. Fits very well with complex single-page apps.
That said, I'm not sure there are that many apps that really need this vs. the tradeoffs you have to make going all-in on JS and the complexity this can bring.
jakozaur · 2014-11-15
Wonder how this compare to Smart Stack:
http://nerds.airbnb.com/smartstack-service-discovery-cloud/
E.g. you got webservices talking over HTTP. One goes bad, you want existing clients not to talk to them.
Smart Stack: you are using HTTP proxy on each machine. You're code doesn't has to be aware of who is talking to.
Consul: Not sure, but it sounds like server code has to be able to handle events to change that.
jaredsohn · 2014-05-28
This talk may interest you (includes speakers from Uber and Airbnb.)
http://nerds.airbnb.com/openair-algorithmic-pricing/
ecesena · 2014-05-27
https link seems not working, while http does: http://nerds.airbnb.com/experiments-at-airbnb/