This talk is about our journey during an acquisition of startup, e.g:
Merging architecture
Merging cultures and people
It took a few takes to get it right!
Reports, reports, reports! People always want more reports. This session will show you how you can create amazing reports in OutSystems from Simple Report (free) to External Tools (integrating with paid tools).Covering since HTML2PDF&ReportSystems, SimpleReports and StimulSoftJS.
We like the architecture of our applications to revolve around the business logic, not around technical details (and especially not around the database).
In my team at Sky Network Services we use the Clean Architecture and it has given us a great deal of benefits: the business logic is explicit, we are free to change our technical decisions, the app is easy to test, working on it is faster and scalable, it’s hard to do the wrong thing, and many more.
But it comes at a cost, of course. In this talk I’ll tell you the story of our experience with Clean Architecture and give you some tips to get the most out of it.
Example Project
https://github.com/mattia-battiston/clean-architecture-example
Downloads
Online: https://goo.gl/DTxftJ
PDF: https://goo.gl/ZAtdBN
Powerpoint: https://goo.gl/D54wdZ (but you need to install these fonts to see it properly: https://goo.gl/iH8SO5)
Introducing Domain Driven Design - codemashSteven Smith
DDD provides a set of patterns and practices for tackling complex business problems with software models. Learn the basics of DDD in this session, including several principles and patterns you can start using immediately even if your project hasn't otherwise embraced DDD. Examples will primarily use C#/.NET.
Reports, reports, reports! People always want more reports. This session will show you how you can create amazing reports in OutSystems from Simple Report (free) to External Tools (integrating with paid tools).Covering since HTML2PDF&ReportSystems, SimpleReports and StimulSoftJS.
We like the architecture of our applications to revolve around the business logic, not around technical details (and especially not around the database).
In my team at Sky Network Services we use the Clean Architecture and it has given us a great deal of benefits: the business logic is explicit, we are free to change our technical decisions, the app is easy to test, working on it is faster and scalable, it’s hard to do the wrong thing, and many more.
But it comes at a cost, of course. In this talk I’ll tell you the story of our experience with Clean Architecture and give you some tips to get the most out of it.
Example Project
https://github.com/mattia-battiston/clean-architecture-example
Downloads
Online: https://goo.gl/DTxftJ
PDF: https://goo.gl/ZAtdBN
Powerpoint: https://goo.gl/D54wdZ (but you need to install these fonts to see it properly: https://goo.gl/iH8SO5)
Introducing Domain Driven Design - codemashSteven Smith
DDD provides a set of patterns and practices for tackling complex business problems with software models. Learn the basics of DDD in this session, including several principles and patterns you can start using immediately even if your project hasn't otherwise embraced DDD. Examples will primarily use C#/.NET.
When setting up a new project we have some tips and tricks to help you do this in the best way possible, incl. infrastructure, database, standard attributes, logging, code alignment, and service center.
Over the last year there has been a lot of buzz about Clean Architecture in the Android community, but what is Clean Architecture? How does it work? And should I be using it? Recently at Badoo we decided to rewrite our messenger component.
Over the years this core piece of functionality in our app has become large and unwieldy. We wanted to take a fresh approach to try and prevent this from happening again. We choose to use Clean Architecture to achieve our goal. This talk intends to share our journey from theory to implementation in an application with over 100 million downloads. By the end, you should not only understand what Clean Architecture is, but how to implement it, and whether you should.
Are you using the best architecture? Want to know how to make sure you are architecting things properly? Interested to learn where the new library features fit in? Come to this session to learn more.
Presentation slides from sessions discussing Event Source data storage and read-model projections.
Source code from demos at: https://bitbucket.org/csharpfritz/nerddinner-cqrs
In this session, we will learn about Teamcity CI Server. We will look at the different options available and how we can set a CI pipeline using Teamcity.
Using Processes and Timers for Long-Running Asynchronous TasksOutSystems
Running Asynchronous Tasks can be useful in the right situations, and sometimes the environment you’re working in requires it. Understanding how Processes and Timers are used in OutSystems can be extremely useful, particularly for long-running tasks. Come and get a first-hand look at creating and running Asynchronous Tasks and they could improve your apps’ performance.
Infrastructure as Code, tools, benefits, paradigms and more.
Presentation from DigitalOnUs DevOps: Infrastructure as Code Meetup (September 20, 2018 - Monterrey Nuevo Leon MX)
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...OutSystems
Having built-in CI/CD capabilities has always been a core tenet of the OutSystems platform. As customer factories have grown and CI/CD pipelines have become more complex, OutSystems has developed an integration with some of the leading CI/CD DevOps tools in the market, Jenkins, and Azure DevOps to tackle some of the challenges of managing enterprise-grade CI/CD pipelines.
This presentation about Jenkins pipeline will help you understand what is Jenkins & how Jenkins performs continuous integration, why do we need pipeline & how Jenkins pipeline works. You will learn how to create build and delivery pipelines & automate tasks, understand what is scripted and declarative pipeline with the help of Groovy scripts. Jenkins is an open-source continuous integration tool that is used to automate software development phases such as building, testing and deploying. Jenkins pipeline is a suite of plugins that support integration and implementation of jobs using continuous build and delivery pipelines. Now let's get started and understand how Jenkins pipeline works.
Below topics are explained in this Jenkins pipeline presentation:
1) What is Jenkins?
2) What is Continuous Integration?
3) Why Pipeline?
4) How does Jenkins pipeline work?
5) Build and delivery pipeline
6) Scripted and declarative pipeline
7) Demo on Jenkins pipeline
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet and Nagios in a practical, hands-on and interactive approach. The DevOps training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands-on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this Devops training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
Zero downtime deployment of micro-services with KubernetesWojciech Barczyński
Talk on deployment strategies with Kubernetes covering kubernetes configuration files and the actual implementation of your service in Golang and .net core.
You will find demos for recreate, rolling updates, blue-green, and canary deployments.
Source and demos, you will find on github: https://github.com/wojciech12/talk_zero_downtime_deployment_with_kubernetes
Using DDD for mapping a company’s core domain is quite known and one can find many case studies on that, but case studies for merging or re-dividing domains upon acquisition are harder to find.
As an R&D director at Taboola I had the opportunity of leading a technical due-diligence of an acquired company. During that time we considered a few alternatives of how such an acquisition might look like from two main perspectives: organization structure and technical integration whereas the two obviously affect each other per Conway’s Law.
In addition, post acquisition previous assumptions turned out to be inaccurate and required further domain analysis, for finding a better solution.
During those challenging times, I found DDD to be a very practical tool for executing the relevant change.
If you are in a dynamic company where teams, products and domains grow fast and then split or merge, you need to constantly analyze the domains and consider alternatives for those changes. From my experience, DDD approach helps visualizing and considering these alternatives while being able to keep the discussion both business and technical.
In my talk, I will share the two years journey post acquisition. A journey in which domains merged and split due to a dynamic environment, for example:
1)Why we used DDD to decide an acquired team should stay as an isolated domain, acting as a supportive domain in the company
2)How we later merged part of a supportive domain into the core domain
3)How and why we ended up splitting the merged domain again
When setting up a new project we have some tips and tricks to help you do this in the best way possible, incl. infrastructure, database, standard attributes, logging, code alignment, and service center.
Over the last year there has been a lot of buzz about Clean Architecture in the Android community, but what is Clean Architecture? How does it work? And should I be using it? Recently at Badoo we decided to rewrite our messenger component.
Over the years this core piece of functionality in our app has become large and unwieldy. We wanted to take a fresh approach to try and prevent this from happening again. We choose to use Clean Architecture to achieve our goal. This talk intends to share our journey from theory to implementation in an application with over 100 million downloads. By the end, you should not only understand what Clean Architecture is, but how to implement it, and whether you should.
Are you using the best architecture? Want to know how to make sure you are architecting things properly? Interested to learn where the new library features fit in? Come to this session to learn more.
Presentation slides from sessions discussing Event Source data storage and read-model projections.
Source code from demos at: https://bitbucket.org/csharpfritz/nerddinner-cqrs
In this session, we will learn about Teamcity CI Server. We will look at the different options available and how we can set a CI pipeline using Teamcity.
Using Processes and Timers for Long-Running Asynchronous TasksOutSystems
Running Asynchronous Tasks can be useful in the right situations, and sometimes the environment you’re working in requires it. Understanding how Processes and Timers are used in OutSystems can be extremely useful, particularly for long-running tasks. Come and get a first-hand look at creating and running Asynchronous Tasks and they could improve your apps’ performance.
Infrastructure as Code, tools, benefits, paradigms and more.
Presentation from DigitalOnUs DevOps: Infrastructure as Code Meetup (September 20, 2018 - Monterrey Nuevo Leon MX)
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...OutSystems
Having built-in CI/CD capabilities has always been a core tenet of the OutSystems platform. As customer factories have grown and CI/CD pipelines have become more complex, OutSystems has developed an integration with some of the leading CI/CD DevOps tools in the market, Jenkins, and Azure DevOps to tackle some of the challenges of managing enterprise-grade CI/CD pipelines.
This presentation about Jenkins pipeline will help you understand what is Jenkins & how Jenkins performs continuous integration, why do we need pipeline & how Jenkins pipeline works. You will learn how to create build and delivery pipelines & automate tasks, understand what is scripted and declarative pipeline with the help of Groovy scripts. Jenkins is an open-source continuous integration tool that is used to automate software development phases such as building, testing and deploying. Jenkins pipeline is a suite of plugins that support integration and implementation of jobs using continuous build and delivery pipelines. Now let's get started and understand how Jenkins pipeline works.
Below topics are explained in this Jenkins pipeline presentation:
1) What is Jenkins?
2) What is Continuous Integration?
3) Why Pipeline?
4) How does Jenkins pipeline work?
5) Build and delivery pipeline
6) Scripted and declarative pipeline
7) Demo on Jenkins pipeline
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet and Nagios in a practical, hands-on and interactive approach. The DevOps training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands-on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this Devops training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
Zero downtime deployment of micro-services with KubernetesWojciech Barczyński
Talk on deployment strategies with Kubernetes covering kubernetes configuration files and the actual implementation of your service in Golang and .net core.
You will find demos for recreate, rolling updates, blue-green, and canary deployments.
Source and demos, you will find on github: https://github.com/wojciech12/talk_zero_downtime_deployment_with_kubernetes
Using DDD for mapping a company’s core domain is quite known and one can find many case studies on that, but case studies for merging or re-dividing domains upon acquisition are harder to find.
As an R&D director at Taboola I had the opportunity of leading a technical due-diligence of an acquired company. During that time we considered a few alternatives of how such an acquisition might look like from two main perspectives: organization structure and technical integration whereas the two obviously affect each other per Conway’s Law.
In addition, post acquisition previous assumptions turned out to be inaccurate and required further domain analysis, for finding a better solution.
During those challenging times, I found DDD to be a very practical tool for executing the relevant change.
If you are in a dynamic company where teams, products and domains grow fast and then split or merge, you need to constantly analyze the domains and consider alternatives for those changes. From my experience, DDD approach helps visualizing and considering these alternatives while being able to keep the discussion both business and technical.
In my talk, I will share the two years journey post acquisition. A journey in which domains merged and split due to a dynamic environment, for example:
1)Why we used DDD to decide an acquired team should stay as an isolated domain, acting as a supportive domain in the company
2)How we later merged part of a supportive domain into the core domain
3)How and why we ended up splitting the merged domain again
The talk gives an example on how to introduce the Job DSL Plugin in a real life company. After explaining the importance of Configuration as Code and why we use the Job DSL Plugin for it, I will show how to take it to the next level. That means Configuration as Code does not automatically solve all configuration problems, there are a lot of pitfalls people need to look out for. On the one hand, you have to give people the freedom they need, one the other you always have to assure quality and stability at the same time.
Tips on ASO & Ad Monetization - Fiona Shih | Animoca BrandsFiona Yu-Chun Shih
- Checkpoints on ASO, timing on Ad Monetization and our case studies from Crazy Defense Heroes
- "How to Create a Hit Game" event in Shenzhen, China (May 2019) by Google AdMob x Mintegral x Avid.ly
Building a Beer Recommender with Yhat (PAPIs.io - November 2014)Austin Ogilvie
Building the predictive aspect of applications is the fun, sexy part. New tools like scikit-learn, pandas, and R have made building models less painful, but deploying/embedding models into production applications is challenging. We'll show how Yhat makes deploying predictive models written in Python or R fast and easy by building a beer recommendation system and an accompanying webapp.
[DevDay2019] Why you'll lose without UX Design - By Szilard Toth, CTO at e·pi...DevDay.org
UX Design is on a radical rise. The most successful companies like Google or Uber know that great UX is no longer a nice-to-have but a key business driver. Szilard Toth (CTO e·pilot) and Nicolas Python (Head of Design KLARA) talk about their own experience of UX Design in modern engineering environments. Whether you're a business leader or an engineer, learn why you'll lose without UX Design.
Ultimate Dogfooding: Behind the Scenes of Building the New JiraAtlassian
At Atlassian, we’ve been dog-fooding Jira since the beginning of time. This means we get to use every feature and improvement firsthand before it gets delivered to you. Building the new Jira, this posed an interesting challenge – we had to get everyone moving to the new experience.
In this talk, we’ll take you through our journey of getting everyone on-board onto new Jira. There will be a guided tour on how to best use the new Jira for the full cycle of product development. By the end of this session, you’ll know how to make new Jira work for your team and not the other way round.
Industry stories on agile, scrum and kanbanBusiness901
Eric is an Agile Project Manager who has been using Kanban for software development since 2007. He has worked with Scrum, XP and other agile methods for over the past 5 years, and has been managing software projects for over 10 years. Eric has his own blog, Corporate Coder which can be found at http://EricLandes.com. He is also a frequent contributor to http://developer.com.
Similar to Mucon 2019: OOps I DDD it again and again (20)
Hierarchical Digital Twin of a Naval Power SystemKerry Sado
A hierarchical digital twin of a Naval DC power system has been developed and experimentally verified. Similar to other state-of-the-art digital twins, this technology creates a digital replica of the physical system executed in real-time or faster, which can modify hardware controls. However, its advantage stems from distributing computational efforts by utilizing a hierarchical structure composed of lower-level digital twin blocks and a higher-level system digital twin. Each digital twin block is associated with a physical subsystem of the hardware and communicates with a singular system digital twin, which creates a system-level response. By extracting information from each level of the hierarchy, power system controls of the hardware were reconfigured autonomously. This hierarchical digital twin development offers several advantages over other digital twins, particularly in the field of naval power systems. The hierarchical structure allows for greater computational efficiency and scalability while the ability to autonomously reconfigure hardware controls offers increased flexibility and responsiveness. The hierarchical decomposition and models utilized were well aligned with the physical twin, as indicated by the maximum deviations between the developed digital twin hierarchy and the hardware.
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxR&R Consult
CFD analysis is incredibly effective at solving mysteries and improving the performance of complex systems!
Here's a great example: At a large natural gas-fired power plant, where they use waste heat to generate steam and energy, they were puzzled that their boiler wasn't producing as much steam as expected.
R&R and Tetra Engineering Group Inc. were asked to solve the issue with reduced steam production.
An inspection had shown that a significant amount of hot flue gas was bypassing the boiler tubes, where the heat was supposed to be transferred.
R&R Consult conducted a CFD analysis, which revealed that 6.3% of the flue gas was bypassing the boiler tubes without transferring heat. The analysis also showed that the flue gas was instead being directed along the sides of the boiler and between the modules that were supposed to capture the heat. This was the cause of the reduced performance.
Based on our results, Tetra Engineering installed covering plates to reduce the bypass flow. This improved the boiler's performance and increased electricity production.
It is always satisfying when we can help solve complex challenges like this. Do your systems also need a check-up or optimization? Give us a call!
Work done in cooperation with James Malloy and David Moelling from Tetra Engineering.
More examples of our work https://www.r-r-consult.dk/en/cases-en/
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Dr.Costas Sachpazis
Terzaghi's soil bearing capacity theory, developed by Karl Terzaghi, is a fundamental principle in geotechnical engineering used to determine the bearing capacity of shallow foundations. This theory provides a method to calculate the ultimate bearing capacity of soil, which is the maximum load per unit area that the soil can support without undergoing shear failure. The Calculation HTML Code included.
Overview of the fundamental roles in Hydropower generation and the components involved in wider Electrical Engineering.
This paper presents the design and construction of hydroelectric dams from the hydrologist’s survey of the valley before construction, all aspects and involved disciplines, fluid dynamics, structural engineering, generation and mains frequency regulation to the very transmission of power through the network in the United Kingdom.
Author: Robbie Edward Sayers
Collaborators and co editors: Charlie Sims and Connor Healey.
(C) 2024 Robbie E. Sayers
1. Oops, I DDD it
again:
A story about using strategic DDD during Acquisition
(again and again)
Ora Egozi Barzilai
May 2019
Head of R&D operations at Taboola
Mucon 2019
EgoziOra
2. About
myself
• Writing code and leading engineers for 15 years
• Experienced in companies of all sizes
• Leading at Taboola the Publishers R&D group, Now leading R&D
operations
• Fascinated by DDD, part of DDD-IL Meetup
• Mentored at the GBS excellence program
-DDD-IL
EgoziOra
3. This is
a true story
The events depicted in this film took place in Minnesota in 1987.
At the request of the survivors, the names have been changed.
Out of respect for the dead, the rest has been told exactly as
It occurred.
EgoziOra
6. Bounded
Contexts at
Taboola
2016
Rule: “for all users from UK show only UK related
articles”
Main Taboola flow - Serving right
recommendation to user on
Publisher site
Reporting
Recommendation
Serving
Serving Rules
Management
Rules are
deployed
Rules
Data is
collected
AI
EgoziOra
11. Bounded
Contexts at
Ninja 2016
More rules, WYSIWYG tool
Main Ninja flow - Serving right
campaign to user on e-commerce
site
Reporting
Campaign
Serving
Serving Rules
Management
Rules are
deployed
Data is
collected
EgoziOra
E-commerce sites Poor reporting
Ninja rule: When user is about to leave site show
her best campaign
12. Value of
Taboola+
NINJA
More rules, WYSIWYG tool
Reporting
Recommendation
Serving
Serving Rules
Management
Rules are
deployed
Data is
collected
EgoziOra
E-commerce sites
WYSIWYG tool
E-commerce
Ninja
Personalization Ninja reporting
20. Architecture will be
shaped like the
communication
EgoziOra
Conway’s Law
“Any organization that designs a system will
Inevitably produce a design whose structure
Is a copy of the organization’s communication
Structure.”
Melvin E.Conway
22. Take 1
Architecture
KPI: People stay, Demo two products working together
Reporting
Recommendation
Serving
Serving Rules
Management
EgoziOra
WYSIWYG tool
Ninja
Personalization
25. Reminder:
Sub-Domains
types
Core Domain
Critical to the Business
Competitive advantage
Supportive Domain
Supports the business
Important but not a competitive advantage
Generic Domain
Not Valuable for the business
Can be bought off the shelf
EgoziOra
26. Which Sub
Domain is
Ninja’s Product
EgoziOra
• Ninja’s team is separated
• Ninja’s product supports
recommendation
Core Domain
Critical to the Business
Competitive advantage
Supportive Domain
Supports the business
Important but not a competitive advantage
Generic Domain
Not Valuable for the business
Can be bought off the shelf
27. Which Sub
Domain is
Ninja’s Product
EgoziOra
Yes! Ninja’s personalization supports
the recommendation core domain
Core Domain
Critical to the Business
Competitive advantage
Supportive Domain
Supports the business
Important but not a competitive advantage
Generic Domain
Not Valuable for the business
Can be bought off the shelf
28. Take1: What’s
wrong with this
approach?
Can you spot the problem?
Reporting
Recommendation
Serving
Serving Rules
Management
EgoziOra
WYSIWYG tool
Ninja
Personalization
29. Take1: What’s
wrong with this
approach?
Lets focus on Serving Time:
Recommendation
Serving
EgoziOra
Ninja
Personalization
Supportive
Domain
Core
Domain
Ninja: For fast scrollers show
engaging content
Ninja
Rules
Taboola
RulesTaboola: For user resembling
clickers show more ads
(Machine Learning based)
30. But as Eric Evans said:
Each aggregate has a
root and a boundary
EgoziOra
32. EgoziOra
We are a startup!
We are the personalization
team!
Just inside Taboola
Take1:
Achievements
& Challenges -
People
Integrated product uses
30% of Ninja stuff.
Why did Taboola buy
us?
33. EgoziOra
We have a demo
proving Ninja has
competitive
advantage
Take1:
Achievements
& Challenges -
Business
Nothing works
beyond demo.
Rules collide….
We want MVP
34. The MVP or one product to rule
them all
KPI: Revenue indicators!
Take 2
EgoziOra
38. Take2:
Moved Ninja’s code
into Core domain
Reporting
Recommendation
Serving
Serving Rules
Management
EgoziOra
Ninja
Personalization
Configuration
Ninja+
Taboola
Rules
Ninja
personalization
Single place for rules management, single place for running them
Core Domain
39. Defining a MVP eliminates
supportive domains,
hence focusing you on
the core domain
EgoziOra
46. When we are architecting a
software system, we must
consider the impact on the teams
in the organization and vice-versa
(Nick Tune, Sociotechnical
Architecture Patterns)
EgoziOra
49. Take2.5:
Achievements &
Challenges – People
and Business
EgoziOra
Ubiquitous language:
Unified KPI - for revenue and
user Engagement
Flight-Control - balancing
between KPI’s
New modules for
Ninja emerged
Do we still need the
taskforce?
Too many cooks in
the same code
EgoziOra
$ $ $
$ $ $
55. Take3: Redefining
personalization
EgoziOra
Required KPI
Current state
Possible
Layouts
Regular serving Personalization
KPI Layout Prediction
Flight Control - Layout
chooserPersonalized
Layout
Regular Recommendation BC Personalization Recommendation BC
Recommendation Serving Context
56. Take3: Redefining
personalization
EgoziOra
Required KPI
Current state
Possible
Layouts
Ninja Recommendation Serving
Context in team2 area
Regular serving Personalization
KPI Layout Prediction
Flight Control –
Layout chooserPersonalized
Layout
Regular Recommendation BC Regular Recommendation BC
Where is Ninja original code in the picture?
58. Personalizatio
n Happy End –
2016 VS 2019
• All Ninja people stayed in the company except one
• Team grew and evolved - Ninja people moved to
other teams in the group
• Moved from rule based to Deep-Learning based -
leveraging Taboola’s competitive advantage
EgoziOra
59. EgoziOra
Heuristics
Integrating teams and products
is not an event, it is a process:
• Strategic DDD is a great tool for an acquisition- use it to:
a. Identify what parts of the acquisition should turn into core
domain. Your goal is to transition them ASAP.
b. Look for NEW bounded contexts
• People are critical - Use Socio-technical Architecture as a
tool for matching people and architecture.
• Evolution!=Confusion
60. Business people call it
merging companies.
I call it: merging and
emerging domains.
EgoziOra
61. Thank You
Ora Egozi Barzilai
May 2019
Head of R&D operations at Taboola
EgoziOra
62. Take1: What’s
wrong with this
approach?
Lets focus on Serving Time:
EgoziOra
Ninja
Personalization
Supportive
Domain
Core
Domain
Ninja
Rules
Taboola
Rules
Recommendation
Serving