I WANT TO BE
A MORE
EFFICIENT
DEVELOPER
TALK BY
@WAXZCE – QUENTIN ADAM
AT APIDAYS BERLIN 2014
MY DAY TO DAY WORK :
CLEVER CLOUD, MAKE YOUR
APP RUN ALL THE TIME
And learn a lot of things about your code, apps, and good/bad design…
KEEP YOUR APPS ONLINE. MADE WITH
NODE.JS, SCALA, JAVA, RUBY, PHP,
PYTHON, GO…
DEVELOPERS ARE MORE
AND MORE CREATIVE
DEVS LEADS A LOT OF
BUSINESS
SHIP QUICKLY WORKING
APPS
VALUE IS
ON PEOPLE
MARKET KNOWLEDGE, TEAM
MANAGEMENT, PRODUCT OWNERSHIP…
HOW MAKE
THEM BE
MORE
EFFICIENT ?
DEVELOPER
HAPPINESS
IS KEY
HAPPY PEOPLE
PRODUCE BETTER WORK
OPTIMIZE CODE AND PROCESS TO BE
HAPPY OF WHAT YOU ARE DOING
OPEN SOURCES WORK
PROCESSES ARE BETTER
PEOPLE WRITING
CODE BECAUSE
THEY JUST WANT
TO DO IT
THINK ABOUT
BECAUSE THEY CAN SOLVE
PROBLEM OF THE WORLD
OPEN SOURCES SHOW A
VERY SUCCESSFUL
TRACK RECORDS
BUILD A
FRAMEWORK TO
PRODUCE CODE
EASILY AND
SHOW IT EASILY
RELEASE
EARLY
RELEASE
OFTEN
YOU HAVE TO REMOVE ALL
DISTURBING / DISTRACTING
ACTIONS
FOCUS ON YOUR OWN
ADDED VALUE
BE FOCUS WHEN YOU
CODE
RELEASE
EARLY
DEPLOY
OFTEN
DEPLOYMENT HAS TO
BE EASY !
GIT PUSH
<YOUR_FAVORITE_HOSTING_
PROVIDER> MASTER
GIT PUSH <YOUR_FAVORITE_
CONTINUOUS_INTEGRATION_
SYSTEM> MASTER
ALL THE TEAM HAVE TO
BE READY TO DEPLOY
YOU HAVE
TO DEPLOY
YOUR APP
SEVERAL
TIMES A DAY
SPLIT YOUR
APP
SPLIT THE CODE : MODULES
SMALLEST CODE BASE POSSIBLE
FOR EACH PROGRAM
EACH MODULE
IS VIEWED AS
A SERVICE BY
OTHERS
HTTP OR AMQP COMUNICATION
OR AS A CLIENT
USE EVENT BROKER TO
MODULARIZE YOUR APP
• AMQP
• Celery
• 0MQ
• Redis
• JMS
• Some case : hadoop, akka…
• …
CRON is not an event queue
FOCUS ON THE BEST
TOOL TO SOLVE YOUR
PROBLEM
DON’T BE THAT GUY
DO NOT USE A
TECHNOLOGY BECAUSE
YOU <3 IT OR BECAUSE
IT’S HYPE : USE IT
BECAUSE IT FITS YOUR
NEEDS
BALANCE YOUR LEARNING CURVE WITH
THE TIME SAVED
DO NOT CREATE MONSTERS
SCALE YOUR TEAM
MODULARIZE YOUR TEAM
LEAR NEW THINGS &
INNOVATE
{P, DB, S} aaS
USE OPS FREE SOLUTION TO LEARN
AND START
USE ONLINE
DATABASE / BE
READY TO TEST
IN JUST A FEW
MINUTES
NO NEED TO TRASH YOUR COMPUTER
Statelessness everywhere
AVOID HOST SPECIFIC THINGS
DO NOT USE FILE SYSTEM TO
STORE SOMETHING
• It doesn’t scale
• It’s hard to expose as a service
• It’s a SPOF
• There is ALWAYS a better option
TIME WILL TRASH YOUR CODE
THE POWER OF
REWRITE EVERYTHING
SMALL CODE BASE + MULTIPLE
TECHNOLOGIES =
LEGACY KILLER
REWRITE IS QUICK BECAUSE
YOU KNOW ALL THE PROBLEMS
BEFORE IT HAPPENS
HAPPY DEVELOPER WORKS BETTER :
ARE YOU HAPPY WHEN YOU START
YOUR IDE?
VERSION EVERYTHING !
Data & API
USE HTTP
AND ALL THE
GOODNESS
IT BRING ON
YOUR APP
200 OK
BODY : { TYPE :
ERROR,
MESSAGE : I
CAN’T FIND THE
FILE }
REALLY ?
WRITE EVERYTHING
PUT SOME
TOOLS IN
YOUR CODE
USE BUILD MANAGER
LET PEOPLES FREE TO
CHOOSE THEIR IDE
USE A CONFIGURATION
MANAGER / LIBRARY
LEARN GIT “LIKE A BOSS”
I MEAN : USE GIT WITH CLI
FOCUS ON CODE
READABILITY
AVOID EARLY PERFORMANCES
OPTIMIZATION
YOU HAVE TO
THINK IT’S
YOUR FIRST
DAY ON THE
CODE BASE
DO YOU WORK LIKE THIS ?
EXAMPLE :
HOW DOES
CLEVER
CLOUD WORK
?
SOME OF
TECHNOLOGY WE USE
C
ALL TOGETHER USING HTTP & AMQP
THE FAST DEVELOPER WAY
• Statup
weekends
• Hackatons
• Coding dojo
• Lean startup
machine
I’m @waxzce on twitter
I’m the CEO of
A PaaS provider, give it a try
;-)
THX FOR LISTENING
& QUESTIONS TIME

I want to be an efficient developper - APIdays Berlin 2014