SlideShare a Scribd company logo
Frontend Development
for Distributed Teams
28th March 2018
Ardy Dedase
https://github.com/ardydedase
https://www.linkedin.com/in/ardydedase/
• Joined Skyscanner in 2013.
• Worked with multiple groups: Data Acquisition, Platform, B2B, Partner
Onboarding.
About the speaker
Before we start
What this talk IS…
• High-level view of our three fundamental frontend
development standards.
• First hand experience of someone who’s not working on
frontend full-time.
• From the perspective of a Skyscanner engineer who
uses these tools and services built and maintained by
our awesome “Developer Enablement” teams.
Before we start
Outline
• The Skyscanner Story
• Distributed teams
• Nailing the basics
• Frontend standards
• Cookiecutter
• React Components
• Open Components
Front end Development for Distributed Teams
Page Title
How it
all began
Front end Development for Distributed Teams
Growth
Skyscanner launched
Expands across
Europe with foreign
site launches
First 100k visits in a day
First app launched
Singapore business
established to support
APAC growth
Beijing office opened
Miami business
established to support
Americas growth
Skyscanner moves
from flights to travel
with car hire launch
and hotel technology
acquisition
Sequoia secondary
investment values
Skyscanner at
$800million
2003 2005 2007 2011 2013 2014
Sofia office opened
Acquired Chinese
travel search site
Youbibi and opened
office in Shenzhen
Skyscanner powers
MSN travel worldwide
Five new partners
invest $192m
Acquired Distinction
and opened office in
Budapest
Launched apps for
hotels and car hire
Joint venture with
Yahoo! JAPAN
launched
Larger Budapest office
and London office
open
2015 2016
Facebook bot
launched, followed by
Skype bot and Alexa
skill
All three apps
combined
Skyscanner
acquired by
Ctrip £1.46bn
Exponential and very healthy growth
0
10
20
30
40
50
60
70
Our ultimate goal:
to make travel booking as easy as it is today to
buy a book online
Distributed Teams
Global
60,000,000
Edinburgh, Glasgow
& London
Miami
Singapore
Beijing
Barcelona
Budapest
Sofia
Shenzhen
Tokyo
Challenges
Distributed teams
Source: https://res.infoq.com/articles/top5-problems-distributed/en/resources/img1.jpg
Distributed teams
Engineering Challenges
• Different standards
• Too many languages and frameworks
• Duplication of work
• Siloes (us vs. them)
• Communication (time zone differences)
• Slow release cycles
Distributed teams
Distributed teams
We were not ready…
• Infrastructure and tooling
• Too much autonomy given to all teams
Nailing the basics
Continuous Delivery
Continuous Delivery
Drone (drone.io)
• Automates the release workflow
• Configuration as code
• Container native. Pipeline is executed in the container.
Deployment
Orchestration
Deployment orchestration
Slingshot
• Deploys our services to our ECS clusters
• Configuration as code
• Blue-green deployment.
From 20 to 2 million releases per year
• http://codevoyagers.com/2016/10/24/from-20-to-2-million-releases-a-year-
part-1/
• http://codevoyagers.com/2016/10/31/from-20-to-2-million-releases-a-year-
part-2/
• http://codevoyagers.com/2016/11/07/from-20-to-2-million-releases-a-year-
part-3/
More about our deployment pipeline
Frontend standards
Cookiecutter
Cookiecutter
Reusable project templates
• Standardizes the way our services are built.
• Pre-configured to work with our deployment pipeline.
• https://github.com/audreyr/cookiecutter
Cookiecutter
Demo
React components
React components
Reusable React components
• Standardizes the design resources and guidelines.
• Helps us achieve a consistent look and feel across our
web applications.
• https://backpack.github.io/
React components
Demo
Open components
Open components
Reusable Open components
• Publish, share and reuse web components across the
website.
• Abstracts away complicated infrastructure and leaves
developers with very simple, but powerful building blocks
that handle scale transparently.
• https://github.com/opencomponents by OpenTable.
Open components – how it works
Open components – cookie cutter flow
Demo
High level structure
Lessons learned
Lessons learned
• It works both ways.
• It will not work for all engineers.
• Less effort in handing over ownership and team rotation.
Thank you

More Related Content

Similar to Front end Development for Distributed Teams (20)

PPTX
Devops Powered by Splunk
Splunk
 
PPTX
What do the "Cool Kids" know about DevOps?
Bill Holtshouser
 
PPTX
DevOps Workshops Fall 2016
Kelly Looney
 
PDF
Wrangling Large Scale Frontend Web Applications
Ryan Roemer
 
PDF
DevOps Patterns to Enable Success in Microservices
Rich Mills
 
PDF
Modern Web development and operations practices
Grig Gheorghiu
 
PDF
Scaling a Serverless Developer Platform for Teams
Mikael Vesavuori
 
PDF
Introduction to DevOps
OCTO Technology
 
ODP
Bazillion New Technologies
Ayman Mahfouz
 
PDF
Advanced Full Stack Development: Scaling, Deployment, and Maintenance
saniakhan8105
 
PDF
DevOps Patterns to Enable Success in Microservices
Rich Mills
 
PPTX
Modern Application Development v1-0
Greg Hoelzer
 
PPTX
DevOps Powered by Splunk
Splunk
 
PDF
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Henning Jacobs
 
PDF
DevOps Transformation: Learnings and Best Practices
QBurst
 
PDF
Streamlining Product Handovers
UXDXConf
 
PDF
Microservices: Organizing Large Teams for Rapid Delivery
VMware Tanzu
 
PDF
Dev trends 18_q1
Pini Cohen
 
PDF
Developer Experience at Zalando - Handelsblatt Strategisches IT-Management 2019
Henning Jacobs
 
PPTX
The Hard Problems of Continuous Deployment
Timothy Fitz
 
Devops Powered by Splunk
Splunk
 
What do the "Cool Kids" know about DevOps?
Bill Holtshouser
 
DevOps Workshops Fall 2016
Kelly Looney
 
Wrangling Large Scale Frontend Web Applications
Ryan Roemer
 
DevOps Patterns to Enable Success in Microservices
Rich Mills
 
Modern Web development and operations practices
Grig Gheorghiu
 
Scaling a Serverless Developer Platform for Teams
Mikael Vesavuori
 
Introduction to DevOps
OCTO Technology
 
Bazillion New Technologies
Ayman Mahfouz
 
Advanced Full Stack Development: Scaling, Deployment, and Maintenance
saniakhan8105
 
DevOps Patterns to Enable Success in Microservices
Rich Mills
 
Modern Application Development v1-0
Greg Hoelzer
 
DevOps Powered by Splunk
Splunk
 
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Henning Jacobs
 
DevOps Transformation: Learnings and Best Practices
QBurst
 
Streamlining Product Handovers
UXDXConf
 
Microservices: Organizing Large Teams for Rapid Delivery
VMware Tanzu
 
Dev trends 18_q1
Pini Cohen
 
Developer Experience at Zalando - Handelsblatt Strategisches IT-Management 2019
Henning Jacobs
 
The Hard Problems of Continuous Deployment
Timothy Fitz
 

Recently uploaded (20)

PPTX
Thermal runway and thermal stability.pptx
godow93766
 
DOC
MRRS Strength and Durability of Concrete
CivilMythili
 
PPTX
Benefits_^0_Challigi😙🏡💐8fenges[1].pptx
akghostmaker
 
PPTX
Introduction to Design of Machine Elements
PradeepKumarS27
 
PDF
Zilliz Cloud Demo for performance and scale
Zilliz
 
PPTX
265587293-NFPA 101 Life safety code-PPT-1.pptx
chandermwason
 
DOCX
CS-802 (A) BDH Lab manual IPS Academy Indore
thegodhimself05
 
PPTX
Heart Bleed Bug - A case study (Course: Cryptography and Network Security)
Adri Jovin
 
PPTX
UNIT DAA PPT cover all topics 2021 regulation
archu26
 
PDF
Biomechanics of Gait: Engineering Solutions for Rehabilitation (www.kiu.ac.ug)
publication11
 
PDF
GTU Civil Engineering All Semester Syllabus.pdf
Vimal Bhojani
 
PPTX
Types of Bearing_Specifications_PPT.pptx
PranjulAgrahariAkash
 
PPTX
ISO/IEC JTC 1/WG 9 (MAR) Convenor Report
Kurata Takeshi
 
PPTX
The Role of Information Technology in Environmental Protectio....pptx
nallamillisriram
 
DOCX
8th International Conference on Electrical Engineering (ELEN 2025)
elelijjournal653
 
PPTX
Shinkawa Proposal to meet Vibration API670.pptx
AchmadBashori2
 
PDF
monopile foundation seminar topic for civil engineering students
Ahina5
 
PPTX
Green Building & Energy Conservation ppt
Sagar Sarangi
 
PDF
MAD Unit - 1 Introduction of Android IT Department
JappanMavani
 
PPTX
Hashing Introduction , hash functions and techniques
sailajam21
 
Thermal runway and thermal stability.pptx
godow93766
 
MRRS Strength and Durability of Concrete
CivilMythili
 
Benefits_^0_Challigi😙🏡💐8fenges[1].pptx
akghostmaker
 
Introduction to Design of Machine Elements
PradeepKumarS27
 
Zilliz Cloud Demo for performance and scale
Zilliz
 
265587293-NFPA 101 Life safety code-PPT-1.pptx
chandermwason
 
CS-802 (A) BDH Lab manual IPS Academy Indore
thegodhimself05
 
Heart Bleed Bug - A case study (Course: Cryptography and Network Security)
Adri Jovin
 
UNIT DAA PPT cover all topics 2021 regulation
archu26
 
Biomechanics of Gait: Engineering Solutions for Rehabilitation (www.kiu.ac.ug)
publication11
 
GTU Civil Engineering All Semester Syllabus.pdf
Vimal Bhojani
 
Types of Bearing_Specifications_PPT.pptx
PranjulAgrahariAkash
 
ISO/IEC JTC 1/WG 9 (MAR) Convenor Report
Kurata Takeshi
 
The Role of Information Technology in Environmental Protectio....pptx
nallamillisriram
 
8th International Conference on Electrical Engineering (ELEN 2025)
elelijjournal653
 
Shinkawa Proposal to meet Vibration API670.pptx
AchmadBashori2
 
monopile foundation seminar topic for civil engineering students
Ahina5
 
Green Building & Energy Conservation ppt
Sagar Sarangi
 
MAD Unit - 1 Introduction of Android IT Department
JappanMavani
 
Hashing Introduction , hash functions and techniques
sailajam21
 
Ad

Front end Development for Distributed Teams

Editor's Notes

  • #2: Hopefully you can learn something and apply it to your organization.
  • #3: Joined different teams. Skyscanner felt like a different company every year. Experienced the hyper growth first hand. Re-organization, re-structuring and changes were common. That’s all you need to know within this context, if you really want to know more about me. Google my name.
  • #4: I won’t dissect each service and explain how the code works. I can’t remember the last time I edited a CSS file. I wasn’t involved in the development of these tools and services. I only contribute in the doc and report bugs.
  • #8: Back in the early 2000s there were many budget airline sites in the UK. Gareth was regularly travelling to Europe to ski with his brother, and trawling all these sites proved an extremely time-consuming process. Gareth, Bonamy and Barry put their heads together to come up with a solution, and from a simple spreadsheet and a few lines of code, Skyscanner was born. It grew by word of mouth.
  • #10: (Events can be removed to ensure you’re able to talk about simply those that fit with the presentation goal on the day) - Fogg. hotels
  • #11: (Events can be removed to ensure you’re able to talk about simply those that fit with the presentation goal on the day)
  • #12: We’ve celebrated double digit revenue growth for seven consecutive years, and continue to grow at an accelerated rate.
  • #16: 60m UMVs. Visitors to Skyscanner in 2015 grew 48 percent over the prior year. The Asia Pacific region continued to show strong growth, with visitors increasing 48 percent last year. In China, a focus for Skyscanner since the acquisition of Youbibi in 2014, visitors grew 67 percent. The Americas region saw 55 percent growth in visitors last year, more than doubling in the U.S. Visitors in Europe grew 42 percent.
  • #19: Remember the acquisitions: Fogg Youbibi Distinction Different from our stack PHP, Java vs C#, Python
  • #20: Wasted effort. Not efficient. Differing standards. Engineer coming from company A has a different opinion, etc.
  • #21: Started working on moving to the cloud Each Team had AWS budget of $500 / month Every team had the autonomy Mostly historical reasons because of the acquisitions For example, there was a time when we had two frameworks on Skyscanner.net – backbone and AngularJS
  • #22: We were not ready because we did not ‘nail the basics’ Here’s what we needed
  • #23: The starting point.
  • #25: We were not ready because we did not ‘nail the basics’ Here’s what we needed
  • #27: We were not ready because we did not ‘nail the basics’ Here’s what we needed
  • #29: The starting point.
  • #31: Services loosely used – can be web applications
  • #32: We were not ready because we did not ‘nail the basics’ Here’s what we needed
  • #35: Button colors
  • #39: Button colors
  • #44: Button colors