Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang="fr">
  4. <!-- Has to be within the first 1024 bytes, hence before the <title>
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset="utf-8">
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name="viewport" content="width=device-width,initial-scale=1">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>Recrutement — David Larlet</title>
  13. <meta name="description" content="À chaque étape la ques­tion est essen­tiel­le­ment « Est-ce qu’on veut travailler ensemble  ? pourquoi  ? qu’est-ce qui pour­rait coin­cer  ? ». À l’en­tre­tien tech­nique on peut éven­tuel­le­ment ajou­ter « Où posi­tion­ner le candi­dat par rapport aux sala­riés actuels au niveau compé­tences et rému­né­ra­tion  ? ». Le reste c’est de la litté­ra­ture.">
  14. <!-- That good ol' feed, subscribe :). -->
  15. <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
  16. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  17. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
  18. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
  19. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
  20. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  21. <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
  22. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  23. <meta name="msapplication-TileColor" content="#f0f0ea">
  24. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  25. <meta name="theme-color" content="#f0f0ea">
  26. <!-- Documented, feel free to shoot an email. -->
  27. <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
  28. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  29. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  30. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  31. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  32. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  34. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  35. <script>
  36. function toggleTheme(themeName) {
  37. document.documentElement.classList.toggle(
  38. 'forced-dark',
  39. themeName === 'dark'
  40. )
  41. document.documentElement.classList.toggle(
  42. 'forced-light',
  43. themeName === 'light'
  44. )
  45. }
  46. const selectedTheme = localStorage.getItem('theme')
  47. if (selectedTheme !== 'undefined') {
  48. toggleTheme(selectedTheme)
  49. }
  50. </script>
  51. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">
  52. <article>
  53. <header>
  54. <h1>Recrutement</h1>
  55. </header>
  56. <nav>
  57. <p class="center">
  58. <a rel="prev" href="/david/2021/03/22/" title="Publication précédente : JavaScript-less">← Précédent</a> •
  59. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  60. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use>
  61. </svg> Accueil</a>
  62. • <a rel="next" href="/david/2021/03/24/" title="Publication suivante : Rareté">Suivant →</a>
  63. </p>
  64. </nav>
  65. <hr>
  66. <blockquote>
  67. <p>À chaque étape la ques­tion est essen­tiel­le­ment «&nbsp;<mark>Est-ce qu’on veut travailler ensemble &#8239;?</mark> pourquoi &#8239;? qu’est-ce qui pour­rait coin­cer &#8239;?&nbsp;». À l’en­tre­tien tech­nique on peut éven­tuel­le­ment ajou­ter «&nbsp;Où posi­tion­ner le candi­dat par rapport aux sala­riés actuels au niveau compé­tences et rému­né­ra­tion &#8239;?&nbsp;». Le reste c’est de la litté­ra­ture.</p>
  68. <p><cite><em><a href="https://n.survol.fr/n/longueur-du-processus-de-recrutement">Longueur du processus de recrutement</a></em> (<a href="/david/cache/2021/b50e973ef4e131098b91c9d99cb69a5a/">cache</a>)</cite></p>
  69. </blockquote>
  70. <p>Ma ligne de temps pour une candidature au <abbr title="Canadian Digital Service">CDS</abbr>-<abbr title="Service Numérique Canadien">SNC</abbr>&nbsp;:</p>
  71. <ul>
  72. <li><a href="/david/2021/01/22/">22&nbsp;janvier</a>&nbsp;: Yannick poste <a href="https://numerique.canada.ca/join-our-team/positions/d%C3%A9veloppeur-de-logiciel-senior-principal-e-python/">un lien</a> (<a href="/david/cache/2021/b7829aa5073173cca4ed3f4ea23e767f/">cache</a>) sur le chat interne de <a href="http://scopyleft.fr/">Scopyleft</a>&#8239;;</li>
  73. <li>25&nbsp;janvier&nbsp;: j’applique (en bon québécois) après 5&nbsp;années d’hésitations pour de nombreuses raisons — je suis rappelé dès le lendemain&#8239;;</li>
  74. <li>27&nbsp;janvier&nbsp;: rencontre avec la personne dédiée à mon recrutement (30&#8239;min), on échange un peu sur mon parcours et sur ce que je pourrais faire au <a href="https://digital.canada.ca/">CDS</a>-<a href="https://numerique.canada.ca/">SNC</a>, je me rends compte que je n’ai jamais passé d’entretien de recrutement à proprement parler — je suis rappelé le 2&nbsp;février&#8239;;</li>
  75. <li><a href="/david/2021/02/04/">4&nbsp;février</a>&nbsp;: rencontre en anglais (1&#8239;h) avec deux personnes sur les <em>Core Values</em>, j’apprécie beaucoup que ces sujets soient abordés avant même de parler de technique, on parle d’humanité, d’empathie, d’inclusion — je suis rappelé le 16&nbsp;février&#8239;;</li>
  76. <li>17&nbsp;février&nbsp;: rencontre en anglais (1&#8239;h 30&#8239;min) avec deux personnes sur les <em>Technical Skills</em>, je raconte certaines expériences, on évoque des scénarios, c’est relativement équilibré comme discussion et je ne peux m’empêcher de voir des parallèles avec ce qui se fait (ou pas) chez <a href="https://beta.gouv.fr/">betagouv</a> — je suis rappelé le 1<sup>er</sup> mars&#8239;;</li>
  77. <li>10&nbsp;mars&nbsp;: rencontre en français (1&#8239;h 30&#8239;min) avec deux personnes sur les <em>Technical Skills</em> encore une fois, j’apprécie le fait que ce ne soit <a href="https://medium.com/swlh/why-senior-engineers-hate-coding-interviews-d583d2855757">pas un test technique</a> (<a href="/david/cache/2021/cfe6353c663f062eb2e6ccfcace889ef/">cache</a>) mais un échange horizontal sur des situations plus ou moins fictives et les pistes de résolution associées&#8239;;</li>
  78. <li>23&nbsp;mars&nbsp;: courriel m’indiquant que je ne suis finalement pas retenu.</li>
  79. </ul>
  80. <p>Ce qui n’est pas explicite avec ces dates, c’est le stress diffus avec de gros <em>gros</em> pics sur une période de plusieurs mois. C’est l’incapacité à travailler lorsque j’ai un entretien dans la journée. Ce sont les doutes entre chaque session avant d’attendre un retour qui arrive plusieurs jours après. Ce sont les questionnements au moment de la préparation, les remises en question de mes capacités.</p>
  81. <p>Je comprends l’intérêt de tester la motivation dans la durée mais je me demande aussi si un tel processus ne ferme pas la porte à des personnes moins privilégiées, moins en confiance, dans une situation moins stable.</p>
  82. <p>Au cours de ce processus, la <a href="https://jacobian.org/series/unpacking-interview-questions/">série de billets</a> de Jacob m’a été d’une grande aide. Le <a href="https://eng-hiring.18f.gov/">guide de 18F</a> m’a beaucoup rassuré aussi pour avoir une idée du potentiel enchainement au complet. Et bien sûr, le <a href="https://cds-snc.github.io/technical-playbook-manuel-technique/">Technical Playbook</a> (<a href="https://cds-snc.github.io/technical-playbook-manuel-technique/fr/">version française</a>) du CDS-SNC lui-même.</p>
  83. <p>Sur une note positive, j’aurais beaucoup appris au cours de ce parcours, surtout sur moi. La relation au stress, à la confiance en moi mais aussi des réflexions sur le plus long terme. <strong>Ce que je suis prêt à changer dans ma vie</strong>, la dose de liberté que je peux/veux réduire, les libérations et les contraintes que cela m’apporterait. Au fil du temps, j’ai pu affiner mes questions/attentes aussi, afin de mieux connaître la structure et les façons de fonctionner. Je suis reconnaissant des personnes qui ont pris le temps de s’intéresser à ma candidature et qui ont été vraiment bienveillantes durant ce parcours.</p>
  84. <p>En bonus, je crois que ça me permet de travailler mon acceptation de l’échec… et du contentement. J’espère néanmoins que ce sera le premier <em>et</em> le dernier parcours de recrutement de ce type que j’aurais à faire dans ma vie. Sans aigreur, ce n’est pas un processus qui me semble être adapté à ma façon de rejoindre une structure/équipe. Je crois que j’ai besoin de <em>faire</em> et d’<em>être</em> avec les personnes car l’hypothétique résiste rarement à l’épreuve du réel. Mais peut-être que cette démarche prend trop de temps&#8239;?</p>
  85. <blockquote lang="en">
  86. <p>How many hours does it take to hire someone, from approval of the open position to their first day? It takes <strong>about 100&nbsp;person-hours</strong>, and that’s about a best-case scenario.</p>
  87. <p><cite><em><a href="https://jacobian.org/2021/mar/11/hours-to-hire/">How Long Does It Take to Hire Someone?</a></em> (<a href="/david/cache/2021/e7dd6d41e04bcbf69d3bf09bce827e4c/">cache</a>)</cite></p>
  88. </blockquote>
  89. <nav>
  90. <p class="center">
  91. <a rel="prev" href="/david/2021/03/22/" title="Publication précédente : JavaScript-less">← Précédent</a> •
  92. <a href="/david/2021/" title="Liste des publications récentes">↑ En 2021</a>
  93. • <a rel="next" href="/david/2021/03/24/" title="Publication suivante : Rareté">Suivant →</a>
  94. </p>
  95. </nav>
  96. </article>
  97. <hr>
  98. <footer>
  99. <p>
  100. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  101. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use>
  102. </svg> Accueil</a> •
  103. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  104. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-rss2"></use>
  105. </svg> Suivre</a> •
  106. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  107. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-user-tie"></use>
  108. </svg> Pro</a> •
  109. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  110. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-mail"></use>
  111. </svg> Email</a> •
  112. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  113. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-hammer2"></use>
  114. </svg> Légal</abbr>
  115. </p>
  116. <template id="theme-selector">
  117. <form>
  118. <fieldset>
  119. <legend><svg class="icon icon-brightness-contrast">
  120. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-brightness-contrast"></use>
  121. </svg> Thème</legend>
  122. <label>
  123. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  124. </label>
  125. <label>
  126. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  127. </label>
  128. <label>
  129. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  130. </label>
  131. </fieldset>
  132. </form>
  133. </template>
  134. </footer>
  135. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  136. <script>
  137. function loadThemeForm(templateName) {
  138. const themeSelectorTemplate = document.querySelector(templateName)
  139. const form = themeSelectorTemplate.content.firstElementChild
  140. themeSelectorTemplate.replaceWith(form)
  141. form.addEventListener('change', (e) => {
  142. const chosenColorScheme = e.target.value
  143. localStorage.setItem('theme', chosenColorScheme)
  144. toggleTheme(chosenColorScheme)
  145. })
  146. const selectedTheme = localStorage.getItem('theme')
  147. if (selectedTheme && selectedTheme !== 'undefined') {
  148. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  149. }
  150. }
  151. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  152. window.addEventListener('load', () => {
  153. let hasDarkRules = false
  154. for (const styleSheet of Array.from(document.styleSheets)) {
  155. let mediaRules = []
  156. for (const cssRule of styleSheet.cssRules) {
  157. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  158. continue
  159. }
  160. // WARNING: Safari does not have/supports `conditionText`.
  161. if (cssRule.conditionText) {
  162. if (cssRule.conditionText !== prefersColorSchemeDark) {
  163. continue
  164. }
  165. } else {
  166. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  167. continue
  168. }
  169. }
  170. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  171. }
  172. // WARNING: do not try to insert a Rule to a styleSheet you are
  173. // currently iterating on, otherwise the browser will be stuck
  174. // in a infinite loop…
  175. for (const mediaRule of mediaRules) {
  176. styleSheet.insertRule(mediaRule.cssText)
  177. hasDarkRules = true
  178. }
  179. }
  180. if (hasDarkRules) {
  181. loadThemeForm('#theme-selector')
  182. }
  183. })
  184. </script>
  185. </body>
  186. </html>