Développeu(se/r) Java sénior #wanted

Vous êtes fan de Sherlock Holmes, Dr House et McGyver car tel un détective, vous êtes un authentique problem solver. Vous n’hésitez pas à vous salir les orteils dans du PHP sans framework, du PL/SQL intestable même si votre coeur appartient toujours à Sun heu Oracle.
Pragmatique sans tomber dans le quick and dirty, les grandes refontes ne vous font même pas peur.

Justement, l’équipe ATeam recherche un développeur expérimenté pour décommissionner la base de données historique de La Centrale. Votre mission : débrancher les adhérences métiers en vous appuyant sur les technologies d’Amazon.

Cette mission implique de voyager avec des features teams différentes. Cette transversalité nécessite un bon relationnel et une bonne capacité d’adaptation. Comme dans tout voyage, vous allez côtoyer beaucoup de technologies et de façons de travailler différentes. Pour vous, il n’y a pas de bon ou mauvais langage, ils ne constituent qu’un moyen pour satisfaire un besoin, qu’il n’est pas toujours simple d’identifier mais que vous prenez plaisir à creuser.

Voici un échantillon des technologies utilisées :

  • Java
  • Grails
  • Scala/Play
  • PHP
  • DynamoDB, MySQL, REDIS
  • Angular JS
  • Stack Amazon : EC2, S3, SQS, Lambdas
  • Git

Situé en plein de cœur de Paris, CarBoat Media est le leader français des contenus auto, moto et bateau dans le domaine de la petite annonce et de l’éditorial. Notre histoire a plus de quarante ans : elle a débuté en 1969 avec la naissance de la Centrale des Particuliers. Nos sites comptent 14 millions de visiteurs uniques par mois.

Pour tout renseignement, contacter florence.chabanois arobase carboatmedia.fr

Développeu(r/se) Java de 20 à 99 ans #wanted

Vous aimez livrer de la valeur rapidement au client ? Vous savez que tant qu’une fonctionnalité n’est pas en production et utilisée, les développements n’ont pas de valeur ?  Vous êtes adepte du proverbe « Fool me once, shame on you. Fool me twice shame on me » et ne tolérez pas qu’un bug puisse vous narguer une deuxième fois sans se faire capturer dans des tests automatiques ?

En bon agiliste, vous n’avez peur ni des nouvelles technologies, ni du changement.

Situé en plein de cœur de Paris entre Opéra et la gare Saint-Lazare, CarBoat Media est le leader français des contenus auto, moto et bateau dans le domaine de la petite annonce et de l’éditorial. Notre histoire a plus de quarante ans : elle a débuté en 1969 avec la naissance de la Centrale des Particuliers. Nos sites comptes 14 millions de visiteurs uniques par mois. En parallèle, nous continuons à nous remettre en question pour nous améliorer et faciliter la vie de nos clients.

Voici quelques exemples de projets que vous seriez amené à mener pour la feature team EDI-Photos :

  • Refonte du système d’intégration des photos EDI (presqu’un million par jour)
  • Evolutions sur le module photo du site LaCentrale.
  • Participation aux rituels agiles pour améliorer l’existant.
  • Garant de la qualité des livrables et des données (revue de code, tests automatiques)

Pour accomplir ces missions, vous serez armé des technologies suivantes :

  • Java
  • Scala/Play
  • MongoDB, MySQL, REDIS
  • Angular JS
  • Stack Amazon : EC2, S3, SQS
  • Méthode Kanban
  • Git

Ce projet contient des problématiques fortes de performances. Le sens du service est important et le pragmatisme essentiel.

Ce poste est ouvert à des juniors comme à des profils plus expérimentés.

Pour tout renseignement, contacter florence.chabanois arobase carboatmedia.fr

Comment j’ai vécu mon premier Hackathon

Qui veut aller à un hackathon ?

Quand on nous a parlé du hackathon je me suis dit ‘c’est pas pour moi, c’est pour les gens qui dorment avec leur ordinateur’.

Après quelques jours de réflexion je me suis dit que moi-même je passe quand même environ 16 heures par jour sur l’ordinateur (le temps cumulé entre le travail et à la maison), que moi aussi je suis curieux,  et que moi aussi j’aime bien faire ceci cela (la preuve c’est que j’ai toujours un projet perso en cours sur lequel je bosse sur mon temps libre).

Après avoir discuté avec un collègue, nous nous sommes convaincu l’un l’autre que ce serait intéressant d’y aller. Quelques jours après on était 4 à vouloir y participer. Cool. Vu que le hackathon se déroulerait en Allemagne, c’était mieux d’y aller à plusieurs et d’éviter de se retrouver tout seul parmi d’autres.On avait à peu près 2 semaines devant nous pour « nous préparer ».On se disait qu’il fallait se préparer, préparer des trucs, faire de la recherche sur Internet, etc.

Les deux semaines écoulées, résultat : rien préparé 🙂

Finalement on s’est dit qu’il vallait mieux y aller l’esprit libre, et comme  nous avons souvent des idées pour créer un projet, ça devrait bien se passer.

En même temps on se demandait si les autres participants seraient meilleurs que nous et si on n’allait pas rentrer la tête baissée.

Jour J : Le départ

Nous arrivons là bas, là-bas, c’est Berlin, ville historique du groupe Axel Springer

On voit déjà pas mal de monde installé, en train de bosser sur je ne sais pas quoi. En les voyant, nos craintes ont disparu. On se disait, on peut quand même faire quelque chose de raisonnable, voir plus que ça.

La motivation était double : la satisfaction personnelle et le fait qu’on représentait notre société au sein du groupe, et que des gens ont pensé que nous avions le niveau pour y faire face, donc il fallait assurer.

En attendant nous avions discuté entre nous et échangé vite fait avec un autre participant.

Heure H : présentation du concours

Après la présentation, on était toujours ensemble mais on était que 4 développeurs. On savait qu’il fallait avoir plusieurs profils dans l’équipe afin de pouvoir faire quelque chose de sympa et joli.

On commence à se demander ce qu’on pouvait faire comme projet. Pas trop d’idée géniale à ce moment là. Par chance, 2 filles nous abordent : elles ont une idée et cherchent des développeurs. Après avoir échangé 3 minutes, on dit oui, on va faire équipe ensemble.

Toute la soirée on a alors essayé de se mettre d’accord sur ce qu’on nous allions réellement essayer de faire. Avec la barrière de la langue (des allemands et des français se parlant en anglais) et avec notre manque d’enthousiasme sur l’idée en elle-même, à minuit nous étions un peu paumés.

Mais après une bonne nuit de sommeil, au matin en se retrouvant dans les locaux, l’idée nous paraissait meilleure que la veille. On a commencé à 9 heures et sauf les pauses pour manger, nous avons bossé non stop. C’était du boulot mais dans une très bonne ambiance.

Nous 4, on se connaissait déjà étant collègues dans la même société, mais on avait pas réellement pas bossé ensemble. Durant cette journée on s’est bien amusé : il y avait de la bonne nourriture, des jus de toute type, de la bière.

En fin de journée on avait quelque chose de présentable dont nous étions plutôt fiers :

On était fatigués mais on s’était bien amusé en travaillant.

Le lendemain matin : présentation des projets

On se retrouve de nouveau tous les 6. On était plutôt en forme, de bonne humeur.

Quelques heures après, nous et tous les autres participants on était présents dans une grande salle, au dernier étage d’une grande tour appartenant au groupe. Très sympa la salle, belle vue, des petits fours.

Après que chaque équipe ait présenté son projet devant une grande salle bien remplie (et donc avec le stress qui viens avec) nous apprenons que nous n’avons pas gagné.

Tant pis. On n’avait pas perdu, c’est juste qu’on n’avait pas gagné. Nuance. Mieux que ça : on a vécu une super expérience, et on sait que l’année prochaine on fera mieux (oui, on ira aussi l’année prochaine pour prendre notre revanche ;)).

On rentrant au travail le lendemain, beaucoup nous ont félicité. C’est très plaisant 🙂

A refaire.

Corneliu Croitoru, développeur CBM.

L'équipe Sportify

L’équipe Sportify

Quand nos annonces prennent l’R : Nettoyage

Cette article fait suite au premier article sur la découverte des données.

Après avoir identifié nos données, l’étape suivante dans tous projets de machine learning est de “nettoyer la donnée”, ceci afin de la rendre plus facilement exploitable et de supprimer les cas incohérents ou trop marginaux (outliers)

cars <- read.csv("finalcars.csv", sep=",", header=TRUE, stringsAsFactors = FALSE)

stringsAsFactors = FALSE nous permet de désactiver la conversion automatique en Factor, cela nous permet d’éviter des optimisations intempestives et notamment de conserver le millésime (yearModel) en tant qu’entier

  • En visualisant le résumé du dataframe, nous observons des NA que nous supprimons :
summary(cars)
##     brand              model             version         
##  Length:258320      Length:258320      Length:258320     
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
##                                                          
##                                                          
##   yearModel           mileage             gearbox             energy      
##  Length:258320      Length:258320      Min.   :     0.0   Min.   : 1.000  
##  Class :character   Class :character   1st Qu.:     2.0   1st Qu.: 2.000  
##  Mode  :character   Mode  :character   Median :     2.0   Median : 2.000  
##                                        Mean   :    13.7   Mean   : 1.905  
##                                        3rd Qu.:     2.0   3rd Qu.: 2.000  
##                                        Max.   :999999.0   Max.   :11.000  
##                                        NA's   :123        NA's   :7       
##      doors           powerDin         priceNew           price        
##  Min.   : 0.000   Min.   :    -1   Min.   :      0   Min.   :      0  
##  1st Qu.: 4.000   1st Qu.:    90   1st Qu.:  17200   1st Qu.:   9600  
##  Median : 5.000   Median :   111   Median :  24000   Median :  13990  
##  Mean   : 4.314   Mean   : 65529   Mean   :  26400   Mean   :  17384  
##  3rd Qu.: 5.000   3rd Qu.:   149   3rd Qu.:  31000   3rd Qu.:  20500  
##  Max.   :11.000   Max.   :999999   Max.   :1076400   Max.   :4190000  
##  NA's   :1

Lire la suite

Quand nos annonces prennent l’R

Cette présentation fait suite au tools in action que nous avons donné à Devoxx cette année. L’objectif étant de montrer l’intérêt de R pour découvrir, nettoyer puis enrichir nos données avec des approches de type machine learning.

Chez Car&Boat Media, grâce au site de dépot d’annonces de véhicules d’occasions lacentrale.fr, nous avons à notre disposition plus de 280 000 annonces en publication. Nous souhaitons dans cette présentation vous montrer ce que l’on peut faire très facilement avec R pour découvrir, manipuler et jouer avec la donnée en partant d’un simple dump de ces annonces.

Pour illustrer cela de façon concrète nous allons élaborer un modèle simple de prédiction de prix de vente d’un véhicule (algo supervisé), un équivalent de la cote automobile.

Ensuite nous formerons des groupes de données proches en utilisant un algo non supervisé cette fois (kmeans) pour définir des catégories de véhicules.

Partie 1 : découverte du dataset

Nous avons obtenu un dump au format CSV de toutes les annonces en cours de publication, nous allons l’explorer pour déterminer ce que nous allons pouvoir en faire.

  • Chargement du fichier csv :
cars <- read.csv("finalcars.csv", sep=",", header=TRUE)

Nous créeons ainsi le dataframe cars, structure composée de lignes et de colonnes, que l’on peut assimiler à une table en BDD relationelle.

  • A quoi ressemblent nos premières lignes :
head(cars)

##    brand model                                   version yearModel mileage
## 1 ABARTH   500      1.4 16V T-JET 595 50EME ANNIVERSAIRE      2014     500
## 2 ABARTH   500                      1.4 16V T-JET ABARTH      2012   46750
## 3 ABARTH   500                   1.4 16V TURBO T-JET 140      2012   52250
## 4 ABARTH   500 1.4 16V TURBO T-JET 160CH 595 TURISMO BVR      2012    8800
## 5 ABARTH   500 1.4 16V TURBO T-JET 160CH 595 TURISMO BVR      2013   17850
## 6 ABARTH   500 1.4 16V TURBO T-JET 160CH 595 TURISMO BVR      2013    6911
##   gearbox energy doors powerDin priceNew price
## 1       1      1     3   999999        0 31990
## 2       2      1     3      134        0 13500
## 3       2      1     2   999999        0 14500
## 4       1      1     3      140        0 20690
## 5       1      1     2      140        0 19990
## 6       1      1     2      160        0 21980

Lire la suite

Galerie

Idées pour votre management visuel

Avec la diffusion de l’agilité au sein de Car&Boat Media, de plus en plus d’équipes et de personnes passent au management visuel.

Tout d’abord qu’est-ce que le management visuel ? Le principe est simple : utiliser des outils visuels permettant d’améliorer la qualité et la quantité d’information échangée au sein de l’équipe et avec ceux qui l’entourent.

Nous allons partager ici, quelques idées mise en place sur les différents plateaux de CarBoat.

Le control chart

control chart

control chart

Le control chart permet de suivre la date d’entrée et de sortie d’une tâche et ainsi cibler celles qui ont été particulièrement longues à réaliser.

On peut ensuite analyser les causes de ces retards et proposer des actions afin d’améliorer cela.

Il permet aussi de visualiser en combien de temps des tâches similaires peuvent être réalisées.

Vous pouvez utiliser en parallèle, un système, afin de mettre en avant les tâches qui prennent plus de temps qu’envisagé (par exemple ici des gommettes flashy).

Mise en avant des retards

Definition of Done (DoD)

Le DoD permet d’amener de la transparence aux travaux de l’équipe. Avoir une définition claire des « terminés » aide les équipes à travailler ensemble plus étroitement.

Definition of Done

Definition of Done

Le DoD est généralement une liste claire et concise des exigences.

La définition ne doit pas être modifiée pendant un sprint (Scrum) ou cycle de travail (Kanban), mais doit changer périodiquement afin de refléter les améliorations l’équipe.

A noter que potentiellement chaque étape du flux a sa propre DoD.

Liste équipe / référents

Afin d’apporter de la visibilité aux personnes extérieures à l’équipe, vous pouvez réaliser une affiche mettant en avant les différents membres de votre équipe.

DSCN1236 - Copie

Idem pour visualiser les personnes en charge que vos coéquipiers peuvent consulter, une liste des différents référents avec lesquels vous travaillez.

Code couleur et légende

Le management visuel passe donc par l’utilisation d’outil visuel. Nombreux sont donc ceux, à créer un tableau permettant le suivi de leurs travaux.

tableau Dans cette optique, il est important de garder un tableau clair, que d’autres personnes puissent appréhender rapidement sans entrer forcément dans les détails.

Pour cela il peut être important d’avoir un code couleur et de le mettre en avant.

Esthétique

Un board joli, c’est un board qui attire et qui donne envie aux personnes de lire son contenu. N’hésitez pas à profiter de votre tableau blanc pour dessiner un beau flux de travail :

FluxVitrines

Ou bien à faire du tuning en rajoutant des éléments visuels (ici l’équipe référence ses versions avec un nom de pokemon) :

BoardOwi

L’astuce du jour

Certains étapes nécessitent de rajouter de l’information sur un ticket (par exemple une date de début ou une date de fin), afin de bien montrer que cette étape nécessite cette action, collez (avec de la patafix) sur votre board un stylo. C’est simple et ainsi personne n’oublie.

StyloBoard

Galerie

Foire AGILE du 8 juillet 2014   Fin de la 1ère saison !

Avec une très grande participation, cette première foire AGILE a été un vrai succès. Elle a permis de nous rassembler en grand nombre autour de la transformation débutée ces derniers mois.

Les groupes de travail ont souhaité, avec cet événement, associer l’ensemble de l’entreprise pour échanger sur la transformation et diffuser la culture et les bonnes pratiques Agiles.

Pour les différents groupes, cela a été également l’occasion de clôturer la première saison de leur travaux commencés quelques mois plus tôt.

Mission Diffusion

Nathaniel, évangéliste AGILE

 

Pour le groupe de travail en charge de la diffusion de l’agilité, que j’avais fraîchement rejoins le matin même, cette foire a été un évènement important.

L’équipe a présenté sa mission : diffuser l’agilité et ses bonnes pratiques. Et dans le même temps, elle l’a mise en pratique !

 

 

Voici ce que nous avons eu la chance de vous présenter dans l’espace Lounge :

Poster Scrum by CARAVAN

SCRUM by CARAVAN

Scrum by CARAVAN

Un exemple de Framework AGILE, avec la mise en application de la méthodologie SCRUM dans l’équipe CARAVAN.

 

 

 

 

Les BBL, Brown Bag Lunches

Les BBL sont des initiatives visant à partager la connaissance en permettant à un expert de venir parler d’un sujet technique le midi dans une entreprise demandeuse, en échange d’un repas ( typiquement un sandwich ) . http://www.brownbaglunch.fr

LEGO Game

LEGO Game

 

Exemple : LEGO GAME

Lors de ce BBL, notre expert est venu présenter des principes de l’agilité sous la forme d’une participation à un jeu de LEGO ! Le but : simuler une méthodologie agile avec des LEGO

 

Inscriptions BBL

Inscriptions BBL

La foire a été l’occasion de s’inscrire au BBL à venir. Planning des BBL en cours :

  • courant août : Atelier KANBAN avec Nathaniel
  • 16 sept : Kanban pour les nuls avec Mr. Lours

Merci pour vos inscriptions ! Plus d’information diffusionagile@carboatmedia.fr

 

Board pour feedback

20140708_Carboat_Saison02_FoireAgile (58)

Feedback board

Avec ce board, vous avez pu nous faire part de vos idées ou de vos problèmes avec l’agilité, vos envies de mieux échanger sur les bonnes pratiques, leurs points faibles et leurs points forts, d’étendre la pratique à tous les services, de se former…

Merci pour vos retours !

N’hésitez pas à continuer à nous faire part de vos feedback : diffusionagile@carboatmedia.fr 

 

Dépliant Memento Scrum

Memento SCRUM

Memento SCRUM

 

 

Merci à Thierry Leriche pour son mémo SCRUM à destination de l’équipe !

 

 

 

http://thierry-leriche-dessirier.developpez.com/tutoriels/general/memento-scrum-destination-equipe/

Nous espérons avoir permis la découverte de l’agilité et de quelques une des ses pratiques, et également de vous avoir donner des moyens de les diffuser à votre tour.

Quelques minute après la foire, les équipes de travail n’ont pas dérogé à leur approche agile…

Rétrospective

Rétrospective

… et le champ de foire a laissé place à une réunion de rétrospective pour faire le bilan et commencer à préparer la prochaine saison qui s’annonce tout aussi motivante.

 

 

 

Saison 02

Pour notre groupe “diffusion”, cette nouvelle saison sera l’occasion de nouveaux objectifs. Par exemple, de dresser avec vous un état des lieux de l’adoption de l’agilité au sein de la société, ou encore et bien sûr de continuer à vous inviter à participer à de nouveaux BBL !

La pollenisation continue !

diffusionagile@carboatmedia.fr