SlideShare a Scribd company logo
b
b
Large Scale CSS Refactoring at trivago
Amsterdam 12 May 2016
Christoph Reinartz ~ @pistenprinz
since 2012
twitter/medium
@pistenprinz
www.creinartz.de
Christoph Reinartz - @pistenprinz
What is it?

A description
Project Ironman was the technical migration of the trivago hotel
search's existing CSS core to a pattern library based user interface.*
*) business translation for #refactorAllTheThings
Christoph Reinartz - @pistenprinz
Ironman - Tech Context

The Big Picture
Christoph Reinartz - @pistenprinz
#1
Establish design and code consistency
Introduce a Frontend / Design System into the trivago hotel search
Christoph Reinartz - @pistenprinz
#2
Improve code quality and
maintainability
Reduce technical debt
Christoph Reinartz - @pistenprinz
#3
Provide base for modern & sustainable
UI rebuild
Build modern applications fast
Christoph Reinartz - @pistenprinz
The former Case Study

A Pattern Library and Atomic Design
Christoph Reinartz - @pistenprinz
The old company pages

Built without Design Thinking and Atomic Design
Christoph Reinartz - @pistenprinz
The relaunched site

Built with Design Thinking and Atomic Design
Christoph Reinartz - @pistenprinz
The first Redesigns

Company Pages and Quality Test Intro Page
Christoph Reinartz - @pistenprinz
Where we come from
What happened since 2012
Christoph Reinartz - @pistenprinz
Specificity graph 2012

The specificity wall
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Christoph Reinartz - @pistenprinz
peaks at the beginning
of the stylesheet
Graph before Ironman

Way better, but still…
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Christoph Reinartz - @pistenprinz
Before Ironman
The Pain Points
Christoph Reinartz - @pistenprinz
#1
Sprites were out of control
We built Frankenstein with Icons
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Christoph Reinartz - @pistenprinz
#2
Creepy Render Bugs
No, i don’t render your site
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Christoph Reinartz - @pistenprinz
#3
Too much CSS
How many Selectors do you use? ALL!
Christoph Reinartz - @pistenprinz
#3
Too much CSS
How many Selectors do you use? ALL!
Christoph Reinartz - @pistenprinz
#3
Too much CSS
How many Selectors do you use? ALL!
Christoph Reinartz - @pistenprinz
#4
Desktop first approach
Oh you poor mobile devices
Christoph Reinartz - @pistenprinz
#5
Inconsistency and missing Styleguide
Or how to create fifty shades of grey or anything else
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Christoph Reinartz - @pistenprinz
#6
Overly complex CSS/DOM structure
div, div, div, span, span, span
Christoph Reinartz - @pistenprinz
Ironman - the scope
The three disciplines
Christoph Reinartz - @pistenprinz
New CSS Core Old CSS Core
normalize.css reset.css
border-box content-box
mobile first (min-width) desktop first (max-width)
media queries inline in separate files
embed SVG icon image sprites
ITCSS layering [something]
BEM, OOCSS, Atomic CSS [something]
Post processing (MQPacker etc.) nothing
improved legacy / fallback handling [something]
Christoph Reinartz - @pistenprinz
Normalize.css incl. border-box switch
Replace reset.css and remove content-box for box-sizing
Christoph Reinartz - @pistenprinz
Mobile first switch
Rewrite all media queries
Christoph Reinartz - @pistenprinz
Replace image sprites with SVGs and
Fallback
Icon solution based on Grunticon
Christoph Reinartz - @pistenprinz
Ironman - YOLO?!
Requirement Engineering
https://www.flickr.com/photos/jesper/346483272/
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Christoph Reinartz - @pistenprinz
Ironman - the oath
What we had to promise
Christoph Reinartz - @pistenprinz
Retain the existing Layout & Design
integrate the new CSS framework base which was developed with the Pattern
Library without changing the appearance of the site
Christoph Reinartz - @pistenprinz
Stop at components layer

Fix the things at the root first
Christoph Reinartz - @pistenprinz
Ironman - technical details
What we had to refactor
Christoph Reinartz - @pistenprinz
#1
Refactor > 50k LOC of Scss
Rewrite / adapt the whole Scss Base
Christoph Reinartz - @pistenprinz
#2
Adapt dozens of templates
Markup changes needed for the new architecture
Christoph Reinartz - @pistenprinz
#3
Keep IE8 support
Yeah we still make money with IE8
Christoph Reinartz - @pistenprinz
#4
Remove all the Icons coming from
sprites
Prettify Frankenstein
Christoph Reinartz - @pistenprinz
#5
Extensive Device-Testing
Re-Test the application on all possible device
Christoph Reinartz - @pistenprinz
#6
Do it four weeks
Time is limited
Christoph Reinartz - @pistenprinz
Ironman - the business side
Management <3 refactoring. Not. </3
Christoph Reinartz - @pistenprinz
How to tell management that you need 4
weeks of feature freeze and the User Interface
will look exactly the same afterwards?
Developer goes Marketing
Christoph Reinartz - @pistenprinz
#1
Be a salesman- Sell it! Prove it! Show
benefits!
Argue!
Christoph Reinartz - @pistenprinz
#2
Do it in 3 weeks!
Meet the deadline
Christoph Reinartz - @pistenprinz
#3
Don’t only think technically!
Think like a business person
Christoph Reinartz - @pistenprinz
Ironman - the process
How to integrate such a project
Christoph Reinartz - @pistenprinz
#?
How to integrate such a project into an
existing process?
Don’t harm the existing process
Christoph Reinartz - @pistenprinz
#?
How to handle management
expectation?
How to keep management up to date
Christoph Reinartz - @pistenprinz
#?
How to plan and estimate?
#noEstimates
Christoph Reinartz - @pistenprinz
Ironman - Agility
Possible ways to enforce culture
Christoph Reinartz - @pistenprinz
#1
People over process
The Agile Manifesto told ya
Christoph Reinartz - @pistenprinz
#2
Commitment over estimation*
Interested to know when you are done, or interested to be as fast as
possible?

*) only works if you meet the deadline
Christoph Reinartz - @pistenprinz
#3
Make progress transparent & involve
everybody
Update the stakeholders as often as possible
Christoph Reinartz - @pistenprinz
#4
Motivate people and let them be
awesome
Hire awesome people and get out of their way
Christoph Reinartz - @pistenprinz
Ironman - the numbers
People & processes
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Christoph Reinartz - @pistenprinz
The People
One project team
… and infinite supporters
Christoph Reinartz - @pistenprinz
9 Front-End Devs
3 Designers2 QA
Release
Engineer
Management
Back-End
Devs
Performance
Lead
UBolt
UXBolt
Product
Owner
Christoph Reinartz - @pistenprinz
The (lean) Process
3 Meetings +17 Stand-Ups
… and a Kanban board with 67 Post-Its and a slack-channel is all we needed
Christoph Reinartz - @pistenprinz
Ironman - the numbers
Code and Outcome
Christoph Reinartz - @pistenprinz
889 commits in 3 weeks
16 commits per hour #YOLO
Christoph Reinartz - @pistenprinz
11973 LOC added
That is new / changed code
Christoph Reinartz - @pistenprinz
36668 LOC removed
Delete all the things (CSS,HTML,JS)
Christoph Reinartz - @pistenprinz
LOC from 52991 to 39755
Removed nearly 25% of the Scss Base
Christoph Reinartz - @pistenprinz
Replaced 451 Icons
Infinite Icons replaced with SVG Icons
Christoph Reinartz - @pistenprinz
352 changed files
Infinite Icons replaced with SVG Icons
Christoph Reinartz - @pistenprinz
Showcase 1

Desktop first vs. Mobile first
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Christoph Reinartz - @pistenprinz
Showcase 2

Sprite Wars vs. SVG beauty
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016
Christoph Reinartz - @pistenprinz
Showcase 3

HTTP Requests
Christoph Reinartz - @pistenprinz
Showcase 3

HTTP requests
Christoph Reinartz - @pistenprinz
Showcase 3

HTTP requests
Christoph Reinartz - @pistenprinz
<3
Sorted the colors
Established and introduce a color palette
trv-blue-light
#3f9fc1
trv-red-light
#d67763
trv-green-light
#8cba3f
trv-green-lighter
#b2d17f
trv-green-dark
#4c7b00
trv-juri-light
#697379
trv-juri-lighter
#9ba2a6
trv-juri-lightest
#ebeced
trv-blue-dark
#005f81
trv-blue
#007fad
trv-orange
#f48f00
trv-red
#c94a30
trv-orange-dark
#b76b00
trv-orange-light
#f6ab3f
trv-blue-lightest
#e5f2f6
trv-red-lightest
#f9ecea
trv-orange-lightest
#fdf3e5
trv-red-dark
#963724
trv-green
#66a400
trv-juri
#37454d
trv-juri-dark
#293339
16
12 18
16
12
12
18
12
18
16
*
trv-juri-very-light
#cdd0d2
trv-red-very-light
#f1d1cb
trv-green-very-light
#d8e8bf
trv-orange-very-light
#fce3bf
trv-blue-very-light
#bfdfea
trv-red-lighter
#e4a49b
trv-orange-lighter
#f9c780
trv-blue-lighter
#7fbfd6
trv-green-lightest
#eff5e5
20162015
Christoph Reinartz - @pistenprinz
<3
Solved the icon chaos
Replaced the image sprites with a SVG icon set
description details infobig hotelconnect smiley heart towel star pictures
wifi spa beach breakfast pool pet golf tv family eco parking
bed_single bed_double bed_small couple universal home menu share edit
checkout checkin general rates
faq_circle faq info_circleinfo
arrow_right_circle arrow_left_circle arrow_down_circle arrow_up_circle arrow_right arrow_left arrow_down arrow_up tick exclamation x plus minus
image media bag chair team candy journalist news hoteltest plus_circle minus_circle x_circle filter
dashboard statistics hotel2 hotel travel2 travel booking hotelchain upload delete tick_circle exclamation_circle contact
profile info product history giveback lock calendar search publisher career comment download map
smiley_belowaverage smiley_satisfactory smiley_good smiley_verygood smiley_excellent smiley_belowaverage smiley_satisfactory smiley_good smiley_verygood smiley_excellent
level sort department
poi_citycentre poi_airport poi_sight poi_conference poi_harbor poi_mainstation poi_nature poi_nightlife poi_sports
filterreset join
thin
share2 movie call piechart diagram music multimedia
wifi spa beach breakfast pool pet golf tv family eco parking
bed_single bed_double bed_small couple universal home menu share edit
checkout checkin general rates description details infobig hotelconnect smiley heart towel star pictures
icn_profile icn_info icn_product icn_history icn_giveback icn_lock icn_calendar icn_search icn_publisher icn_career icn_comment icn_download icn_map
icn_dashboard icn_statistics icn_hotel2 icn_hotel icn_travel2 icn_travel icn_booking icn_hotelchain icn_upload icn_delete icn_tick_circle exclamation_circle contact
image media bag chair team candy journalist news hoteltest plus_circle minus_circle x_circle icn_filter
arrow_right_circle arrow_left_circle arrow_down_circle arrow_up_circle arrow_right arrow_left arrow_down arrow_up tick exclamation x plus minus
faq_circle faq info_circle info
smiley_belowaverage smiley_satisfactory smiley_good smiley_verygood smiley_excellentsmiley_belowaverage smiley_satisfactory smiley_good smiley_verygood smiley_excellent
level sort department
poi_citycentre poi_airport poi_sight poi_conference poi_harbor poi_mainstation poi_nature poi_nightlife poi_sports
join
thin
filterreset share2 movie call piechart diagram music multimedia
Christoph Reinartz - @pistenprinz
peaks at the beginning
of the stylesheet
Graph before Ironman

Way better, but still…
Christoph Reinartz - @pistenprinz
New CSS
base
Adapted old UI components.
Can now be easily rebuilt!
SVG
Graph after Ironman

Improved curve…
Christoph Reinartz - @pistenprinz
The metrics

A/B Test results
Christoph Reinartz - @pistenprinz
The final result

Lets celebrate and merge
Christoph Reinartz - @pistenprinz
Let’s go crazy

Christoph Reinartz - @pistenprinz
Retrospective

What we have achieved - High Level Summary
Christoph Reinartz - @pistenprinz
<3
Foundation built to move the UI to the
next level
Sustainable base to continue UI rebuild
Christoph Reinartz - @pistenprinz
<3
Better rendering performance on
mobile
No more poor mobile devices
Christoph Reinartz - @pistenprinz
<3
Shared knowledge and understanding
Affects the developers and the entire design/product team
Christoph Reinartz - @pistenprinz
<3
Optimized design-development
process
Atomic Design FTW
Christoph Reinartz - @pistenprinz
<3
New coding guidelines and improved
structure
ITCSS, BEM, OOCSS, …
Christoph Reinartz - @pistenprinz
Moving faster

The time after
Christoph Reinartz - @pistenprinz
Moved to ITCSS

Prepared base for new UI components
Christoph Reinartz - @pistenprinz
Faster Product Iterations

Old version of the search result
Christoph Reinartz - @pistenprinz
The new item element

New version built with pattern lab upon new base
Christoph Reinartz - @pistenprinz
The next challenges

Auto integrate all the things
Christoph Reinartz - @pistenprinz
Ready for the next steps

Automate the pattern integration
Christoph Reinartz - @pistenprinz
Thanks

I’m done
Christoph Reinartz
Team Lead UI/UX Engineering
@pistenprinz

More Related Content

PDF
Project Ironman - Large Scale Refactoring @trivago (JSUnconf 2016)
PDF
Reactive Thinking in iOS Development - Pedro Piñera Buendía - Codemotion Amst...
PDF
Coding Culture - Sven Peters - Codemotion Milan 2016
PDF
Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterda...
PDF
Un anno di Front End Meetup! Gioie, dolori e festeggiamenti! - Giacomo Zinett...
PDF
We started with RoR, C++, C#, nodeJS and... at the end we chose GO - Maurizio...
PDF
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
PPTX
Impostor syndrome and individual competence - Jessica Rose - Codemotion Amste...
Project Ironman - Large Scale Refactoring @trivago (JSUnconf 2016)
Reactive Thinking in iOS Development - Pedro Piñera Buendía - Codemotion Amst...
Coding Culture - Sven Peters - Codemotion Milan 2016
Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterda...
Un anno di Front End Meetup! Gioie, dolori e festeggiamenti! - Giacomo Zinett...
We started with RoR, C++, C#, nodeJS and... at the end we chose GO - Maurizio...
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
Impostor syndrome and individual competence - Jessica Rose - Codemotion Amste...

Viewers also liked (20)

PDF
UGIdotNET Meetup - Andrea Saltarello - Codemotion Milan 2016
PDF
Living on the Edge (Service): Bundling Microservices to Optimize Consumption ...
PDF
Outthink: machines coping with humans. A journey into the cognitive world - E...
PDF
Build Apps for Apple Watch - Francesco Novelli - Codemotion Milan 2016
PPTX
Can Super Coders be a reality? - Atreyam Sharma - Codemotion Milan 2016
PDF
Bias Driven Development - Mario Fusco - Codemotion Milan 2016
PDF
SASI, Cassandra on the full text search ride - DuyHai Doan - Codemotion Milan...
PDF
Angular Rebooted: Components Everywhere - Carlo Bonamico, Sonia Pini - Codemo...
PDF
Higher order infrastructure: from Docker basics to cluster management - Nicol...
PPTX
Sviluppare applicazioni cross-platform con Xamarin Forms e il framework Prism...
PDF
Il Bot di Codemotion - Emanuele Capparelli - Codemotion Milan 2016
PPTX
Cross-platform Apps using Xamarin and MvvmCross - Martijn van Dijk - Codemoti...
PPTX
Search on the fly: how to lighten your Big Data - Simona Russo, Auro Rolle - ...
PPTX
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
PDF
Continuous Budgeting. Come fare scelte corrette, in un mondo complesso - Fran...
PPTX
Combining AI and IoT. New Industrial Revolution in our houses and in the Univ...
PDF
The (almost) lost art of Smalltalk - Nikolas Martens - Codemotion Milan 2016
PDF
Cyber Analysts: who they are, what they do, where they are - Marco Ramilli - ...
PDF
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016
PPTX
Master the chaos: from raw data to analytics - Andrea Pompili, Riccardo Rossi...
UGIdotNET Meetup - Andrea Saltarello - Codemotion Milan 2016
Living on the Edge (Service): Bundling Microservices to Optimize Consumption ...
Outthink: machines coping with humans. A journey into the cognitive world - E...
Build Apps for Apple Watch - Francesco Novelli - Codemotion Milan 2016
Can Super Coders be a reality? - Atreyam Sharma - Codemotion Milan 2016
Bias Driven Development - Mario Fusco - Codemotion Milan 2016
SASI, Cassandra on the full text search ride - DuyHai Doan - Codemotion Milan...
Angular Rebooted: Components Everywhere - Carlo Bonamico, Sonia Pini - Codemo...
Higher order infrastructure: from Docker basics to cluster management - Nicol...
Sviluppare applicazioni cross-platform con Xamarin Forms e il framework Prism...
Il Bot di Codemotion - Emanuele Capparelli - Codemotion Milan 2016
Cross-platform Apps using Xamarin and MvvmCross - Martijn van Dijk - Codemoti...
Search on the fly: how to lighten your Big Data - Simona Russo, Auro Rolle - ...
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
Continuous Budgeting. Come fare scelte corrette, in un mondo complesso - Fran...
Combining AI and IoT. New Industrial Revolution in our houses and in the Univ...
The (almost) lost art of Smalltalk - Nikolas Martens - Codemotion Milan 2016
Cyber Analysts: who they are, what they do, where they are - Marco Ramilli - ...
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016
Master the chaos: from raw data to analytics - Andrea Pompili, Riccardo Rossi...
Ad

Similar to Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016 (20)

PDF
Project Ironman - Large Scale CSS Refactoring @trivago
PDF
Pure CSS By Yahoo
PDF
Building Better Responsive Websites
PDF
Accelerated Stylesheets
PDF
OOScss Architecture For Rails Apps
PDF
Introduction to CSS3
PPTX
Responsive & Adaptive Web Design
PDF
CSS: a rapidly changing world
PDF
Teams, styles and scalable applications
PPTX
Automated perf optimization - jQuery Conference
PDF
CSS vs. JavaScript - Trust vs. Control
PDF
CSS3: Ripe and Ready to Respond
PDF
responsive awareness
PDF
Everything is Awesome - Cutting the Corners off the Web
PDF
Monkeytalk Fall 2012 - Responsive Web Design
PDF
Adobe MAX 2008: HTML/CSS + Fireworks
PDF
Bootstrap Tutorial
PDF
Effective and Efficient Design with CSS3
PPTX
PDF
CSS3: Simply Responsive
Project Ironman - Large Scale CSS Refactoring @trivago
Pure CSS By Yahoo
Building Better Responsive Websites
Accelerated Stylesheets
OOScss Architecture For Rails Apps
Introduction to CSS3
Responsive & Adaptive Web Design
CSS: a rapidly changing world
Teams, styles and scalable applications
Automated perf optimization - jQuery Conference
CSS vs. JavaScript - Trust vs. Control
CSS3: Ripe and Ready to Respond
responsive awareness
Everything is Awesome - Cutting the Corners off the Web
Monkeytalk Fall 2012 - Responsive Web Design
Adobe MAX 2008: HTML/CSS + Fireworks
Bootstrap Tutorial
Effective and Efficient Design with CSS3
CSS3: Simply Responsive
Ad

More from Codemotion (20)

PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
PDF
Pompili - From hero to_zero: The FatalNoise neverending story
PPTX
Pastore - Commodore 65 - La storia
PPTX
Pennisi - Essere Richard Altwasser
PPTX
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
PPTX
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
PPTX
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
PPTX
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
PDF
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
PDF
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
PDF
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
PDF
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
PDF
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
PPTX
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
PPTX
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
PDF
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
PDF
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
PDF
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Pompili - From hero to_zero: The FatalNoise neverending story
Pastore - Commodore 65 - La storia
Pennisi - Essere Richard Altwasser
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019

Recently uploaded (20)

PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Cloud computing and distributed systems.
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
Machine Learning_overview_presentation.pptx
Review of recent advances in non-invasive hemoglobin estimation
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
The AUB Centre for AI in Media Proposal.docx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Cloud computing and distributed systems.
Unlocking AI with Model Context Protocol (MCP)
MIND Revenue Release Quarter 2 2025 Press Release
Digital-Transformation-Roadmap-for-Companies.pptx
sap open course for s4hana steps from ECC to s4
20250228 LYD VKU AI Blended-Learning.pptx
Electronic commerce courselecture one. Pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Chapter 3 Spatial Domain Image Processing.pdf
cuic standard and advanced reporting.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Network Security Unit 5.pdf for BCA BBA.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
A comparative analysis of optical character recognition models for extracting...
Machine Learning_overview_presentation.pptx

Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterdam 2016