I want to be a more efficient developer

If you like this presentation – show it...

Slide 0

I want to be a more efficient developer Talk by @waxzce – Quentin ADAM At mix it 2014

Slide 1

My day to day work : Clever Cloud, make your app run all the time

Slide 2

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…

Slide 3

Developers are more and more creative

Slide 4

Devs leads a lot of business

Slide 5

Ship quickly working apps

Slide 6

Value is on people Market knowledge, team management, product ownership…

Slide 7

How make them be more efficient ?

Slide 8

Developer happiness is key

Slide 9

Happy people produce better work

Slide 10

Optimize code and process to be happy of what you are doing

Slide 11

Open sources work processes are better

Slide 12

People writing code because they just want to do it Think about

Slide 13

Because they can solve problem of the world

Slide 14

Build a framework to produce code easily and show it easily

Slide 15

Release early release often

Slide 16

Release early Deploy often

Slide 17

Focus on your own added value

Slide 18

Deployment has to be easy !

Slide 19

Be focus when you code

Slide 20

Git push <your_favorite_hosting_ provider> master

Slide 21

Git push <your_favorite_ Continuous_integration_ system> master

Slide 22

Or not ;-)

Slide 23

All the team have to be ready to deploy

Slide 24

You have to deploy your app several times a day

Slide 25

Split your app

Slide 26

Split the code : modules

Slide 27

Smallest code base possible for each program

Slide 28

Each module is viewed as a service by others http or amqp comunication Or as a client

Slide 29

Use event broker to modularize your app AMQP Celery 0MQ Redis JMS Some case : hadoop, akka… … CRON is not an event queue

Slide 30

Focus on the best tool to solve your problem

Slide 31

Don’t be that guy

Slide 32

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

Slide 33

Do not create monsters

Slide 34

Lear new things & innovate

Slide 35

{P, DB, S} aaS Use ops free solution to learn and start

Slide 36

Use online database / be ready to test in just a few minutes No need to trash your computer

Slide 37

Make all deployments async module by module

Slide 38

Statelessness everywhere Avoid host specific things

Slide 39

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

Slide 40

Scale your team modularize your team

Slide 41

SOA is back

Slide 42

Time will trash your code

Slide 43

The power of rewrite everything

Slide 44

Small code base + multiple technologies = legacy killer

Slide 45

Rewrite is quick because you know all the problems before it happens

Slide 46

Happy developer works better : Are you happy when you start your IDE?

Slide 47

Version Everything ! Data & API

Slide 48

Nosql json data need version

Slide 49

Use http and all the goodness it bring on your app

Slide 50

200 OK body : { type : error, message : i can’t find the file }

Slide 51

Really ?

Slide 52

Put some tools in your code

Slide 53

Use build manager

Slide 54

Let peoples free to choose their IDE

Slide 55

use a configuration manager / library

Slide 56

Learn git “like a boss”

Slide 57

I mean : use git with CLI

Slide 58

Focus on code readability

Slide 59

Avoid early performances optimization

Slide 60

You have to think it’s your first day on the code base

Slide 61

And something will make you happy

Slide 62

a documentation slim as possible

Slide 63

Write everything

Slide 64

Do you work like this ?

Slide 65

Example : how does clever cloud work ?

Slide 66

Some of technology we use C

Slide 67

All together using http & amqp

Slide 68

Slide 69

The fast developer way Statup weekends Hackatons Coding dojo Lean startup machine

Slide 70

I’m @waxzce on twitter I’m the CEO of A PaaS provider, give it a try ;-) Thx for listening & questions time