Accueil

Curriculum Vitae façon JSON

13 mai 2016 Boulot, Développement, Perso

Pas de gros articles ces temps-ci, je sais, mais ça va venir. C’est qu’il s’agit de gros morceaux. En voici un petit en attendant.

Ces dernières années, la mode, c’est de pondre des standards à base de JSON pour tout et n’importe quoi. Vous avez JSON Schema pour valider une structure de données JSON, JSON API pour normaliser les requêtes et réponses d’une API, Composer – et son fichier de configuration – pour configurer les dépendances d’un projet PHP, GeoJSON pour normaliser l’encodage de données géographiques – j’en passe – mais également JSON Resume.

JSON Resume

Il s’agit d’une norme structurant le stockage au format JSON de toutes les informations qu’on peut trouver dans un CV. Je trouve cette initiative bougrement cool pour plusieurs raisons :

  • Plus d’excuses pour ne pas avoir de CV (en tout cas pour les développeurs) car JSON Resume apporte déjà les réponses aux questions du style « mais qu’est ce que je vais mettre dedans » sans directement s’inquiéter de l’aspect visuel ;
  • Facilement versionable via Git par exemple ;
  • Interopérable (par exemple vous pouvez créer votre propre moteur de rendu en PHP / Python / Brainfuck / whatever, ou héberger votre CV sur une plateforme qui gère JSON Resume style Represent, etc) ;
  • C’est fun de faire son CV en JSON 😉

Comment qu’on fait me direz-vous ? Vous créez dans un premier temps votre CV à la main ou via une GUI. Au final vous obtenez un JSON qui a cette gueule (j’ai nettoyé pour que ça soit lisible) :

{
  "basics": {
    "name": "Gial Ackbar",
    "label": "Amiral",
    "picture": "http://statici.behindthevoiceactors.com/behindthevoiceactors/_img/chars/char_22988.jpg",
    "email": "gackbar@rebels.sw",
    "phone": "+33123569552",
    "website": "http://www.rebels.sw/",
    "summary": "Grand meneur d'hommes (et pas que). Amateur de calamars. J'aime les frites.",
    "location": {
      "city": "Mon Calamari",
      "countryCode": "Dac",
      "region": "Mon Cala"
    },
    "profiles": [
      {
        "network": "Facebook",
        "url": "https://facebook.com/Amiral_Ackbar"
      }
    ]
  },
  "work": [
    {
      "company": "Garde Mon Calamari",
      "position": "Capitaine",
      "startDate": "1974-02-01",
      "endDate": "1978-06-30",
      "summary": "Durant la Guerre des Clones.",
      "highlights": [
        "Chargé de la sécurité du prince héritier"
      ]
    },
    {
      "company": "Flotte Rebelle",
      "position": "Amiral",
      "startDate": "1978-07-01",
      "endDate": "1978-12-31",
      "highlights": [
        "J'ai gagné la bataille d'Endor"
      ]
    },
    {
      "company": "Flotte de la Nouvelle République",
      "position": "Grand amiral",
      "startDate": "2015-02-01",
      "highlights": []
    }
  ],
  "skills": [
    {
      "name": "Commandement",
      "level": "Master",
      "keywords": [
        "Garde Mon Calamari",
        "Home One"
      ]
    }
  ]
}

Puis vous utilisez un outil en ligne de commande (basé sur Node.js 😥 ) afin de générer un fichier HTML et PDF avec le thème qui va bien. Perso la génération de PDF ne fonctionnait pas, j’ai donc utilisé ce package Node tout simple. Au final, la commande suivante fait tout :

resume export --format html --theme spartan resume.html && html-pdf resume.html resume.pdf

Ce qui donne, à gauche le HTML et à droite le PDF :

Exemple JSON Resume

Edit du 22 mai 2016 : vous pouvez également l’héberger gratuitement sur la plate-forme de JSON Resume en utilisant la commande resume publish. Vous pouvez visualiser ici le CV ci-dessus (publié en tant qu’invité, mais vous pouvez personnaliser l’URL).

Comme je vais changer de boulot dans un futur très proche (je commence ce mardi chez Dealabs), je me suis motivé à refaire mon CV au format JSON Resume. Vous pouvez consulter les différents rendus ainsi que la source par ici si ça vous intéresse.