Run	Fast,	
Try	Not	to	Break	S**t	
	Michael Schmidt August 2018
Michael Schmidt
Frontent	Architect	
michael@fiverr.com
Develop the Frontend architecture,
push new standards & technologies
What I Do @ Fiverr
Lead the charge towards a more
modular, scaleable, forward-facing codebase
What I Do @ Fiverr
Work with Design to ensure UI/UX
consistency across the site
What I Do @ Fiverr
Help grow the Fiverr FE team one kick-ass
developer at a time
What I Do @ Fiverr
Who Am I?
DK > US > Fiverr CHI
Who Am I?
Wood working Comic books Swearing
The	Early	Days
V1 V2
2012
v2
jQuery Lodash ModernizrHandlebars
v2+
jQuery Lodash ModernizrHandlebars
Angular React GulpGrunt
Mocha
Chai
The	Now(ish)
Frontend developers
love shiny things
What Annoys Me
V1 V2
2017
V4
v4
Vue Angular React
v4
Vue Angular React
v4
Vue Angular React
React
100% React
100% Angular
100% Library X
What Annoys Me
What Annoys Me
F**k That Noise
What Annoys Me
100% the best tool
for the job*
What Annoys Me
* caveats apply
React Redux Node
React Redux Node
jQuery Lodash HandlebarsVanilla JS
Perseus Medusa NPM Packages
Perseus
• express service for rendering vertical views, built in React
• consumes NPM packages and/or static html
• does its own webpack builds, data formatting, etc
• is basically the V in a micro-services-oriented architecture
Browser
RoR	App
Perseus
Phoenix
NPM	
Package
NPM	
Package
NPM	
Package
Code
Perseus	response	
1.staBc	HTML	
2.list	of	assets	
3.iniBal	data
Request	context	
1.query	params	
2.A/B	test	data	
3.authenBcaBons
Medusa
• express service for rendering NPM packages, built in React
• no webpack bundling, no data handling
• serves as a migration bridge for our current RoR app
NPM Packages
• isomorphic React components, with very limited context-
awareness
• uses Storybook for local testing & presentation
• uses common configs & templates for ease of development
Package	
Core
NPM	
Package
Yeoman	
Generator
Fiverr	Templates
• Dependencies	
• Configs	
• Copied	configs	
• Build	scripts
Package	
Core
NPM	
Package• Dependencies	
• Configs	
• Copied	configs	
• Build	scripts
The	Future
Browser
RoR	App
Perseus
Phoenix
NPM	
Package
NPM	
Package
NPM	
Package
Code
Perseus	response	
1.staBc	HTML	
2.list	of	assets	
3.iniBal	data
Request	context	
1.query	params	
2.A/B	test	data	
3.authenBcaBons
Automated Testing
Q: How many Fiverr QA engineers does
it take to screw in a lightbulb?
Automated Testing
A: Zero, because we don’t have any
Fiverr QA engineers.
Automated Testing
The myth about the
100% test coverage
Performance
Performance
• common chunking / webpack bundles
• webp image conversion
• smarter webfont rendering with font-display
• better performance monitoring & metrics
React 16 Migration
Vendors.js
vendors-5rr
vendors-helpers
vendors-lodash
vendors-redux
vendors-react vendors-react16
react	15	
react-dom	15
react	16	
react-dom	16
Fiverr	&	FE	&	Tech
Meet the FE Team
Get S**t Done
Run Fast,
Try Not to Break S**t
We’re Hiring!
fiverr.com/jobs
Don’t be happy with
what you have
but … don’t be blinded by
the shininess
Thank	You

Run Fast, Try Not to Break S**t