SlideShare a Scribd company logo
linkedin/borislit github.com/borislit@borislitborisl@wix.com
Test Driven Culture
Hi.
I am Boris Litvinsky
Frontend Engineer/Team Lead
WIX Bookings
Lithuania
Ukraine
Vilnius
Kiev
Dnipro
Wix Engineering Locations
Israel
Tel-Aviv
Be’er Sheva
WIX By the Numbers
▪ Founded 2006
▪ Over 103M registered users from 190 countries
▪ Over 2B HTTP Requests/Day
▪ 2 Data Centers + 2 Clouds (Amazon and Google)
▪ Over 1400 Employees
WIX7 By Numbers
▪ Opened in 2015
▪ 40 WIXers
▪ Mostly R&D, some QA, product, UX
▪ 3 Major Products - Made in Beer Sheva
▪ “Fastest Launch in WIX History”
▪ 2 Open Source Projects
WIX R&D By Numbers
1400 WIX Employees - 50% R&D
Development Culture
▪ No ASSHOLES!
▪ Knowledge Sharing
▪ Willingness to Dare
▪ Emphasis of Software Engineering
▪ Developing Developers
TDD is Key
Thank You
linkedin/borislit github.com/borislit@borislitborisl@wix.com
Test Driven Development - The What
▪ Write no production code except to pass a
failing test
▪ Write only enough of a test to demonstrate a
failure
▪ Write only enough production code to pass
the test
The Two Loops of TDD
Write a failing
acceptance test
Write a failing
unit test
Make the test
pass
Refactor
Testing is Caring
Willingness to Dare
Refactoring - Changing structure without changing the
behavior
TDD and Chill
▪ Fearless Development
▪ Fearless Deployment
http://middleclick.co.za/scrum-is-not-agile/
▪ QA are not responsible for quality - EVERYONE IS!
▪ Deployment by everyone
Handing the Nuclear Codes
Self-Education
▪ Validates your design aka “Are you sure?”
RuleEvaluator
+evaluate(string)
-parseAdjunctTerm()
-parseFactorTerm()
-parseAdjunct()
-hasMoreTokens()
-getNextToken()
RuleEvaluator
+evaluate(string)
-parseAdjunctTerm()
-parseFactorTerm()
-parseAdjunct()
RuleTokenizer
+hasMoreTokens()
+getNextToken()
Self-Education
▪ Validates your design aka “Are you sure?”
▪ The “AHA!” moments
TDD on client
JSDOM
TDD on the Server
Wrapping
Up
TDDo It!
Thank You
linkedin/borislit github.com/borislit@borislitborisl@wix.com
Q&A
linkedin/borislit github.com/borislit@borislitborisl@wix.com

More Related Content

Similar to Test Driven Culture

Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps Startups
Daniel Zivkovic
 
Pytec Specialist Areas For Development
Pytec Specialist Areas For DevelopmentPytec Specialist Areas For Development
Pytec Specialist Areas For Development
willcantrell29
 
Intro to DotNetNuke
Intro to DotNetNukeIntro to DotNetNuke
Intro to DotNetNuke
Michael Carnell
 
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco APIs: An Interactive Assistant for the Web2Day Developer ConferenceCisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco DevNet
 
Social dev camp_2011
Social dev camp_2011Social dev camp_2011
Social dev camp_2011
Craig Ulliott
 
NATI preso vfinal
NATI preso vfinalNATI preso vfinal
NATI preso vfinal
ronpiovesan
 
Lightning Intro to Serverless, GCP (2017-10-19)
Lightning Intro to Serverless, GCP (2017-10-19)Lightning Intro to Serverless, GCP (2017-10-19)
Lightning Intro to Serverless, GCP (2017-10-19)
Mattias Andersson
 
From Monoliths to Services: Paying Your Technical Debt
From Monoliths to Services: Paying Your Technical DebtFrom Monoliths to Services: Paying Your Technical Debt
From Monoliths to Services: Paying Your Technical Debt
TechWell
 
Projects portfilio
Projects portfilioProjects portfilio
Projects portfilio
Yar Naumenko
 
Surviving Your Tech Stack
Surviving Your Tech StackSurviving Your Tech Stack
Surviving Your Tech Stack
FITC
 
2016 네이버sw기술소개
2016 네이버sw기술소개2016 네이버sw기술소개
2016 네이버sw기술소개
NAVER Engineering
 
Microservices Workshop - Craft Conference
Microservices Workshop - Craft ConferenceMicroservices Workshop - Craft Conference
Microservices Workshop - Craft Conference
Adrian Cockcroft
 
Blockchain Development & Services
Blockchain Development & Services Blockchain Development & Services
Blockchain Development & Services
DJ Joshi
 
WSO2Con EU 2015: How to Fulfil Business Needs Without Being Impeded by IT Bar...
WSO2Con EU 2015: How to Fulfil Business Needs Without Being Impeded by IT Bar...WSO2Con EU 2015: How to Fulfil Business Needs Without Being Impeded by IT Bar...
WSO2Con EU 2015: How to Fulfil Business Needs Without Being Impeded by IT Bar...
WSO2
 
Getting out of the monolith hell
Getting out of the monolith hellGetting out of the monolith hell
Getting out of the monolith hell
mimmozzo_
 
Company HoD - a smarter way to outsource
Company HoD - a smarter way to outsourceCompany HoD - a smarter way to outsource
Company HoD - a smarter way to outsource
Company HoD
 
2nd WordPress + Amazon Web Services Meetup
2nd WordPress + Amazon Web Services Meetup2nd WordPress + Amazon Web Services Meetup
2nd WordPress + Amazon Web Services Meetup
Kel
 
Kalmia LTD - Company presentation
Kalmia LTD - Company presentationKalmia LTD - Company presentation
Kalmia LTD - Company presentation
klemenpeternel
 
Can Technology Innovation Save The New York Times?
Can Technology Innovation Save The New York Times?Can Technology Innovation Save The New York Times?
Can Technology Innovation Save The New York Times?
C4Media
 
You've Decided to Use HTML5. Now What?
You've Decided to Use HTML5. Now What?You've Decided to Use HTML5. Now What?
You've Decided to Use HTML5. Now What?
Appnovation Technologies
 

Similar to Test Driven Culture (20)

Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps Startups
 
Pytec Specialist Areas For Development
Pytec Specialist Areas For DevelopmentPytec Specialist Areas For Development
Pytec Specialist Areas For Development
 
Intro to DotNetNuke
Intro to DotNetNukeIntro to DotNetNuke
Intro to DotNetNuke
 
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco APIs: An Interactive Assistant for the Web2Day Developer ConferenceCisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
 
Social dev camp_2011
Social dev camp_2011Social dev camp_2011
Social dev camp_2011
 
NATI preso vfinal
NATI preso vfinalNATI preso vfinal
NATI preso vfinal
 
Lightning Intro to Serverless, GCP (2017-10-19)
Lightning Intro to Serverless, GCP (2017-10-19)Lightning Intro to Serverless, GCP (2017-10-19)
Lightning Intro to Serverless, GCP (2017-10-19)
 
From Monoliths to Services: Paying Your Technical Debt
From Monoliths to Services: Paying Your Technical DebtFrom Monoliths to Services: Paying Your Technical Debt
From Monoliths to Services: Paying Your Technical Debt
 
Projects portfilio
Projects portfilioProjects portfilio
Projects portfilio
 
Surviving Your Tech Stack
Surviving Your Tech StackSurviving Your Tech Stack
Surviving Your Tech Stack
 
2016 네이버sw기술소개
2016 네이버sw기술소개2016 네이버sw기술소개
2016 네이버sw기술소개
 
Microservices Workshop - Craft Conference
Microservices Workshop - Craft ConferenceMicroservices Workshop - Craft Conference
Microservices Workshop - Craft Conference
 
Blockchain Development & Services
Blockchain Development & Services Blockchain Development & Services
Blockchain Development & Services
 
WSO2Con EU 2015: How to Fulfil Business Needs Without Being Impeded by IT Bar...
WSO2Con EU 2015: How to Fulfil Business Needs Without Being Impeded by IT Bar...WSO2Con EU 2015: How to Fulfil Business Needs Without Being Impeded by IT Bar...
WSO2Con EU 2015: How to Fulfil Business Needs Without Being Impeded by IT Bar...
 
Getting out of the monolith hell
Getting out of the monolith hellGetting out of the monolith hell
Getting out of the monolith hell
 
Company HoD - a smarter way to outsource
Company HoD - a smarter way to outsourceCompany HoD - a smarter way to outsource
Company HoD - a smarter way to outsource
 
2nd WordPress + Amazon Web Services Meetup
2nd WordPress + Amazon Web Services Meetup2nd WordPress + Amazon Web Services Meetup
2nd WordPress + Amazon Web Services Meetup
 
Kalmia LTD - Company presentation
Kalmia LTD - Company presentationKalmia LTD - Company presentation
Kalmia LTD - Company presentation
 
Can Technology Innovation Save The New York Times?
Can Technology Innovation Save The New York Times?Can Technology Innovation Save The New York Times?
Can Technology Innovation Save The New York Times?
 
You've Decided to Use HTML5. Now What?
You've Decided to Use HTML5. Now What?You've Decided to Use HTML5. Now What?
You've Decided to Use HTML5. Now What?
 

More from Boris Litvinsky

Road to Async Nirvana
Road to Async NirvanaRoad to Async Nirvana
Road to Async Nirvana
Boris Litvinsky
 
ReactiveConf - Not all indecision are bad
ReactiveConf - Not all indecision are badReactiveConf - Not all indecision are bad
ReactiveConf - Not all indecision are bad
Boris Litvinsky
 
Your IDE Deserves Better
Your IDE Deserves BetterYour IDE Deserves Better
Your IDE Deserves Better
Boris Litvinsky
 
The ultimate guide for Software Procrastination
The ultimate guide for Software ProcrastinationThe ultimate guide for Software Procrastination
The ultimate guide for Software Procrastination
Boris Litvinsky
 
CDD @ FED
CDD @ FEDCDD @ FED
CDD @ FED
Boris Litvinsky
 
Name in Vain: Improving design one word at a time
Name in Vain: Improving design one word at a timeName in Vain: Improving design one word at a time
Name in Vain: Improving design one word at a time
Boris Litvinsky
 

More from Boris Litvinsky (6)

Road to Async Nirvana
Road to Async NirvanaRoad to Async Nirvana
Road to Async Nirvana
 
ReactiveConf - Not all indecision are bad
ReactiveConf - Not all indecision are badReactiveConf - Not all indecision are bad
ReactiveConf - Not all indecision are bad
 
Your IDE Deserves Better
Your IDE Deserves BetterYour IDE Deserves Better
Your IDE Deserves Better
 
The ultimate guide for Software Procrastination
The ultimate guide for Software ProcrastinationThe ultimate guide for Software Procrastination
The ultimate guide for Software Procrastination
 
CDD @ FED
CDD @ FEDCDD @ FED
CDD @ FED
 
Name in Vain: Improving design one word at a time
Name in Vain: Improving design one word at a timeName in Vain: Improving design one word at a time
Name in Vain: Improving design one word at a time
 

Recently uploaded

Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 

Recently uploaded (20)

Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 

Test Driven Culture