SlideShare a Scribd company logo
1 of 88
Download to read offline
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
25+ million members in 22 countries;
How to scale with Symfony2?
Benjamin De Bernardi - Olivier Dolbeau
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
@genes0r
Lead Engineer
Benjamin De Bernardi
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Olivier Dolbeau
@odolbeau
Web Architect
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
100€ 25€ 25€ 25€
100€ 25€
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
15M
20M
10M
5M
1M
2015201420132012201120102009
25M
membersworldwide
Over 25 million members and growing
1.5 million+
joining each month
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
1. The past
2. Why symfony?
3. How?
○ How to deal with 22 countries?
○ Why do we love the EventDispatcher?
○ Performance & asynchronous
○ Doctrine
4. Traps
5. Here & now
Talk overview:
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
The past
1
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
v1.0
2005-2006
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
v2.0
2008-2011
(2014)
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
2010
New countries
2011 2012
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
3 770 lines of code
69 functions
926 lines for the longest one.
lib.trip.php
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Homemade framework
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
NO TESTS
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
v3.0
2011 - today
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
2012 2013 2014 2015
New countries
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Why Symfony?
2
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Huge community.
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Attract new people
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
How?
3
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
22 countries, how can we manage
specificities?
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
➔ One codebase for each country?
➔ Conditions everywhere in the code?
➔ Configuration and Context?
22 countries: how can we manage specificities?
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
➔ One codebase for each country?
➔ Conditions everywhere in the code?
➔ Configuration and Context?
22 countries: how can we manage specificities?
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Web request Listener
Symfony parse & build a
Request object
Build Context from
configuration and Request
Response
22 countries: Configuration & Context
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
1 file for each country
100+ configuration keys
Inheritance
Toggling of features
Metadata
22 countries: Configuration & Context
Configuration:
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
22 countries: Configuration & Context
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
22 countries: Configuration & Context
Get config from a controller:
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
22 countries: Configuration & Context
Get config from a controller:
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
22 countries: Configuration & Context
Get config from the view:
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
22 countries: Configuration & Context
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Lot of code, how to keep events clean?
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
➔ Symfony built-in EventDispatcher
Lot of code, how to keep events clean?
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
EventDispatcher how it works:
Lot of code, how to keep events clean?
Event DispatcherEvent
Listener
Listener
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
User A rates User B:
Lot of code, how to keep events clean?
Event Dispatcher
New
Rating
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
User A rates User B:
Lot of code, how to keep events clean?
Event Dispatcher
New
Rating
Grade
Listener
Recalculate the grade
of both users
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
User A rates User B:
Lot of code, how to keep events clean?
Event Dispatcher
New
Rating
Grade
Listener
Moderation
Listener
Ask for content
verification
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Lot of code, how to keep events clean?
Sending the event:
● Sent from anywhere
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Lot of code, how to keep events clean?
Registering a listener:
● Update a configuration file
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Lot of code, how to keep events clean?
Listening the event:
● Inside a registered listener
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
+ Perfect to decouple code inside the app.
+ Small listeners, easy to understand, to test.
+ Easy to dispatch events outside application.
- Sometimes, hard to understand the flow.
- Need tools/rules to keep a common logic.
Dispatching events Pros/Cons
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
■ Avoid Entities
■ Keep listener small and dedicated to a single task
■ Limit dependencies
Dispatching events one last thing:
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
High traffic, how to improve
performance?
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Problem:
The website is a bit slow
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Solution:
All side tasks can be done asynchronously
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Solution:
All side tasks can be done asynchronously
Tasks:
● Find a tool to transmit messages
● Create workers
● Use the event dispatcher
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Asynchronous jobs everywhere.
● Performance
● Job splitting
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Dispatch Event with the EventDispatcher.
● Sent from anywhere
● Listened with RabbitMQ or internal Listeners
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Check eventName &
event interface
Dispatch the event
in the application
Decorated EventDispatcher.
Publish to
RabbitMQ
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Send an Email
● Sent from anywhere
● Built using the User context in a dedicated worker
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
+ Perfect to decouple code
+ Small workers, easy to understand
+ Easy to dispatch events outside application
+ Separate projects & deployment
+ Scalable!
- Learning curve
- Need tools/rules to keep a common logic
- Hard to test a complete flow with mock/stubs
- Mapping is time consuming
Asynchronous event & process Pros/Cons
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
129 workers
Mail
SMS
Publication
Push
Indexation
Image
resizing
Alerts
Profile
completion
I love
workers!
Payment
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Asynchronous workers:
Infrastructure:
■ PHP
■ Supervisord
Code:
■ Symfony command inside the main app
■ Standalone app + Symfony components
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Asynchronous workers, Symfony:
+ Access to Entities
+ Every already defined services
- Entire Symfony
- Not dedicated
- Deployed along the website
- Not the main goal of Symfony
- High memory usage
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Asynchronous workers, Standalone:
+ Dedicated to a single task/type
+ Maintainable small code
+ Deployed independently
+ Easily created & tested
- Component splitting from the codebase
- More monitoring
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
About Doctrine...
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
It’s not a troll.
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Code fast!
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Code well?
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Queries from
the view!
Hard to control
cache strategy
No integrity
check.
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Doctrine Pros/Cons
+ Quick to bootstrap a new project
+ Quick to code a small project
- Hard to respect MVC
- Hard to deal with cache
- Hard to deal with integrity problems in DB
- Not made to decouple code (relations).
- Not made to scale.
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
We fell in traps...
4
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Never pimp your kernel!
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Before
Environment
Debug?
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Before
After
Branding Media
Environment
Debug?
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Put everything in
the same place can be
dangerous!
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
This is our
application.
This is our
business code.
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Don’t mess with
your tools!
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
We fell in traps...
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
We had parachutes!
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Problems solved?
+ Use symfony only as a tool
+ Work a lot on onboarding
+ Try to decouple everything with components
- We still have one big application
- As everyone, we lack of documentation
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
5
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
40 269
Commits
There are “only” 18 952 commits for symfony/symfony
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
561 851
NCLOC
There are “only” 278 909 NCLOC for symfony/symfony
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
~ 20
minutes to run all the
unit/functional tests
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
~ 30
minutes to deploy the application
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
Too big!
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
We’re working
on it! ;)
PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
We’re hiring!In Paris & Warsaw!http://blbl.cr/dreamjobs

More Related Content

Viewers also liked

"Walk in a distributed systems park with Orleans" Евгений Бобров
"Walk in a distributed systems park with Orleans" Евгений Бобров"Walk in a distributed systems park with Orleans" Евгений Бобров
"Walk in a distributed systems park with Orleans" Евгений БобровFwdays
 
Андрей Уманский и Дмитрий Горин "Нет скучным ретроспективам! Создаём эффектив...
Андрей Уманский и Дмитрий Горин "Нет скучным ретроспективам! Создаём эффектив...Андрей Уманский и Дмитрий Горин "Нет скучным ретроспективам! Создаём эффектив...
Андрей Уманский и Дмитрий Горин "Нет скучным ретроспективам! Создаём эффектив...Fwdays
 
"От разработчика в консультанты - история одного тренера" Александр Баглай
"От разработчика в консультанты - история одного тренера" Александр Баглай"От разработчика в консультанты - история одного тренера" Александр Баглай
"От разработчика в консультанты - история одного тренера" Александр БаглайFwdays
 
"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий МантулаFwdays
 
"The Grail: React based Isomorph apps framework" Эльдар Джафаров
"The Grail: React based Isomorph apps framework" Эльдар Джафаров"The Grail: React based Isomorph apps framework" Эльдар Джафаров
"The Grail: React based Isomorph apps framework" Эльдар ДжафаровFwdays
 
Павел Тайкало: "Apple watch first steps"
Павел Тайкало: "Apple watch first steps"Павел Тайкало: "Apple watch first steps"
Павел Тайкало: "Apple watch first steps"Fwdays
 
Алексей Демедецкий | Unit testing in swift
Алексей Демедецкий | Unit testing in swiftАлексей Демедецкий | Unit testing in swift
Алексей Демедецкий | Unit testing in swiftFwdays
 
"Fun with JavaScript and sensors" by Jan Jongboom
"Fun with JavaScript and sensors" by Jan Jongboom"Fun with JavaScript and sensors" by Jan Jongboom
"Fun with JavaScript and sensors" by Jan JongboomFwdays
 
"Эффективность и оптимизация кода в Java 8" Сергей Моренец
"Эффективность и оптимизация кода в Java 8" Сергей Моренец"Эффективность и оптимизация кода в Java 8" Сергей Моренец
"Эффективность и оптимизация кода в Java 8" Сергей МоренецFwdays
 
"From CRUD to Hypermedia APIs with Spring" Владимир Цукур
"From CRUD to Hypermedia APIs with Spring" Владимир Цукур"From CRUD to Hypermedia APIs with Spring" Владимир Цукур
"From CRUD to Hypermedia APIs with Spring" Владимир ЦукурFwdays
 
"Выучить язык программирования за 25 минут" Дмитрий Мантула
"Выучить язык программирования за 25 минут" Дмитрий Мантула"Выучить язык программирования за 25 минут" Дмитрий Мантула
"Выучить язык программирования за 25 минут" Дмитрий МантулаFwdays
 
Маргарита Остапчук "Що нового в Windows 10 для розробників"
Маргарита Остапчук "Що нового в Windows 10 для розробників"Маргарита Остапчук "Що нового в Windows 10 для розробників"
Маргарита Остапчук "Що нового в Windows 10 для розробників"Fwdays
 
Михаил Чалый "Serverless Architectures using .NET and Azure"
Михаил Чалый "Serverless Architectures using .NET and Azure"Михаил Чалый "Serverless Architectures using .NET and Azure"
Михаил Чалый "Serverless Architectures using .NET and Azure"Fwdays
 
Сергей Больщиков "Angular Components: все уже за, а вы еще нет?"
Сергей Больщиков "Angular Components: все уже за, а вы еще нет?"Сергей Больщиков "Angular Components: все уже за, а вы еще нет?"
Сергей Больщиков "Angular Components: все уже за, а вы еще нет?"Fwdays
 
Антон Бойко "Azure Web Apps deep dive"
Антон Бойко "Azure Web Apps deep dive"Антон Бойко "Azure Web Apps deep dive"
Антон Бойко "Azure Web Apps deep dive"Fwdays
 
"Война типов: сильные против слабых" Виктор Полищук
"Война типов: сильные против слабых" Виктор Полищук"Война типов: сильные против слабых" Виктор Полищук
"Война типов: сильные против слабых" Виктор ПолищукFwdays
 
Николай Паламарчук "Управление зависимостями в больших проектах"
Николай Паламарчук "Управление зависимостями в больших проектах" Николай Паламарчук "Управление зависимостями в больших проектах"
Николай Паламарчук "Управление зависимостями в больших проектах" Fwdays
 
"Avoiding memory leaks in Android" Денис Жучинский
"Avoiding memory leaks in Android" Денис Жучинский"Avoiding memory leaks in Android" Денис Жучинский
"Avoiding memory leaks in Android" Денис ЖучинскийFwdays
 
"Reducers in Action" Антон Молдован
"Reducers in Action" Антон Молдован"Reducers in Action" Антон Молдован
"Reducers in Action" Антон МолдованFwdays
 
Роман Сахаров "Stakeholders and expectations, или когда проекты успешны?"
 Роман Сахаров "Stakeholders and expectations, или когда проекты успешны?" Роман Сахаров "Stakeholders and expectations, или когда проекты успешны?"
Роман Сахаров "Stakeholders and expectations, или когда проекты успешны?"Fwdays
 

Viewers also liked (20)

"Walk in a distributed systems park with Orleans" Евгений Бобров
"Walk in a distributed systems park with Orleans" Евгений Бобров"Walk in a distributed systems park with Orleans" Евгений Бобров
"Walk in a distributed systems park with Orleans" Евгений Бобров
 
Андрей Уманский и Дмитрий Горин "Нет скучным ретроспективам! Создаём эффектив...
Андрей Уманский и Дмитрий Горин "Нет скучным ретроспективам! Создаём эффектив...Андрей Уманский и Дмитрий Горин "Нет скучным ретроспективам! Создаём эффектив...
Андрей Уманский и Дмитрий Горин "Нет скучным ретроспективам! Создаём эффектив...
 
"От разработчика в консультанты - история одного тренера" Александр Баглай
"От разработчика в консультанты - история одного тренера" Александр Баглай"От разработчика в консультанты - история одного тренера" Александр Баглай
"От разработчика в консультанты - история одного тренера" Александр Баглай
 
"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула
 
"The Grail: React based Isomorph apps framework" Эльдар Джафаров
"The Grail: React based Isomorph apps framework" Эльдар Джафаров"The Grail: React based Isomorph apps framework" Эльдар Джафаров
"The Grail: React based Isomorph apps framework" Эльдар Джафаров
 
Павел Тайкало: "Apple watch first steps"
Павел Тайкало: "Apple watch first steps"Павел Тайкало: "Apple watch first steps"
Павел Тайкало: "Apple watch first steps"
 
Алексей Демедецкий | Unit testing in swift
Алексей Демедецкий | Unit testing in swiftАлексей Демедецкий | Unit testing in swift
Алексей Демедецкий | Unit testing in swift
 
"Fun with JavaScript and sensors" by Jan Jongboom
"Fun with JavaScript and sensors" by Jan Jongboom"Fun with JavaScript and sensors" by Jan Jongboom
"Fun with JavaScript and sensors" by Jan Jongboom
 
"Эффективность и оптимизация кода в Java 8" Сергей Моренец
"Эффективность и оптимизация кода в Java 8" Сергей Моренец"Эффективность и оптимизация кода в Java 8" Сергей Моренец
"Эффективность и оптимизация кода в Java 8" Сергей Моренец
 
"From CRUD to Hypermedia APIs with Spring" Владимир Цукур
"From CRUD to Hypermedia APIs with Spring" Владимир Цукур"From CRUD to Hypermedia APIs with Spring" Владимир Цукур
"From CRUD to Hypermedia APIs with Spring" Владимир Цукур
 
"Выучить язык программирования за 25 минут" Дмитрий Мантула
"Выучить язык программирования за 25 минут" Дмитрий Мантула"Выучить язык программирования за 25 минут" Дмитрий Мантула
"Выучить язык программирования за 25 минут" Дмитрий Мантула
 
Маргарита Остапчук "Що нового в Windows 10 для розробників"
Маргарита Остапчук "Що нового в Windows 10 для розробників"Маргарита Остапчук "Що нового в Windows 10 для розробників"
Маргарита Остапчук "Що нового в Windows 10 для розробників"
 
Михаил Чалый "Serverless Architectures using .NET and Azure"
Михаил Чалый "Serverless Architectures using .NET and Azure"Михаил Чалый "Serverless Architectures using .NET and Azure"
Михаил Чалый "Serverless Architectures using .NET and Azure"
 
Сергей Больщиков "Angular Components: все уже за, а вы еще нет?"
Сергей Больщиков "Angular Components: все уже за, а вы еще нет?"Сергей Больщиков "Angular Components: все уже за, а вы еще нет?"
Сергей Больщиков "Angular Components: все уже за, а вы еще нет?"
 
Антон Бойко "Azure Web Apps deep dive"
Антон Бойко "Azure Web Apps deep dive"Антон Бойко "Azure Web Apps deep dive"
Антон Бойко "Azure Web Apps deep dive"
 
"Война типов: сильные против слабых" Виктор Полищук
"Война типов: сильные против слабых" Виктор Полищук"Война типов: сильные против слабых" Виктор Полищук
"Война типов: сильные против слабых" Виктор Полищук
 
Николай Паламарчук "Управление зависимостями в больших проектах"
Николай Паламарчук "Управление зависимостями в больших проектах" Николай Паламарчук "Управление зависимостями в больших проектах"
Николай Паламарчук "Управление зависимостями в больших проектах"
 
"Avoiding memory leaks in Android" Денис Жучинский
"Avoiding memory leaks in Android" Денис Жучинский"Avoiding memory leaks in Android" Денис Жучинский
"Avoiding memory leaks in Android" Денис Жучинский
 
"Reducers in Action" Антон Молдован
"Reducers in Action" Антон Молдован"Reducers in Action" Антон Молдован
"Reducers in Action" Антон Молдован
 
Роман Сахаров "Stakeholders and expectations, или когда проекты успешны?"
 Роман Сахаров "Stakeholders and expectations, или когда проекты успешны?" Роман Сахаров "Stakeholders and expectations, или когда проекты успешны?"
Роман Сахаров "Stakeholders and expectations, или когда проекты успешны?"
 

Similar to Olivier Dolbeau, Benjamin De Bernardi "25+ millions members in 22 countries, how to scale with Symfony 2?"

really really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfacesreally really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfacesGiulio De Donato
 
Awesome application in 2014
Awesome application in 2014Awesome application in 2014
Awesome application in 2014Codemotion
 
Putting legacy to REST with middleware
Putting legacy to REST with middlewarePutting legacy to REST with middleware
Putting legacy to REST with middlewareAdam Culp
 
2Hive for Invest
2Hive for Invest2Hive for Invest
2Hive for Invest2hive
 
Last 2 Months in PHP - January 2018
Last 2 Months in PHP - January 2018Last 2 Months in PHP - January 2018
Last 2 Months in PHP - January 2018Eric Poe
 
[Pdf ready]go rated-ecommerce
[Pdf ready]go rated-ecommerce[Pdf ready]go rated-ecommerce
[Pdf ready]go rated-ecommerceRagde Falcis
 
Christian Mladenov @ Intuitics
Christian Mladenov @ IntuiticsChristian Mladenov @ Intuitics
Christian Mladenov @ IntuiticsPAPIs.io
 
Last Month in PHP - October 2016
Last Month in PHP - October 2016Last Month in PHP - October 2016
Last Month in PHP - October 2016Eric Poe
 
Introduzione alla SEO Automation con Python
Introduzione alla SEO Automation con PythonIntroduzione alla SEO Automation con Python
Introduzione alla SEO Automation con PythonAndrea Baggio
 
How Badoo Saved $1M Switching to PHP7 - Nikolay Krapivnyy - PHPDay Verona 2016
How Badoo Saved $1M Switching to PHP7 - Nikolay Krapivnyy - PHPDay Verona 2016How Badoo Saved $1M Switching to PHP7 - Nikolay Krapivnyy - PHPDay Verona 2016
How Badoo Saved $1M Switching to PHP7 - Nikolay Krapivnyy - PHPDay Verona 2016Badoo
 
INTERNET TRADE TOOLS
INTERNET TRADE TOOLSINTERNET TRADE TOOLS
INTERNET TRADE TOOLSBUDNET
 
How To Build a Community on Slack?
How To Build a Community on Slack?How To Build a Community on Slack?
How To Build a Community on Slack?Florent Merian
 
PHP Training Institute! BATRA COMPUTER CENTRE
PHP Training Institute! BATRA COMPUTER CENTREPHP Training Institute! BATRA COMPUTER CENTRE
PHP Training Institute! BATRA COMPUTER CENTREjatin batra
 
Talk to me Goose: Going beyond your regular Chatbot
Talk to me Goose: Going beyond your regular ChatbotTalk to me Goose: Going beyond your regular Chatbot
Talk to me Goose: Going beyond your regular ChatbotLuc Bors
 
Integrating OpenSocial & SalesForce.com
Integrating OpenSocial & SalesForce.comIntegrating OpenSocial & SalesForce.com
Integrating OpenSocial & SalesForce.comChris Schalk
 
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr MalykFwdays
 

Similar to Olivier Dolbeau, Benjamin De Bernardi "25+ millions members in 22 countries, how to scale with Symfony 2?" (20)

really really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfacesreally really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfaces
 
Awesome application in 2014
Awesome application in 2014Awesome application in 2014
Awesome application in 2014
 
Putting legacy to REST with middleware
Putting legacy to REST with middlewarePutting legacy to REST with middleware
Putting legacy to REST with middleware
 
2HIVE for Investors
2HIVE for Investors2HIVE for Investors
2HIVE for Investors
 
2Hive for Invest
2Hive for Invest2Hive for Invest
2Hive for Invest
 
Last 2 Months in PHP - January 2018
Last 2 Months in PHP - January 2018Last 2 Months in PHP - January 2018
Last 2 Months in PHP - January 2018
 
[Pdf ready]go rated-ecommerce
[Pdf ready]go rated-ecommerce[Pdf ready]go rated-ecommerce
[Pdf ready]go rated-ecommerce
 
Christian Mladenov @ Intuitics
Christian Mladenov @ IntuiticsChristian Mladenov @ Intuitics
Christian Mladenov @ Intuitics
 
Last Month in PHP - October 2016
Last Month in PHP - October 2016Last Month in PHP - October 2016
Last Month in PHP - October 2016
 
Php performance-talk
Php performance-talkPhp performance-talk
Php performance-talk
 
Introduzione alla SEO Automation con Python
Introduzione alla SEO Automation con PythonIntroduzione alla SEO Automation con Python
Introduzione alla SEO Automation con Python
 
How Badoo Saved $1M Switching to PHP7 - Nikolay Krapivnyy - PHPDay Verona 2016
How Badoo Saved $1M Switching to PHP7 - Nikolay Krapivnyy - PHPDay Verona 2016How Badoo Saved $1M Switching to PHP7 - Nikolay Krapivnyy - PHPDay Verona 2016
How Badoo Saved $1M Switching to PHP7 - Nikolay Krapivnyy - PHPDay Verona 2016
 
A 8 line group call
A 8 line group callA 8 line group call
A 8 line group call
 
INTERNET TRADE TOOLS
INTERNET TRADE TOOLSINTERNET TRADE TOOLS
INTERNET TRADE TOOLS
 
How To Build a Community on Slack?
How To Build a Community on Slack?How To Build a Community on Slack?
How To Build a Community on Slack?
 
PHP Training Institute! BATRA COMPUTER CENTRE
PHP Training Institute! BATRA COMPUTER CENTREPHP Training Institute! BATRA COMPUTER CENTRE
PHP Training Institute! BATRA COMPUTER CENTRE
 
Talk to me Goose: Going beyond your regular Chatbot
Talk to me Goose: Going beyond your regular ChatbotTalk to me Goose: Going beyond your regular Chatbot
Talk to me Goose: Going beyond your regular Chatbot
 
Integrating OpenSocial & SalesForce.com
Integrating OpenSocial & SalesForce.comIntegrating OpenSocial & SalesForce.com
Integrating OpenSocial & SalesForce.com
 
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
 
Islam magdy
Islam magdyIslam magdy
Islam magdy
 

More from Fwdays

"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...Fwdays
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil TopchiiFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro SpodaretsFwdays
 
"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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"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
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym KindritskyiFwdays
 
"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...Fwdays
 
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T..."How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...Fwdays
 
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ..."The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...Fwdays
 
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu..."[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...Fwdays
 
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care..."[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...Fwdays
 
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"..."4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...Fwdays
 
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast..."Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...Fwdays
 
"Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others..."Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others...Fwdays
 
"Mission (im) possible: How to get an offer in 2024?", Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?", Oleksandra MyronovaFwdays
 
"Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv..."Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv...Fwdays
 
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin..."How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...Fwdays
 

More from Fwdays (20)

"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets
 
"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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"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
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
 
"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...
 
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T..."How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
 
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ..."The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
 
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu..."[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
 
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care..."[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
 
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"..."4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
 
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast..."Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...
 
"Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others..."Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others...
 
"Mission (im) possible: How to get an offer in 2024?", Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?", Oleksandra Myronova
 
"Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv..."Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv...
 
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin..."How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
 

Recently uploaded

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

Olivier Dolbeau, Benjamin De Bernardi "25+ millions members in 22 countries, how to scale with Symfony 2?"

  • 1. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 25+ million members in 22 countries; How to scale with Symfony2? Benjamin De Bernardi - Olivier Dolbeau
  • 2. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r @genes0r Lead Engineer Benjamin De Bernardi
  • 3. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Olivier Dolbeau @odolbeau Web Architect
  • 4. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 100€ 25€ 25€ 25€ 100€ 25€
  • 5. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 15M 20M 10M 5M 1M 2015201420132012201120102009 25M membersworldwide Over 25 million members and growing 1.5 million+ joining each month
  • 6. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
  • 7. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 1. The past 2. Why symfony? 3. How? ○ How to deal with 22 countries? ○ Why do we love the EventDispatcher? ○ Performance & asynchronous ○ Doctrine 4. Traps 5. Here & now Talk overview:
  • 8. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r The past 1
  • 9. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r v1.0 2005-2006
  • 10. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
  • 11. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r v2.0 2008-2011 (2014)
  • 12. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
  • 13. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 2010 New countries 2011 2012
  • 14. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
  • 15. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 3 770 lines of code 69 functions 926 lines for the longest one. lib.trip.php
  • 16. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Homemade framework
  • 17. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r NO TESTS
  • 18. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r v3.0 2011 - today
  • 19. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
  • 20. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 2012 2013 2014 2015 New countries
  • 21. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Why Symfony? 2
  • 22. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Huge community.
  • 23. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
  • 24. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Attract new people
  • 25. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r How? 3
  • 26. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 22 countries, how can we manage specificities?
  • 27. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r ➔ One codebase for each country? ➔ Conditions everywhere in the code? ➔ Configuration and Context? 22 countries: how can we manage specificities?
  • 28. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r ➔ One codebase for each country? ➔ Conditions everywhere in the code? ➔ Configuration and Context? 22 countries: how can we manage specificities?
  • 29. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Web request Listener Symfony parse & build a Request object Build Context from configuration and Request Response 22 countries: Configuration & Context
  • 30. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 1 file for each country 100+ configuration keys Inheritance Toggling of features Metadata 22 countries: Configuration & Context Configuration:
  • 31. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 22 countries: Configuration & Context
  • 32. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 22 countries: Configuration & Context Get config from a controller:
  • 33. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 22 countries: Configuration & Context Get config from a controller:
  • 34. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 22 countries: Configuration & Context Get config from the view:
  • 35. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 22 countries: Configuration & Context
  • 36. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Lot of code, how to keep events clean?
  • 37. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r ➔ Symfony built-in EventDispatcher Lot of code, how to keep events clean?
  • 38. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r EventDispatcher how it works: Lot of code, how to keep events clean? Event DispatcherEvent Listener Listener
  • 39. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r User A rates User B: Lot of code, how to keep events clean? Event Dispatcher New Rating
  • 40. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r User A rates User B: Lot of code, how to keep events clean? Event Dispatcher New Rating Grade Listener Recalculate the grade of both users
  • 41. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r User A rates User B: Lot of code, how to keep events clean? Event Dispatcher New Rating Grade Listener Moderation Listener Ask for content verification
  • 42. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Lot of code, how to keep events clean? Sending the event: ● Sent from anywhere
  • 43. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Lot of code, how to keep events clean? Registering a listener: ● Update a configuration file
  • 44. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Lot of code, how to keep events clean? Listening the event: ● Inside a registered listener
  • 45. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r + Perfect to decouple code inside the app. + Small listeners, easy to understand, to test. + Easy to dispatch events outside application. - Sometimes, hard to understand the flow. - Need tools/rules to keep a common logic. Dispatching events Pros/Cons
  • 46. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r ■ Avoid Entities ■ Keep listener small and dedicated to a single task ■ Limit dependencies Dispatching events one last thing:
  • 47. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r High traffic, how to improve performance?
  • 48. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Problem: The website is a bit slow
  • 49. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Solution: All side tasks can be done asynchronously
  • 50. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Solution: All side tasks can be done asynchronously Tasks: ● Find a tool to transmit messages ● Create workers ● Use the event dispatcher
  • 51. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Asynchronous jobs everywhere. ● Performance ● Job splitting
  • 52. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
  • 53. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Dispatch Event with the EventDispatcher. ● Sent from anywhere ● Listened with RabbitMQ or internal Listeners
  • 54. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Check eventName & event interface Dispatch the event in the application Decorated EventDispatcher. Publish to RabbitMQ
  • 55. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Send an Email ● Sent from anywhere ● Built using the User context in a dedicated worker
  • 56. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r + Perfect to decouple code + Small workers, easy to understand + Easy to dispatch events outside application + Separate projects & deployment + Scalable! - Learning curve - Need tools/rules to keep a common logic - Hard to test a complete flow with mock/stubs - Mapping is time consuming Asynchronous event & process Pros/Cons
  • 57. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 129 workers Mail SMS Publication Push Indexation Image resizing Alerts Profile completion I love workers! Payment
  • 58. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Asynchronous workers: Infrastructure: ■ PHP ■ Supervisord Code: ■ Symfony command inside the main app ■ Standalone app + Symfony components
  • 59. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Asynchronous workers, Symfony: + Access to Entities + Every already defined services - Entire Symfony - Not dedicated - Deployed along the website - Not the main goal of Symfony - High memory usage
  • 60. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Asynchronous workers, Standalone: + Dedicated to a single task/type + Maintainable small code + Deployed independently + Easily created & tested - Component splitting from the codebase - More monitoring
  • 61. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r About Doctrine...
  • 62. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r It’s not a troll.
  • 63. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Code fast!
  • 64. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Code well?
  • 65. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
  • 66. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Queries from the view! Hard to control cache strategy No integrity check.
  • 67. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Doctrine Pros/Cons + Quick to bootstrap a new project + Quick to code a small project - Hard to respect MVC - Hard to deal with cache - Hard to deal with integrity problems in DB - Not made to decouple code (relations). - Not made to scale.
  • 68. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r We fell in traps... 4
  • 69. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Never pimp your kernel!
  • 70. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Before Environment Debug?
  • 71. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Before After Branding Media Environment Debug?
  • 72. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Put everything in the same place can be dangerous!
  • 73. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
  • 74. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r This is our application. This is our business code.
  • 75. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Don’t mess with your tools!
  • 76. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
  • 77. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r
  • 78. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r We fell in traps...
  • 79. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r We had parachutes!
  • 80. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Problems solved? + Use symfony only as a tool + Work a lot on onboarding + Try to decouple everything with components - We still have one big application - As everyone, we lack of documentation
  • 81. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 5
  • 82. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 40 269 Commits There are “only” 18 952 commits for symfony/symfony
  • 83. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r 561 851 NCLOC There are “only” 278 909 NCLOC for symfony/symfony
  • 84. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r ~ 20 minutes to run all the unit/functional tests
  • 85. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r ~ 30 minutes to deploy the application
  • 86. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r Too big!
  • 87. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r We’re working on it! ;)
  • 88. PHP Frameworks Day 2016 - 25+ million members in 22 countries; How to scale with Symfony2 @odolbeau & @genes0r We’re hiring!In Paris & Warsaw!http://blbl.cr/dreamjobs