SlideShare a Scribd company logo
1 of 22
Download to read offline
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 StartupsDaniel Zivkovic
 
Pytec Specialist Areas For Development
Pytec Specialist Areas For DevelopmentPytec Specialist Areas For Development
Pytec Specialist Areas For Developmentwillcantrell29
 
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 ConferenceCisco DevNet
 
Social dev camp_2011
Social dev camp_2011Social dev camp_2011
Social dev camp_2011Craig Ulliott
 
NATI preso vfinal
NATI preso vfinalNATI preso vfinal
NATI preso vfinalronpiovesan
 
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 DebtTechWell
 
Projects portfilio
Projects portfilioProjects portfilio
Projects portfilioYar Naumenko
 
Surviving Your Tech Stack
Surviving Your Tech StackSurviving Your Tech Stack
Surviving Your Tech StackFITC
 
2016 네이버sw기술소개
2016 네이버sw기술소개2016 네이버sw기술소개
2016 네이버sw기술소개NAVER Engineering
 
Microservices Workshop - Craft Conference
Microservices Workshop - Craft ConferenceMicroservices Workshop - Craft Conference
Microservices Workshop - Craft ConferenceAdrian 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 hellmimmozzo_
 
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 outsourceCompany HoD
 
2nd WordPress + Amazon Web Services Meetup
2nd WordPress + Amazon Web Services Meetup2nd WordPress + Amazon Web Services Meetup
2nd WordPress + Amazon Web Services MeetupKel
 
Kalmia LTD - Company presentation
Kalmia LTD - Company presentationKalmia LTD - Company presentation
Kalmia LTD - Company presentationklemenpeternel
 
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
 

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

ReactiveConf - Not all indecision are bad
ReactiveConf - Not all indecision are badReactiveConf - Not all indecision are bad
ReactiveConf - Not all indecision are badBoris Litvinsky
 
Your IDE Deserves Better
Your IDE Deserves BetterYour IDE Deserves Better
Your IDE Deserves BetterBoris Litvinsky
 
The ultimate guide for Software Procrastination
The ultimate guide for Software ProcrastinationThe ultimate guide for Software Procrastination
The ultimate guide for Software ProcrastinationBoris 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 timeBoris 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

CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...Neo4j
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdftimtebeek1
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletAndrea Goulet
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypseTomasz Kowalczewski
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Eraconfluent
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Henry Schreiner
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNeo4j
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfkalichargn70th171
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfICS
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Maxim Salnikov
 
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale IbridaUNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale IbridaNeo4j
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024SimonedeGijt
 
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...drm1699
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Andreas Granig
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfSrushith Repakula
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanNeo4j
 
Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksJinanKordab
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Lisi Hocke
 

Recently uploaded (20)

CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdf
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMs
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale IbridaUNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
 
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
 
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
 
Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with Links
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 

Test Driven Culture