A Rocket Internet experience @ ForumPHP Paris 2013

A ROCKET INTERNET
EXPERIENCE

Alessandro Nadalin, 22nd November 2013
AGENDA
1. Context
2. Responsibilities
3. Building the team
4. Get started
5. Mutate
6. Delegate
7. BONUS
1. Context
1st April 2012
2. Responsibilities
Strive towards excellence
NO
Make things work
TDD is useless
Automated tests are useless
Symfony2 is useless
PEOPLE, FFS!
3. Building the team
You can't make everyone you know relocate
You can't relocate your company
How to hire a very good (middle-eastern) team?
HIRE THE YOUNG
They forget about the clock and are
usually attracted to new technologies
Moreover, there is no big bias.
IGNORE CVs
How many PHP indians companies are out there?
How many of them do you know?
We are biased
Ask for partial overtime
No one expects everyone to know about everything,
that is why we hire people and train them
Training has a cost that both the employer
and the employee have to split
Means overtime for
changing labels it's useless,
of course
but OT is fine, get over it
It's a matter of what both parts
offer for / in those extra-hours.
Pyramid interview
Who is Frederick Brooks?
What is the second-system effect?
What does PEAA mean?
What is a data mapper?
Why is it cool?
Why is OOP better than procedural code?
What happens when you hit enter in the browser bar?
...and so on.
Surprise them
An interview is always a good opportunity for
learning.
Given that you can effectively teach stuff with
the pyramid interview...
...wear shorts if you want.
...ask how many cabs are out there if you want.
If you ask weird questions...

Putting the candidate in a no-comfort zone will
let you know how he or she reacts to variable
situations and unknown problems.
If you wear shorts...

Gain authority on the field, not on paper
If you wear shorts...

Gain authority on the field, not on paper
Remember people not to be judgemental
If you wear shorts...

Beach after Work!
Offer fair packages
At the end of it...
A Rocket Internet experience @ ForumPHP Paris 2013
4. Get started
"It takes 3 months to be effectively productive"
Why?
"Because the developers can't understand the code"
Solution #1
Fire them all
Solution #1
Fire them all
Why don't they understand the code?
"Because the code is not that domain driven"
Solution #2
Replace the software
In the next 4 months, we would have replaced our
entire architecture with a RoR application and parts
of the architecture with NodeJS...
...if I was that dumb.
COST / BENEFIT
Know-how and tools for free is something you can't
easily drop.
Instead of replacing a monolithic approach with
another monolithic approach, you split the system
in layers and work on each of those layers.
So, why isn't the code domain-driven?
"Not everyone knows how decoupled DDD works"
And that's perfectly fine.
Imagine Fabien as your boss
when you were a Rookie?
We're all born n00bs
Socratic approach
Socratic approach
Question something
Socratic approach
Question something
Raise your thoughts
Socratic approach
Question something
Raise your thoughts
Let them elaborate
Socratic approach
Question something
Raise your thoughts
Let them elaborate
Drown together
Socratic approach
Question something
Raise your thoughts
Let them elaborate
Drown together
Accept evidences
Socratic approach
Question something
Raise your thoughts
Let them elaborate
Drown together
Accept evidences
Ready to move on
The BIB approach
"BECAUSE IT'S BETTER!"
Do not change people because
you want things to get better.
Change things because
you want people to feel better.
Do not change people because
you want things to get better.
Change things because
you want people to feel better.
5. Mutate
In ~3 months
In ~6 months
In ~9 months
In ~1 year
In ~1.5 years
Recap
All of this besides day-to-day development
~3 months: 1 deployment a week
~6 months: 1 deployment a day
~9 months: 2/3 deployment a week
~1 year: ½ deployments per week
~1.5 years: whenever s**t is ready
"Instead of replacing a monolithic approach with
another monolithic approach, you split the system in
layers and work on each of those layers."
SOA
The paradigm changes
A software design based on discrete software
components, "services", that collectively
provide the functionalities of the larger
software application
You typically start with the
infamous web application
which does everything on its own
A Rocket Internet experience @ ForumPHP Paris 2013
Then you realize that to provide
a chat system to your users
PHP might not be the best...
A Rocket Internet experience @ ForumPHP Paris 2013
And soon you also decide,
to improve performances,
that your frontend should have its own
in-memory persistence, to be faster
and you put it into another service
A Rocket Internet experience @ ForumPHP Paris 2013
Then, as always...
SCALE.
A Rocket Internet experience @ ForumPHP Paris 2013
And eventually, your lead architect
will come up and tell you
that your Java-based chat
sucks and should be
replaced with...
NODEJS
A Rocket Internet experience @ ForumPHP Paris 2013
In human-understandable words, SOA is a software design which
embraces splitting a monolithic, totalitarian software
architecture into smaller pieces, thus making them independent,
loosely coupled and more maintainable
A backend service exists...
A Rocket Internet experience @ ForumPHP Paris 2013
...and a new frontend pops out
A Rocket Internet experience @ ForumPHP Paris 2013
Another one might want to deal
with the same data...
A Rocket Internet experience @ ForumPHP Paris 2013
And ask the first one to compute some data...
A Rocket Internet experience @ ForumPHP Paris 2013
And once it's done, there might be the chance
we want to raise an event...
A Rocket Internet experience @ ForumPHP Paris 2013
And monitor if there is a problem...
A Rocket Internet experience @ ForumPHP Paris 2013
WARNING
No one is designing Web Services for you anymore
Interfaces are crucial
Software design is crucial
Don’t limit yourself to develop stuff
ENGINEER THINGS
6. Delegate
A team of 12
A company of ~200
Release management
http://odino.org/source-code-workflow-after-3-months-of-github/
Maintenance
Product management
Delegation means...
Faster cycles
More time to pair and teach
Committed team members
...yawn...
Alessandro Nadalin
Alessandro Nadalin
@_odino_
Alessandro Nadalin
@_odino_
Namshi | Rocket Internet
Alessandro Nadalin
@_odino_
Namshi | Rocket Internet
VP Technology
Alessandro Nadalin
@_odino_
Namshi | Rocket Internet
VP Technology
odino.org
Thanks!
Alessandro Nadalin
@_odino_
Namshi | Rocket Internet
VP Technology
odino.org
7. BONUS
YOU?
Join us!
Sr. Software Engineer
In Dubai.
namshi.com/careers/
http://www.youtube.com/watch?v=NThxiu1HGgM
Thanks!
Alessandro Nadalin
@_odino_
Namshi | Rocket Internet
VP Technology
odino.org
1 of 150

Recommended

Event storming recipes by
Event storming recipesEvent storming recipes
Event storming recipesAlberto Brandolini
73.4K views96 slides
The final words about software estimation by
The final words about software estimationThe final words about software estimation
The final words about software estimationAlberto Brandolini
32.7K views20 slides
Architects and design-org by
Architects and design-orgArchitects and design-org
Architects and design-orgKinshuk Adhikary
492 views4 slides
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San... by
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...Alessandro Nadalin
6.6K views165 slides
State of Tech in Texas by
State of Tech in TexasState of Tech in Texas
State of Tech in TexasExperts Exchange
11.5K views1 slide
Keynote d'ouverture du forum PHP 2013 by
Keynote d'ouverture du forum PHP 2013Keynote d'ouverture du forum PHP 2013
Keynote d'ouverture du forum PHP 2013Olivier Mansour
1.4K views19 slides

More Related Content

Similar to A Rocket Internet experience @ ForumPHP Paris 2013

The rocket internet experience @ PHP.TO.START 2013 in Turin by
The rocket internet experience @ PHP.TO.START 2013 in TurinThe rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in TurinAlessandro Nadalin
8.2K views165 slides
Crafting Great Code by
Crafting Great CodeCrafting Great Code
Crafting Great CodeHarold Shinsato
5.5K views43 slides
How do we drive tech changes by
How do we drive tech changesHow do we drive tech changes
How do we drive tech changesJaewoo Ahn
1.4K views37 slides
From open source labs to ceo methods and advice by sysfera by
From open source labs to ceo methods and advice by sysferaFrom open source labs to ceo methods and advice by sysfera
From open source labs to ceo methods and advice by sysferafOSSa - Free Open Source Software Academia Conference
1K views45 slides
Redesigning everything (avanscoperta meeutp edition) by
Redesigning everything (avanscoperta meeutp edition)Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Alberto Brandolini
314 views91 slides
Distributed cat herding by
Distributed cat herdingDistributed cat herding
Distributed cat herdingJilles van Gurp
735 views30 slides

Similar to A Rocket Internet experience @ ForumPHP Paris 2013(20)

The rocket internet experience @ PHP.TO.START 2013 in Turin by Alessandro Nadalin
The rocket internet experience @ PHP.TO.START 2013 in TurinThe rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in Turin
Alessandro Nadalin8.2K views
How do we drive tech changes by Jaewoo Ahn
How do we drive tech changesHow do we drive tech changes
How do we drive tech changes
Jaewoo Ahn1.4K views
Redesigning everything (avanscoperta meeutp edition) by Alberto Brandolini
Redesigning everything (avanscoperta meeutp edition)Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)
Alberto Brandolini314 views
Scottish Ruby Conference 2014 by michaelag1971
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014
michaelag1971354 views
UCD / IxD Introduction - User centric design, interaction design by sdavis6b
UCD / IxD Introduction - User centric design, interaction designUCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction design
sdavis6b540 views
How to Implement Domain Driven Design in Real Life SDLC by Abdul Karim
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLC
Abdul Karim3.3K views
Kamon Ayeva Antipatterns, Patterns, And Rules Of Thumb For Successful Plone... by Vincenzo Barone
Kamon Ayeva   Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...Kamon Ayeva   Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...
Kamon Ayeva Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...
Vincenzo Barone685 views
Importance of Documentation for programmers by NASSCOM
Importance of Documentation for programmers Importance of Documentation for programmers
Importance of Documentation for programmers
NASSCOM 8K views
On Selecting JavaScript Frameworks (Women Who Code 10/15) by Zoe Landon
On Selecting JavaScript Frameworks (Women Who Code 10/15)On Selecting JavaScript Frameworks (Women Who Code 10/15)
On Selecting JavaScript Frameworks (Women Who Code 10/15)
Zoe Landon900 views
Adopting Domain-Driven Design in your organization by Aleix Morgadas
Adopting Domain-Driven Design in your organizationAdopting Domain-Driven Design in your organization
Adopting Domain-Driven Design in your organization
Aleix Morgadas701 views
Geecon10: Object Oriented for nonbelievers by Bruno Bossola
Geecon10: Object Oriented for nonbelieversGeecon10: Object Oriented for nonbelievers
Geecon10: Object Oriented for nonbelievers
Bruno Bossola442 views
Reactive Microservice Architecture with Groovy and Grails by Steve Pember
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and Grails
Steve Pember7.8K views
Software Development Life CyclesPresented byBrenda Reynold.docx by rosemariebrayshaw
Software Development Life CyclesPresented byBrenda Reynold.docxSoftware Development Life CyclesPresented byBrenda Reynold.docx
Software Development Life CyclesPresented byBrenda Reynold.docx
Pareto will tell you to stop using your ORM - Mateo Collina by Wey Wey Web
Pareto will tell you to stop using your ORM - Mateo CollinaPareto will tell you to stop using your ORM - Mateo Collina
Pareto will tell you to stop using your ORM - Mateo Collina
Wey Wey Web12 views
Design Types by 1&1
Design TypesDesign Types
Design Types
1&11.4K views

More from Alessandro Nadalin

Spa, isomorphic and back to the server our journey with js @ frontend con po... by
Spa, isomorphic and back to the server  our journey with js @ frontend con po...Spa, isomorphic and back to the server  our journey with js @ frontend con po...
Spa, isomorphic and back to the server our journey with js @ frontend con po...Alessandro Nadalin
642 views152 slides
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2... by
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...Alessandro Nadalin
914 views155 slides
Scaling at Namshi @ Seamless Ecommerce Dubai 2017 by
Scaling at Namshi @ Seamless Ecommerce Dubai 2017Scaling at Namshi @ Seamless Ecommerce Dubai 2017
Scaling at Namshi @ Seamless Ecommerce Dubai 2017Alessandro Nadalin
474 views34 slides
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in Dubai by
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in DubaiAccelerated Mobile Pages @ Dubytes meetup Dec 2016 in Dubai
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in DubaiAlessandro Nadalin
370 views62 slides
A tech team of ~10 @ Rocket Tech Summit 2016 in Berlin by
A tech team of ~10 @ Rocket Tech Summit 2016 in BerlinA tech team of ~10 @ Rocket Tech Summit 2016 in Berlin
A tech team of ~10 @ Rocket Tech Summit 2016 in BerlinAlessandro Nadalin
672 views44 slides
React native in the wild @ Codemotion 2016 in Rome by
React native in the wild @ Codemotion 2016 in RomeReact native in the wild @ Codemotion 2016 in Rome
React native in the wild @ Codemotion 2016 in RomeAlessandro Nadalin
1.1K views32 slides

More from Alessandro Nadalin(20)

Spa, isomorphic and back to the server our journey with js @ frontend con po... by Alessandro Nadalin
Spa, isomorphic and back to the server  our journey with js @ frontend con po...Spa, isomorphic and back to the server  our journey with js @ frontend con po...
Spa, isomorphic and back to the server our journey with js @ frontend con po...
Alessandro Nadalin642 views
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2... by Alessandro Nadalin
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...
Alessandro Nadalin914 views
Scaling at Namshi @ Seamless Ecommerce Dubai 2017 by Alessandro Nadalin
Scaling at Namshi @ Seamless Ecommerce Dubai 2017Scaling at Namshi @ Seamless Ecommerce Dubai 2017
Scaling at Namshi @ Seamless Ecommerce Dubai 2017
Alessandro Nadalin474 views
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in Dubai by Alessandro Nadalin
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in DubaiAccelerated Mobile Pages @ Dubytes meetup Dec 2016 in Dubai
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in Dubai
Alessandro Nadalin370 views
A tech team of ~10 @ Rocket Tech Summit 2016 in Berlin by Alessandro Nadalin
A tech team of ~10 @ Rocket Tech Summit 2016 in BerlinA tech team of ~10 @ Rocket Tech Summit 2016 in Berlin
A tech team of ~10 @ Rocket Tech Summit 2016 in Berlin
Alessandro Nadalin672 views
React native in the wild @ Codemotion 2016 in Rome by Alessandro Nadalin
React native in the wild @ Codemotion 2016 in RomeReact native in the wild @ Codemotion 2016 in Rome
React native in the wild @ Codemotion 2016 in Rome
Alessandro Nadalin1.1K views
Deploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin by Alessandro Nadalin
Deploying 3 times a day without a downtime @ Rocket Tech Summit in BerlinDeploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
Deploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s ... by Alessandro Nadalin
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s ...Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s ...
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s ...
Alessandro Nadalin2.8K views
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA) by Alessandro Nadalin
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)
Alessandro Nadalin4.2K views
Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA) by Alessandro Nadalin
Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA)Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA)
Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA)
Alessandro Nadalin5.6K views
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal... by Alessandro Nadalin
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...
Alessandro Nadalin6.9K views
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco by Alessandro Nadalin
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoHTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
Alessandro Nadalin3.8K views
HTTP colon slash slash: the end of the road? by Alessandro Nadalin
HTTP colon slash slash: the end of the road?HTTP colon slash slash: the end of the road?
HTTP colon slash slash: the end of the road?
Alessandro Nadalin5.2K views
The state of your own hypertext preprocessor by Alessandro Nadalin
The state of your own hypertext preprocessorThe state of your own hypertext preprocessor
The state of your own hypertext preprocessor
Alessandro Nadalin1.9K views
REST in peace @ Osidays 2011 India 11-21-2011 by Alessandro Nadalin
REST in peace @ Osidays 2011 India 11-21-2011REST in peace @ Osidays 2011 India 11-21-2011
REST in peace @ Osidays 2011 India 11-21-2011
Alessandro Nadalin1.8K views

Recently uploaded

Future of Indian ConsumerTech by
Future of Indian ConsumerTechFuture of Indian ConsumerTech
Future of Indian ConsumerTechKapil Khandelwal (KK)
22 views68 slides
Five Things You SHOULD Know About Postman by
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About PostmanPostman
36 views43 slides
Serverless computing with Google Cloud (2023-24) by
Serverless computing with Google Cloud (2023-24)Serverless computing with Google Cloud (2023-24)
Serverless computing with Google Cloud (2023-24)wesley chun
11 views33 slides
Powerful Google developer tools for immediate impact! (2023-24) by
Powerful Google developer tools for immediate impact! (2023-24)Powerful Google developer tools for immediate impact! (2023-24)
Powerful Google developer tools for immediate impact! (2023-24)wesley chun
10 views38 slides
Data Integrity for Banking and Financial Services by
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial ServicesPrecisely
25 views26 slides
virtual reality.pptx by
virtual reality.pptxvirtual reality.pptx
virtual reality.pptxG036GaikwadSnehal
14 views15 slides

Recently uploaded(20)

Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman36 views
Serverless computing with Google Cloud (2023-24) by wesley chun
Serverless computing with Google Cloud (2023-24)Serverless computing with Google Cloud (2023-24)
Serverless computing with Google Cloud (2023-24)
wesley chun11 views
Powerful Google developer tools for immediate impact! (2023-24) by wesley chun
Powerful Google developer tools for immediate impact! (2023-24)Powerful Google developer tools for immediate impact! (2023-24)
Powerful Google developer tools for immediate impact! (2023-24)
wesley chun10 views
Data Integrity for Banking and Financial Services by Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely25 views
Unit 1_Lecture 2_Physical Design of IoT.pdf by StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec12 views
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab21 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb14 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc11 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi132 views
Piloting & Scaling Successfully With Microsoft Viva by Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva

A Rocket Internet experience @ ForumPHP Paris 2013