15 février 2010

Interviewing for the first time [Translate]

Après avoir bien profiter de ne pas aller bosser aujourd'hui, je vais commencer par poster ma liste de jours fériés ici, parce que ça m'avait bien servi de les avoir sur mon blog l'année dernière, et puis ça peut servir de référence à des gens qui voudraient venir, de L.A. ou de France ;-)
  • Friday, January 1, New Year’s Day
  • Monday, February 15, President’s Day
  • Monday, May 31, Memorial Day
  • Monday, July 5, Independence Day
  • Monday, September 6, Labor Day
  • Thursday, November 25, Thanksgiving Day
  • Friday, November 26, Day after Thanksgiving
  • Friday, December 24, Christmas Eve
  • + 1 quand je veux avant le 30 juin (Tuesday, March 16, Anniversaire d'Anaïs)
  • + 1 quand je veux entre le 1er juillet et le 31 décembre

Mon retour aux USA s'est bien passé, j'avais laissé quelques affaires sur place, donc je n'ai ramené que 2 sacs de France (que je viens de terminer de défaire aujourd'hui), ce qui était bien plus facile à gérer que la situation de Sean, qui déménageait toutes ses affaires après un an passé en Allemagne. Et toutes ses affaires, ça en fait des cartons dans la maison !

Un peu dans le salon...

Et pas mal dans la salle à manger ! C'est autre chose que mes 2 sacs !


Au niveau du boulot tout se passe bien, je pense être bien efficace, et ça fait vraiment du bien de bosser dans le même fuseau horaire que ses collègues ! Mardi dernier il m'est arrivé quelque chose de plutôt sympa, parce que ça prouve que je ne dois pas être le seul à penser que je suis de plus en plus efficace : en revenant de déjeuner, un collègue est venu m'annoncer que je devais faire passer un entretien d'embauche, qui avait lieu 45 minutes plus tard !

L'ingénieur qui aurait normalement dû faire passer l'entretien s'est désisté au dernier moment, donc Andy (mon tech lead) a été appelé à la rescousse, car il en fait normalement passer pas mal, mais là il a proposé que ce soit moi qui y aille à sa place, pendant que je déjeunais tranquillement, sans me douter de rien... Du coup en revenant je me suis dit que ça allait être un peu tendu : 45 minutes pour lire son CV de 3 pages, et pour préparer un entretien pour la première fois !

Quelqu'un qui postule pour un job (technique, pour les autres je ne sais pas comment ça se passe) à Casenet, après avoir été validé par le recruteur en chef (un mec pipo qui lit des CV, passe des coups de fil, roule en voiture de Jacky, et ne sait pas trop de quoi on a besoin quand il s'agit d'un poste d'ingénieur), doit passer un entretien avec 3 ingénieurs, un par un. Je suis passé en deuxième. Le premier est resté 15 minutes, le troisième est resté 20 minutes, et moi je suis resté... 50 minutes ! Mais je n'ai pas fait de zèle : c'était prévu que je reste aussi longtemps.

Andy a pensé que c'était une bonne idée que je fasse passer l'entretien car le mec postulait pour coder sur le serveur, donc devait être pas mal au taquet sur Hibernate. J'étais donc chargé de m'assurer que ses connaissances sur le sujet correspondait à ce dont on avait besoin. Andy m'avait donné quelques lignes directrices sur comment il faisait d'habitude, en mode fair-play parce que bon il savait que je n'avais jamais fait ça.

Je lui ai d'abord dit que j'étais français, pour qu'il n'y ait aucun malaise en cas d'incompréhension de l'un ou de l'autre (il avait un accent indien), puis j'ai commencé par lui poser quelques questions générales de codage en Java (mots-clefs, opérateurs, héritage, exceptions, garbage collection, ...), après lui avoir fait remarquer qu'AJAX ne devrait pas se situer dans la section intitulée Java technologies de son CV.

Je lui ai ensuite montré un bout de code et je lui ai posé des questions dessus, toujours en mode généralités. Allez, pour ceux que ça intéresse, voila le morceau de code !

public class AnObject {
    public String someProperty;

    // other fields/methods go here...

    @Override
    public boolean equals(Object other) {
        if (this == other) {
            return true;
        }
        if (!(other instanceof AnObject)) {
            return false;
        }
        AnObject anObject = (AnObject) other;
        return someProperty.equals(anObject.someProperty);
    }
}

Il s'agissait d'en expliquer des morceaux et d'améliorer la fin. Jusque là il n'était pas mauvais. Ensuite, sur ce même bout de code, je suis passé à des questions concernant la concurrence en Java : pourquoi cette classe n'est pas "thread-safe", comment la modifier pour la rendre "thread-safe", en utilisant deux manières différentes, etc... Et bien là-dessus, il a commencé à montrer ses limites.

Après ça, je lui ai posé des questions sur Hibernate, car ça nous intéressait beaucoup. Là encore, il connaissait un peu la théorie, mais il n'avait que des idées générales, alors que son CV mentionnait Hibernate pour chacun de ses postes précédents. Enfin, je lui ai donné un petit exercice en Java, à coder en partant de zéro. Il a encore une fois beaucoup parlé de ce qu'il allait faire, mais il n'a pas codé grand chose... C'est dommage, car ça n'aide pas pour le jugement.

Après tout ça, il a fallu que je remplisse un formulaire pour donner mes impressions sur le candidat, à tous les niveaux : communication, relations avec les autres, connaissances, codage, etc... En mettant une note sur 5 et des commentaires pour chacune des sections. J'ai à peu près dit que j'avais été déçu par ses connaissances sur Hibernate et sur des sujets plus avancés comme la concurrence en Java, mais aussi par le fait qu'il n'ait pas beaucoup codé sur les exercices que je lui avais donnés. Mais j'ai également dit que je pensais qu'il connaissait pas mal de choses, qu'il saurait s'adapter à l'équipe, et qu'il avait quand même de solides connaissances. J'ai donc mis un 3,5/5 à la question finale qui en gros demandait "selon vous, faut-il le recruter ?". Mais bon je pense qu'on en verra des meilleurs pour le poste, et qu'il a donc peu de chances... On verra !


En dehors du boulot, je me suis remis à courir de façon très régulière (5 fois par semaine, enfin seulement depuis cette semaine, mais c'est parti pour durer...), afin de m'entraîner pour le marathon de Paris, que je courrai avec Jonathan et Morgan le 11 avril 2010. Bon la classique, j'ai skippé les 9 premières semaines du plan d'entraînement (parce que j'étais en France, tout comme j'avais skippé les 5 premières semaines du plan d'entraînement du semi-marathon en août dernier car j'étais en vacances). Mais du coup je me retrouve directement dans les grandes distances, et ça c'est mal géré Alex !

Surtout qu'en ce moment à Boston, et bien il ne fait pas forcément très chaud, et pas forcément très beau ! Donc ce n'est pas toujours facile de ressortir le soir après le boulot pour aller courir dans le froid et certaines fois la neige ! Je me demande vraiment pourquoi le marathon de Boston a lieu en avril : Paris, je veux bien, mais Boston, ils le savent quand même que chaque année il fait froid, et que donc chaque année tous les coureurs vont en chier pour s'entraîner ! Merci les organisateurs !

Mercredi dernier par exemple, j'étais censé courir 14,5 km. Mais bon ils avaient annoncé une snow storm. Le soir, au moment de partir, la snow storm était passée mais il continuait de neiger et le vent continuait de souffler. Je suis parti courir en K-Way (ça ne m'arrive jamais), avec mon iPod sur les oreilles (pareil, jamais, mais il fallait bien trouver une distraction cette fois-ci !), et j'ai bien galéré au début. Après ça a été mieux, j'étais echauffé, et j'ai finalement couru 12,5 km ce soir-là. Enfin bon, cette fois-là c'était la pire jusqu'à présent, mais ça risque de se reproduire, pas plus tard que demain soir, avec une nouvelle snow storm annoncée !

Dimanche j'ai couru 24,7 km, pas très rapidement, mais l'important est d'augmenter le nombre de kilomètres, avec peu de récupération (j'avais couru 14,5 km la veille), pour "apprendre" aux jambes à courir malgré la fatigue musculaire, parce que c'est ce qui arrivera de toute façon après 30 km le jour du marathon ! J'étais censé en courir 30, mais je savais que je n'avais pas encore le niveau, du coup j'étais content de ce que j'avais fait. Et puis 69,2 km pour ma première semaine complète d'entraînement, c'est franchement pas mal :-) Let's keep going!

Pour terminer, on peut signaler 2 changements au niveau des améliorations du quotidien. Premièrement, une boutique qui vend des pizzas, des sandwichs et des plats de pâtes, Adam's Pizza Medford, a ouvert à deux pas de chez moi (un des rares endroits où je vais à pied et non pas en vélo), ce qui est vraiment pratique pour aller se chercher à manger après avoir couru.

Deuxième amélioration : je me suis enfin acheté des vrais gants pour faire du vélo dans le froid (j'ai toujours utilisé mes gants de course à pied jusqu'à maintenant, et je galérais bien), car ma marraine me les offre pour Noël. J'ai été faire un tour au The North Face Store de Boston un soir, et j'ai acheté des gants de ouf, en cuir, imperméables, et surtout bien chauds ! La différence le matin et le soir en vélo est phénoménale : je peux me servir de mes doigts pour utiliser mon antivol dès l'instant où je m'arrête, ce qui n'a vraiment pas toujours été le cas !

Mes nouveaux gants The North Face, marque très reprèsentée à Boston.

8 commentaires:

  1. soeurette16/2/10 11:32

    pas très tolérant en ce qui concerne les compétences en Java et autres codes incompréhensibles!! lol!
    bravo pour tes courses ;-)

    RépondreSupprimer
  2. Il attend la fin de son forfait 15 jours et il te tient au jus en ce qui concerne les jours feries. Il le sait mais pour autant il le repete, il tient un tres tres tres bon niveau la !! Attention a ce qui pourrait se passer!
    Je suis impresionne par les cartons, parce que perso je suis demenageable en moins de 2h, lavage de l'appart pas compris.
    Concernant le code :
    -> Pour le rendre Thread Safe, la solution tu veux un truc qui est propre a Java ou tu veux juste que le cas te parle de gentiment de concurrence, mutex et toute la caisse a outils ?? Ca m'interesse en fait :)
    Une reflexion : vu que tu portes tes gants chez toi pour coder, heureusement que t'as pas acheter des mouffles. Parce qu'a une epoque c'etait bien a la mode les mouffles. Par exemple, moi, si je devais m'acheter un quelconque equipement de la sorte, je partirais surement sur une paire de mouffle...

    RépondreSupprimer
  3. Pas mal la petite semaine au niveau running... :)
    Allé, enchaine les et on se retrouve en avril, et ça, ça va faire plaisir !

    Morgan

    RépondreSupprimer
  4. Mon fiston qui fait passer des entretiens d'embauche !!! Je suis carrément fière ....
    Bravo pour ton assiduité au running. Mais pas en pleine snow storm, quand même !
    Bisou ++

    RépondreSupprimer
  5. @Bouly :
    Déjà il n'a pas trop su me dire pourquoi cette classe n'est pas thread-safe. C'est parce que 'someProperty' est 'public', et donc accessible par n'importe qui n'importe quand.

    Ensuite j'attendais de lui qu'il me donne deux façons de rendre cette classe thread-safe:

    1. La rendre immutable en changeant 'someProperty' pour qu'elle soit 'private' et 'final', et en ajoutant un constructeur avec un argument de type String, pour fixer la valeur de 'someProperty' une bonne fois pour toutes, sans qu'elle puisse être modifiée.

    2. Mais si on veut pouvoir modifier 'someProperty', alors là il nous faut du verrou et tout le bazar, c'est-à-dire qu'il faut que 'someProperty' soit 'private', et qu'il faut ajouter un getter et un setter, tous les deux 'synchronized' (le mot-clef pour assurer un accès exclusif en Java).

    Voila tout ce qu'il ne m'a pas dit !

    RépondreSupprimer
  6. JAVA,je savais que c'était une ile ou une danse et je ne comprends pas ce que tu peux en faire dans un entretien d'embauche!C'est toi qui doit savoir.Je vois que tu te prépares à fond pour le marathon,ça je le comprends bien.Bon courage.

    RépondreSupprimer
  7. Moi non plus j'ai pas pigé un mot sur l'entretien.
    Bon courage pour l'entrainement.
    Ici ça commence a se réchauffer.

    RépondreSupprimer
  8. Hehe ca me rappelle un vieux projet tout pourri realise avec le Rouanne dans le cours de Laurent Pautet. Une sombre histoire de boites aux lettres qui s'envoyaient des messages.
    Ca fait plaisir de voir le retour de la section geek :)

    RépondreSupprimer

1. Ça arrive que Blogger foire sur l'ajout des commentaires. Faites toujours un Ctrl+A, Ctrl+C de votre commentaire avant de cliquer sur "Publier".

2. Pour ceux qui n'ont pas de compte Google, choisissez le profil "Nom/URL" (vous pouvez laisser le champ URL vide).