SlideShare a Scribd company logo
1 of 150
Download to read offline
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...
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
Then you realize that to provide
a chat system to your users
PHP might not be the best...
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
Then, as always...
SCALE.
And eventually, your lead architect
will come up and tell you
that your Java-based chat
sucks and should be
replaced with...
NODEJS
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...
...and a new frontend pops out
Another one might want to deal
with the same data...
And ask the first one to compute some data...
And once it's done, there might be the chance
we want to raise an event...
And monitor if there is a problem...
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

More Related Content

Similar to A Rocket Internet experience @ ForumPHP Paris 2013

Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014
michaelag1971
 
Reactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and Grails
Steve Pember
 
Software Development Life CyclesPresented byBrenda Reynold.docx
Software Development Life CyclesPresented byBrenda Reynold.docxSoftware Development Life CyclesPresented byBrenda Reynold.docx
Software Development Life CyclesPresented byBrenda Reynold.docx
rosemariebrayshaw
 

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

The rocket internet experience @ PHP.TO.START 2013 in Turin
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
 
Crafting Great Code
Crafting Great CodeCrafting Great Code
Crafting Great Code
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changes
 
From open source labs to ceo methods and advice by sysfera
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 sysfera
 
Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)
 
Distributed cat herding
Distributed cat herdingDistributed cat herding
Distributed cat herding
 
Dev ops implementation your go-to guide
Dev ops implementation  your go-to guide Dev ops implementation  your go-to guide
Dev ops implementation your go-to guide
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014
 
UCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction designUCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction design
 
How to Implement Domain Driven Design in Real Life SDLC
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
 
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...
Kamon Ayeva Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...
 
Importance of Documentation for programmers
Importance of Documentation for programmers Importance of Documentation for programmers
Importance of Documentation for programmers
 
Software as a craft (February, 2018)
Software as a craft (February, 2018)Software as a craft (February, 2018)
Software as a craft (February, 2018)
 
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)
On Selecting JavaScript Frameworks (Women Who Code 10/15)
 
Adopting Domain-Driven Design in your organization
Adopting Domain-Driven Design in your organizationAdopting Domain-Driven Design in your organization
Adopting Domain-Driven Design in your organization
 
Geecon10: Object Oriented for nonbelievers
Geecon10: Object Oriented for nonbelieversGeecon10: Object Oriented for nonbelievers
Geecon10: Object Oriented for nonbelievers
 
Reactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and Grails
 
Software Development Life CyclesPresented byBrenda Reynold.docx
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
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
 
Design Types
Design TypesDesign Types
Design Types
 

More from 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 ...
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s ...
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)
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)
Alessandro Nadalin
 

More from Alessandro Nadalin (20)

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...
Spa, isomorphic and back to the server our journey with js @ frontend con po...
 
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...
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...
 
Scaling at Namshi @ Seamless Ecommerce Dubai 2017
Scaling at Namshi @ Seamless Ecommerce Dubai 2017Scaling at Namshi @ Seamless Ecommerce Dubai 2017
Scaling at Namshi @ Seamless Ecommerce Dubai 2017
 
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in Dubai
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
 
A tech team of ~10 @ Rocket Tech Summit 2016 in Berlin
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
 
React native in the wild @ Codemotion 2016 in Rome
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
 
Dockerize it! @ Codemotion 2016 in Rome
Dockerize it! @ Codemotion 2016 in RomeDockerize it! @ Codemotion 2016 in Rome
Dockerize it! @ Codemotion 2016 in Rome
 
Deploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
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 ...
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 ...
 
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)
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)
 
Namshi in 2014: let's rock!
Namshi in 2014: let's rock!Namshi in 2014: let's rock!
Namshi in 2014: let's rock!
 
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)
Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA)
 
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...
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...
 
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
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
 
GraphDB in PHP @ Codemotion 03/23/2012
GraphDB in PHP @ Codemotion 03/23/2012GraphDB in PHP @ Codemotion 03/23/2012
GraphDB in PHP @ Codemotion 03/23/2012
 
REST in peace @ IPC 2012 in Mainz
REST in peace @ IPC 2012 in MainzREST in peace @ IPC 2012 in Mainz
REST in peace @ IPC 2012 in Mainz
 
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?
HTTP colon slash slash: the end of the road?
 
The state of your own hypertext preprocessor
The state of your own hypertext preprocessorThe state of your own hypertext preprocessor
The state of your own hypertext preprocessor
 
REST in peace @ Osidays 2011 India 11-21-2011
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
 
Got units? @ Osidays 2011 India 11-20-2011
Got units? @ Osidays 2011 India 11-20-2011Got units? @ Osidays 2011 India 11-20-2011
Got units? @ Osidays 2011 India 11-20-2011
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
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 future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
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
 
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?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 

A Rocket Internet experience @ ForumPHP Paris 2013