SlideShare a Scribd company logo
1 of 161
Download to read offline
7 Years of Domain-Driven Design:
Tackling Complexity in Marketing Systems
Vladik Khononov
AMSTERDAM | MAY 8-9, 2018
Vladik Khononov
IAF Malam Team MSN-IL Cellcom Internovus
Twitter: @vladikk



Blog: vladikk.com
Vladik Khononov
IAF Malam Team MSN-IL Cellcom Internovus
Twitter: @vladikk



Blog: vladikk.com
AGENDA
PART 1

5 BOUNDED
CONTEXTS
PART 1

5 BOUNDED
CONTEXTS
PART 2
PRACTICAL
ADVICE
YAY!!!
Your Product
Your Product Marketing

Strategy
Your Product Marketing

Strategy
Creatives
Your Product Marketing

Strategy
Creatives Campaigns
Your Product Marketing

Strategy
Creatives Campaigns Sales

Agents
Your Product Marketing

Strategy
Creatives Campaigns Sales

Agents
Optimization
Your Product Marketing

Strategy
Creatives Campaigns Sales

Agents
OptimizationProfits
THE FIRST
BOUNDED CONTEXT
01
VER 1.0
Media Buying
VER 1.0
Media Buying
Creatives Catalog
VER 1.0
Media Buying
Creatives Catalog
Campaign Management
🤔
Very nice!
Aggregates everywhere!!!
Aggregates everywhere!!!
Creative
Agency
Advertiser
Publisher
Website
Placement
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Campaign
The Bounded Context
Creative
Agency
Advertiser
Publisher
Website
Placement
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Audience
Domain Model
Service / Application Layer
Presentation
Infrastructure
Anemic!
Domain Model
Service / Application Layer
Presentation
Infrastructure
Anemic!
Behaviour
Imperfect architecture
“QA is for cowards”
BUT IT WORKED!
UBIQUITOUS LANGUAGE
Domain ExpertSoftware Developer
Has no experience in online marketing
Nice people!
Smooth communication
Strong grasp of the business domain
Working software
Aggressive time to market
UbiquitousLanguage Anemic Domain Model
Leads Sales AgentsAds
Leads CRM
Leads CRM Categorize
Leads CRM Categorize Desk
Desk
Desk
Sales Agents
Sales Agents
Sales Agents
Leads CRM Categorize Desk
Desk
Desk
Sales Agents
Sales Agents
Sales Agents
Clients’ Systems
Lead qualification
Agent qualification
Agents’ commissions
THE CRM
BOUNDED CONTEXT
02
UbiquitousLanguage Anemic Domain Model
Creative
Agency
Publisher
Website
Advertiser
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Audience
Group
Desk
Qualification
Assessment
Organization Unit
Assignment
Rank
Message
On-site Activity
Placement Visit Brand
Marketing Lead
CRM Lead
Marketing CRM Campaign
Domain ExpertSoftware Developer
…. Lead ….
…. Campaign…
BOUNDED CONTEXTS
PROTECT THE LANGUAGE
AGGREGATES PROTECT
CONSISTENCY OF DATA
Creative
Agency
Publisher
Website
Advertiser
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Audience
Group
Desk
Qualification
Assessment
Organization Unit
Assignment
Rank
Message
On-site Activity
Placement Visit Brand
Marketing Lead
CRM Lead
Marketing CRM Campaign
Creative
Agency
Publisher
Website
Advertiser
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Audience
Placement Visit
Lead
Campaign
Marketing
Group
Desk
Qualification
Assessment
Organization Unit
Assignment
Rank
Message
On-site Activity
Brand
Lead
Campaign
CRM
Aggregates will:

• Protect transactional boundaries

• Encompass business logic and invariants
Domain
Service / Application Layer
Presentation
Infrastructure
Aggregates will:

• Protect transactional boundaries

• Encompass business logic and invariants
Domain
Service / Application Layer
Presentation
Infrastructure
Domain
Service / Application Layer
Stored
procedures???
Group
Desk
Qualification
Assessment
Organization Unit
Assignment
Rank
Message
On-site Activity
Brand
Lead
Campaign
Lead
L e a d
CRM Team DBA Team
Inconsistent models
No shared understanding
Duplication of knowledge
Went out of sync quickly
NIGHTMARE
Wasn’t delivered on time
Production issues
Data corruption
Thrown away and reimplemented
Wasn’t delivered on time
Production issues
Data corruption
Thrown away and reimplemented
Wasn’t delivered on time
Production issues
Data corruption
Thrown away and reimplemented
Wasn’t delivered on time
Production issues
Data corruption
Thrown away and reimplemented
UbiquitousLanguage
Domain Model
BoundedContexts
Protect w/ Implement as
UbiquitousLanguage
Domain Model
BoundedContexts
Protect w/ Implement as
…Dude, where are Sub-Domains?
Not all of a large system will be well designed
“Eric Evans
THE CRUNCHERS
BOUNDED CONTEXT
03
Marketing CRM Analysis
Customer
Events
Marketing CRM
Marketing
CRM
Analysis
Customer
Events
Event
Crunchers
Competitive advantage? - No
Off-the-shelve solution? - No
=> Supporting sub-domain
Layered Architecture
Transaction Script
Worked
…. for a while
Customer
Events
Event
Crunchers
Marketing
CRM
Analysis
Flag Flag
Calculated fields
Marketing
CRM
Analysis
Customer
Events
Event
Crunchers
Customer
Events
Event Crunchers
(BBOM)
CRM
Marketing
Analysis
Customer
Events
Event
Crunchers
(Event Sourced)
CRM
Marketing
Analysis
THE BONUSES
BOUNDED CONTEXT
04
Sales Commissions Reports
Competitive advantage? - No
Off-the-shelve solution? - No
=> Supporting sub-domain
Active Record
Service / Application Layer
Presentation
Infrastructure
Sales Commissions Reports
Let’s try different percentages
What if the percentage could be a function
of a price?
No, what if the percentage is a function of
number of sales?
No, no, the percentage will be a function
both of number of sales and sale amount
And another upgrade if there are more
than Y sales per week!
But we will upgrade the percentage if
there are more than X sales per month!
Active Record
Service / Application Layer
Presentation
Infrastructure
BIG BALL OF MUD
Event Sourced Domain Model
Service / Application Layer
Presentation
Infrastructure
BIG BALL OF MUD
Active Record
Service / Application Layer
Presentation
Infrastructure
Transaction Script
Service / Application Layer
Presentation
Infrastructure
Event Crunchers Bonuses
Active Record
Service / Application Layer
Presentation
Infrastructure
Transaction Script
Service / Application Layer
Presentation
Infrastructure
Event Crunchers Bonuses
UbiquitousLanguage
Event Sourced Domain Model
Service / Application Layer
Presentation
Infrastructure
Event Sourced Domain Model
Service / Application Layer
Presentation
Infrastructure
Event Crunchers Bonuses
UbiquitousLanguage
UbiquitousLanguage
Core
BoundedContexts
Protect by

decomposing to
Identify
Domains
Domain Model
Supporting
Generic
AR / TS
Adopt
Implement as
THE MARKETING HUB
BOUNDED CONTEXT
05
Leads Marketing Hub
Client
Client
Client
Competitive advantage? - Yes
=> Core Domain
Event Sourced Domain Model
CQRS
Microservices
Micro

Service
Micro

Service
Micro

Service
Micro

Service
Aggregate
Aggregate
Aggregate
Aggregate
Aggregate
Aggregate
Aggregate
Aggregate
Event
Sourced

Aggregate
Aggregate
Aggregate
Aggregate
Aggregate
Event
Sourced

Aggregate
Event Sourced Domain Model
CQRS
Microservices
Aggregate
Aggregate
Aggregate
Aggregate
Event
Sourced

Aggregate
TECHNICAL
COMPLEXITY
BUSINESS
COMPLEXITY>
Aggregate
Aggregate
Aggregate
Aggregate
Event
Sourced

Aggregate
Marketing
Bonuses
U D
CRM
U
D
Marketing

Hub
U U
D
D
Event
Crunchers
U
D
U D
WHAT

WE HAVE
L E A R N E D
UBIQUITOUS
LANGUAGE
01
Ubiquitous Language:
The Core Domain of Domain-Driven Design
UBIQUITOUS
LANGUAGE
DOCUMENTS
TESTS
JIRA
>
Marketing
Ubiquitous Language
Business goals achieved
Marketing
Ubiquitous Language
Business goals achieved
CRM
Ubiquitous Language
Production issues
Long and painful refactoring
Marketing
Ubiquitous Language
Business goals achieved
CRM
Ubiquitous Language
Production issues
Long and painful refactoring
Event Crunchers
Ubiquitous Language
Big ball of mud
Marketing
Ubiquitous Language
Business goals achieved
CRM
Ubiquitous Language
Production issues
Long and painful refactoring
Event Crunchers
Ubiquitous Language
Big ball of mud
Bonuses
Ubiquitous Language
Refactored in time
Invest in the Ubiquitous Language early on.
Marketing
Ubiquitous Language
Business goals achieved
CRM
Ubiquitous Language
Production issues
Long and painful refactoring
Event Crunchers
Ubiquitous Language
Big ball of mud
Bonuses
Ubiquitous Language
Refactored in time
Cheap!
DOMAIN
TYPES
02
Core
Supporting
Generic
Generic Domain Adopt / Buy
Supporting Domain Active Record / Transaction Script
Core Domain Domain Model / Event Sourcing
COMPANIES CHANGE, EVOLVE, REINVENT THEMSELVES
DOMAINS' TYPES CAN CHANGE ACCORDINGLY
SUPPORTING ➤ CORE
• Event Crunchers
• Bonuses
SUPPORTING ➤ CORE
• Event Crunchers
• Bonuses
SUPPORTING ➤ GENERIC
• Creative Catalog
SUPPORTING ➤ CORE
• Event Crunchers
• Bonuses
SUPPORTING ➤ GENERIC
• Creative Catalog
CORE ➤ GENERIC
• Lead Evaluation System
SUPPORTING ➤ CORE
• Event Crunchers
• Bonuses
SUPPORTING ➤ GENERIC
• Creative Catalog
CORE ➤ GENERIC
• Lead Evaluation System
CORE ➤ SUPPORTING
• Marketing Hub
SUPPORTING ➤ CORE
• Event Crunchers
• Bonuses
SUPPORTING ➤ GENERIC
• Creative Catalog
CORE ➤ GENERIC
• Lead Evaluation System
CORE ➤ SUPPORTING
• Marketing Hub
GENERIC ➤ CORE
• AWS
Generic Domain Adopt / Buy
Supporting Domain Active Record / Transaction Script
Core Domain Domain Model / Event Sourcing
Generic DomainAdopt / Buy
Supporting DomainActive Record / Transaction Script
Core DomainDomain Model / Event Sourcing
Less waste
Dialog with the business
IMPLEMENTATION DESIGN ➤ DOMAIN TYPE
• Questionable competitive edge?
BUSINESS COMPLEXITY ≠ DOMAIN TYPE?
• Questionable competitive edge?
• Accidental “business” complexity?
BUSINESS COMPLEXITY ≠ DOMAIN TYPE?
• Questionable competitive edge?
• Accidental “business” complexity?
• Unexpected competitive edge?
BUSINESS COMPLEXITY ≠ DOMAIN TYPE?
Generic DomainAdopt / Buy
Supporting DomainActive Record / Transaction Script
Core DomainDomain Model / Event Sourcing
IMPLEMENTATION DESIGN ➤ DOMAIN TYPE
IMPLEMENTATION
STRATEGIES
03
How to Model the Business Logic?
Transaction Script
Active Record
Domain Model
Event Sourced Domain Model
MONEY? DEEP ANALYTICS? AUDIT LOG?
Event Sourced Domain Model
MONEY? DEEP ANALYTICS? AUDIT LOG?
Event Sourced Domain Model
COMPLEX BUSINESS LOGIC?
Domain Model
MONEY? DEEP ANALYTICS? AUDIT LOG?
Event Sourced Domain Model
COMPLEX BUSINESS LOGIC?
Domain Model
COMPLEX DATA STRUCTURES?
Active Record
MONEY? DEEP ANALYTICS? AUDIT LOG?
Event Sourced Domain Model
COMPLEX BUSINESS LOGIC?
Domain Model
COMPLEX DATA STRUCTURES?
Active Record
SIMPLE LOGIC, SIMPLE DATA STRUCTURES?
Transaction Script
Transaction Script
Active Record
Domain Model
Event Sourced Domain Model
MAPPING ARCHITECTURAL PATTERNS
Event Sourced Domain Model ➤ CQRS
Domain Model ➤ Hexagonal Architecture
Active Record ➤ Layered Architecture
Transaction Script ➤ “Keep it simple” Architecture
Transaction Script
Active Record
Domain Model
Event Sourced Domain Model
PAIN?
BUSINESS CHANGED?
DOMAIN TYPE CHANGED?
REVISE IMPLEMENTATION STRATEGY?
➤
Transaction Script
Active Record
Domain Model
Event Sourced Domain Model
04
BOUNDED
CONTEXTS
Creative
Agency
Publisher
Website
Advertiser
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Audience
Placement Visit
Lead
Campaign
Marketing
Group
Desk
Qualification
Assessment
Organization Unit
Assignment
Rank
Message
On-site Activity
Brand
Lead
Campaign
CRM
LINGUISTIC BOUNDARIES
Bonuses
Event
Crunchers
DOMAIN-BASED BOUNDARIES
AGGREGATE-BASED BOUNDARIES
Aggregate
Aggregate
Aggregate
Aggregate
L e a d
SUICIDAL BOUNDARIES
Finding service boundaries is really damn
hard… There is no flowchart!
“Udi Dahan
THERE ARE GOING TO BE MISTAKES
ACCEPT IT, AND DON’T MAKE FATAL ONES
START WITH BIGGER BOUNDARIES
DECOMPOSE LATER, AS YOU GAIN KNOWLEDGE
THE LESS YOU KNOW ABOUT THE DOMAIN -
THE WIDER THE INITIAL BOUNDARIES ARE
Aggregate
Aggregate
Aggregate
Aggregate
Event
Sourced

Aggregate
Marketing
Creative
Agency
Publisher
Website
Advertiser
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Audience
Placement Visit
Lead
Campaign
Campaigns
Creative
Ad Type
Agency
Publisher
Website
Zone Type
ContractBudget Unit
Impression
Visit
Lead
Advertiser
Target MarketFunnel
Audience
Placement
Campaign
Creative Catalog
Publishers
Events
START WITH BIGGER BOUNDARIES
DECOMPOSE AS YOU GAIN DOMAIN KNOWLEDGE
05
SUMMARY
1. Ubiquitous Language is not optional
2. Domain Types change. Embrace these changes
3. Learn the ins and outs of the four patterns of modeling business logic
4. Start with bigger boundaries, and divide as you gain domain knowledge
UbiquitousLanguage
BoundedContexts
Protect by

decomposing to
Design

Implementation
Core
Supporting
Generic
Domain Model
AR / TS
Adopt
Confirm w/

Business
UbiquitousLanguage
BoundedContexts
Protect by

decomposing to
Design

Implementation
Core
Supporting
Generic
Domain Model
AR / TS
Adopt
Confirm w/

Business
UbiquitousLanguage
BoundedContexts
Protect by

decomposing to
Design

Implementation
Core
Supporting
Generic
Domain Model
AR / TS
Adopt
Confirm w/

Business
UbiquitousLanguage
BoundedContexts
Protect by

decomposing to
Design

Implementation
Core
Supporting
Generic
Domain Model
AR / TS
Adopt
Confirm w/

Business
UbiquitousLanguage
BoundedContexts
Protect by

decomposing to
Design

Implementation
Core
Supporting
Generic
Domain Model
AR / TS
Adopt
Confirm w/

Business
Creative
Agency
Advertiser
Publisher
Website
Placement
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Campaign
Aggregates everywhere!!!
UbiquitousLanguage
BoundedContexts
Protect by

decomposing to
Design

Implementation
Core
Supporting
Generic
Domain Model
AR / TS
Adopt
Confirm w/

Business
Ubiquitous Language Everywhere!!!
THANK YOU!
@vladikk vladikk.com

More Related Content

Similar to 7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik Khononov - Codemotion Amsterdam 2018

AWS partner tech SV GTM
AWS partner tech SV GTMAWS partner tech SV GTM
AWS partner tech SV GTMStormV
 
3 Tactics for UA Success in 2017 and 2018
3 Tactics for UA Success in 2017 and 20183 Tactics for UA Success in 2017 and 2018
3 Tactics for UA Success in 2017 and 2018Eric Seufert
 
Adobe Business.pptx
Adobe Business.pptxAdobe Business.pptx
Adobe Business.pptxAnkush Kapil
 
Balancing Community, Conversation & Conversion
Balancing Community, Conversation & ConversionBalancing Community, Conversation & Conversion
Balancing Community, Conversation & ConversionG3 Communications
 
Direction, Mumbai corporate presentation 2016
Direction, Mumbai corporate presentation 2016Direction, Mumbai corporate presentation 2016
Direction, Mumbai corporate presentation 2016Pritam Bala
 
How Can I Reach Custom Audience Segments on Amazon?
How Can I Reach Custom Audience Segments on Amazon?How Can I Reach Custom Audience Segments on Amazon?
How Can I Reach Custom Audience Segments on Amazon?Tinuiti
 
How airlines should never miss another revenue opportunity
How airlines should never miss another revenue opportunityHow airlines should never miss another revenue opportunity
How airlines should never miss another revenue opportunitytnooz
 
Subscribed 2017: Achieve ‘Super-Grower’ Status With Strategic Pricing & Packa...
Subscribed 2017: Achieve ‘Super-Grower’ Status With Strategic Pricing & Packa...Subscribed 2017: Achieve ‘Super-Grower’ Status With Strategic Pricing & Packa...
Subscribed 2017: Achieve ‘Super-Grower’ Status With Strategic Pricing & Packa...Zuora, Inc.
 
Product development
Product developmentProduct development
Product developmentAllan Tan
 
How a B2B SaaS platform is transforming itself into a media company - BDI 1/3...
How a B2B SaaS platform is transforming itself into a media company - BDI 1/3...How a B2B SaaS platform is transforming itself into a media company - BDI 1/3...
How a B2B SaaS platform is transforming itself into a media company - BDI 1/3...Business Development Institute
 
unit iv Building on e commerce enterprise
 unit iv Building on e commerce enterprise unit iv Building on e commerce enterprise
unit iv Building on e commerce enterpriseArnav Chowdhury
 
Vertical in 60 days
Vertical in 60 daysVertical in 60 days
Vertical in 60 daysmarc714376
 
Ungagged Vegas November 2015 Presentation - Scaling Up
Ungagged Vegas November 2015 Presentation - Scaling UpUngagged Vegas November 2015 Presentation - Scaling Up
Ungagged Vegas November 2015 Presentation - Scaling UpRoland Frasier
 
SaaStock 2019 - arun mani
SaaStock 2019 - arun maniSaaStock 2019 - arun mani
SaaStock 2019 - arun maniSaaStock
 
Spend your cash on customer experience, not servers - No Code Conf 2019
Spend your cash on customer experience, not servers - No Code Conf 2019Spend your cash on customer experience, not servers - No Code Conf 2019
Spend your cash on customer experience, not servers - No Code Conf 2019Webflow
 
Developing Microsoft Dynamics ISV Solutions That Address Customer Challenges
Developing Microsoft Dynamics ISV Solutions That Address Customer ChallengesDeveloping Microsoft Dynamics ISV Solutions That Address Customer Challenges
Developing Microsoft Dynamics ISV Solutions That Address Customer ChallengesCatherine Eibner
 
Unlocking Agile's Missed Potential
Unlocking Agile's Missed PotentialUnlocking Agile's Missed Potential
Unlocking Agile's Missed PotentialAggregage
 
The story of http://designsparkmarketplace.com
The story of http://designsparkmarketplace.comThe story of http://designsparkmarketplace.com
The story of http://designsparkmarketplace.comHolly Cummins
 
SDL Media Manager Use Cases
SDL Media Manager Use CasesSDL Media Manager Use Cases
SDL Media Manager Use Caseswmaagdenberg
 

Similar to 7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik Khononov - Codemotion Amsterdam 2018 (20)

AWS partner tech SV GTM
AWS partner tech SV GTMAWS partner tech SV GTM
AWS partner tech SV GTM
 
3 Tactics for UA Success in 2017 and 2018
3 Tactics for UA Success in 2017 and 20183 Tactics for UA Success in 2017 and 2018
3 Tactics for UA Success in 2017 and 2018
 
Adobe Business.pptx
Adobe Business.pptxAdobe Business.pptx
Adobe Business.pptx
 
Balancing Community, Conversation & Conversion
Balancing Community, Conversation & ConversionBalancing Community, Conversation & Conversion
Balancing Community, Conversation & Conversion
 
Direction, Mumbai corporate presentation 2016
Direction, Mumbai corporate presentation 2016Direction, Mumbai corporate presentation 2016
Direction, Mumbai corporate presentation 2016
 
How Can I Reach Custom Audience Segments on Amazon?
How Can I Reach Custom Audience Segments on Amazon?How Can I Reach Custom Audience Segments on Amazon?
How Can I Reach Custom Audience Segments on Amazon?
 
How airlines should never miss another revenue opportunity
How airlines should never miss another revenue opportunityHow airlines should never miss another revenue opportunity
How airlines should never miss another revenue opportunity
 
Horse Latitudes
Horse LatitudesHorse Latitudes
Horse Latitudes
 
Subscribed 2017: Achieve ‘Super-Grower’ Status With Strategic Pricing & Packa...
Subscribed 2017: Achieve ‘Super-Grower’ Status With Strategic Pricing & Packa...Subscribed 2017: Achieve ‘Super-Grower’ Status With Strategic Pricing & Packa...
Subscribed 2017: Achieve ‘Super-Grower’ Status With Strategic Pricing & Packa...
 
Product development
Product developmentProduct development
Product development
 
How a B2B SaaS platform is transforming itself into a media company - BDI 1/3...
How a B2B SaaS platform is transforming itself into a media company - BDI 1/3...How a B2B SaaS platform is transforming itself into a media company - BDI 1/3...
How a B2B SaaS platform is transforming itself into a media company - BDI 1/3...
 
unit iv Building on e commerce enterprise
 unit iv Building on e commerce enterprise unit iv Building on e commerce enterprise
unit iv Building on e commerce enterprise
 
Vertical in 60 days
Vertical in 60 daysVertical in 60 days
Vertical in 60 days
 
Ungagged Vegas November 2015 Presentation - Scaling Up
Ungagged Vegas November 2015 Presentation - Scaling UpUngagged Vegas November 2015 Presentation - Scaling Up
Ungagged Vegas November 2015 Presentation - Scaling Up
 
SaaStock 2019 - arun mani
SaaStock 2019 - arun maniSaaStock 2019 - arun mani
SaaStock 2019 - arun mani
 
Spend your cash on customer experience, not servers - No Code Conf 2019
Spend your cash on customer experience, not servers - No Code Conf 2019Spend your cash on customer experience, not servers - No Code Conf 2019
Spend your cash on customer experience, not servers - No Code Conf 2019
 
Developing Microsoft Dynamics ISV Solutions That Address Customer Challenges
Developing Microsoft Dynamics ISV Solutions That Address Customer ChallengesDeveloping Microsoft Dynamics ISV Solutions That Address Customer Challenges
Developing Microsoft Dynamics ISV Solutions That Address Customer Challenges
 
Unlocking Agile's Missed Potential
Unlocking Agile's Missed PotentialUnlocking Agile's Missed Potential
Unlocking Agile's Missed Potential
 
The story of http://designsparkmarketplace.com
The story of http://designsparkmarketplace.comThe story of http://designsparkmarketplace.com
The story of http://designsparkmarketplace.com
 
SDL Media Manager Use Cases
SDL Media Manager Use CasesSDL Media Manager Use Cases
SDL Media Manager Use Cases
 

More from Codemotion

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

More from Codemotion (20)

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

Recently uploaded

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik Khononov - Codemotion Amsterdam 2018