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 25KB

4 jaren geleden
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669
  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,minimum-scale=1,initial-scale=1,shrink-to-fit=no">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>Artisan — David Larlet</title>
  13. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  14. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons/apple-touch-icon.png">
  15. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons/favicon-32x32.png">
  16. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons/favicon-16x16.png">
  17. <link rel="manifest" href="/manifest.json">
  18. <link rel="mask-icon" href="/static/david/icons/safari-pinned-tab.svg" color="#5bbad5">
  19. <link rel="shortcut icon" href="/static/david/icons/favicon.ico">
  20. <meta name="apple-mobile-web-app-title" content="David Larlet">
  21. <meta name="application-name" content="David Larlet">
  22. <meta name="msapplication-TileColor" content="#da532c">
  23. <meta name="msapplication-config" content="/static/david/icons/browserconfig.xml">
  24. <meta name="theme-color" content="#f0f0ea">
  25. <!-- That good ol' feed, subscribe :p. -->
  26. <link rel=alternate type="application/atom+xml" title=Feed href="/david/log/">
  27. <!-- Canonical URL for SEO purposes -->
  28. <link rel="canonical" href="https://larlet.fr/david/pro/">
  29. <style>
  30. /* http://meyerweb.com/eric/tools/css/reset/ */
  31. html, body, div, span,
  32. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  33. a, abbr, address, big, cite, code,
  34. del, dfn, em, img, ins,
  35. small, strike, strong, tt, var,
  36. dl, dt, dd, ol, ul, li,
  37. fieldset, form, label, legend,
  38. table, caption, tbody, tfoot, thead, tr, th, td,
  39. article, aside, canvas, details, embed,
  40. figure, figcaption, footer, header, hgroup,
  41. menu, nav, output, ruby, section, summary,
  42. time, mark, audio, video {
  43. margin: 0;
  44. padding: 0;
  45. border: 0;
  46. font-size: 100%;
  47. font: inherit;
  48. vertical-align: baseline;
  49. }
  50. /* HTML5 display-role reset for older browsers */
  51. article, aside, details, figcaption, figure,
  52. footer, header, hgroup, menu, nav, section { display: block; }
  53. body { line-height: 1; }
  54. blockquote, q { quotes: none; }
  55. blockquote:before, blockquote:after,
  56. q:before, q:after {
  57. content: '';
  58. content: none;
  59. }
  60. table {
  61. border-collapse: collapse;
  62. border-spacing: 0;
  63. }
  64. /* http://practicaltypography.com/equity.html */
  65. /* https://calendar.perfplanet.com/2016/no-font-face-bulletproof-syntax/ */
  66. /* https://www.filamentgroup.com/lab/js-web-fonts.html */
  67. @font-face {
  68. font-family: 'EquityTextB';
  69. src: url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff2') format('woff2'),
  70. url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff') format('woff');
  71. font-weight: 300;
  72. font-style: normal;
  73. font-display: swap;
  74. }
  75. @font-face {
  76. font-family: 'EquityTextB';
  77. src: url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff2') format('woff2'),
  78. url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff') format('woff');
  79. font-weight: 300;
  80. font-style: italic;
  81. font-display: swap;
  82. }
  83. @font-face {
  84. font-family: 'EquityTextB';
  85. src: url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff2') format('woff2'),
  86. url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff') format('woff');
  87. font-weight: 700;
  88. font-style: normal;
  89. font-display: swap;
  90. }
  91. @font-face {
  92. font-family: 'ConcourseT3';
  93. src: url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff2') format('woff2'),
  94. url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff') format('woff');
  95. font-weight: 300;
  96. font-style: normal;
  97. font-display: swap;
  98. }
  99. /* http://practice.typekit.com/lesson/caring-about-opentype-features/ */
  100. body {
  101. /* http://www.cssfontstack.com/ Palatino 99% Win 86% Mac */
  102. font-family: "EquityTextB", Palatino, serif;
  103. background-color: #f0f0ea;
  104. color: #07486c;
  105. font-kerning: normal;
  106. -moz-osx-font-smoothing: grayscale;
  107. -webkit-font-smoothing: subpixel-antialiased;
  108. text-rendering: optimizeLegibility;
  109. font-variant-ligatures: common-ligatures contextual;
  110. font-feature-settings: "kern", "liga", "clig", "calt";
  111. }
  112. pre, code, kbd, samp, var, tt {
  113. font-family: 'TriplicateT4c', monospace;
  114. }
  115. em {
  116. font-style: italic;
  117. color: #323a45;
  118. }
  119. strong {
  120. font-weight: bold;
  121. color: black;
  122. }
  123. nav {
  124. background-color: #323a45;
  125. color: #f0f0ea;
  126. display: flex;
  127. justify-content: space-around;
  128. padding: 1rem .5rem;
  129. }
  130. nav:last-child {
  131. border-bottom: 1vh solid #2d7474;
  132. }
  133. nav a {
  134. color: #f0f0ea;
  135. }
  136. nav abbr {
  137. border-bottom: 1px dotted white;
  138. }
  139. h1 {
  140. border-top: 1vh solid #2d7474;
  141. border-bottom: .2vh dotted #2d7474;
  142. background-color: #e3e1e1;
  143. color: #323a45;
  144. text-align: center;
  145. padding: 5rem 0 4rem 0;
  146. width: 100%;
  147. font-family: 'ConcourseT3';
  148. display: flex;
  149. flex-direction: column;
  150. }
  151. h1.single {
  152. padding-bottom: 10rem;
  153. }
  154. h1 span {
  155. position: absolute;
  156. top: 1vh;
  157. left: 20%;
  158. line-height: 0;
  159. }
  160. h1 span a {
  161. line-height: 1.7;
  162. padding: 1rem 1.2rem .6rem 1.2rem;
  163. border-radius: 0 0 6% 6%;
  164. background: #2d7474;
  165. font-size: 1.3rem;
  166. color: white;
  167. text-decoration: none;
  168. }
  169. h2 {
  170. margin: 4rem 0 1rem;
  171. border-top: .2vh solid #2d7474;
  172. padding-top: 1vh;
  173. }
  174. h3 {
  175. text-align: center;
  176. margin: 3rem 0 .75em;
  177. }
  178. hr {
  179. height: .4rem;
  180. width: .4rem;
  181. border-radius: .4rem;
  182. background: #07486c;
  183. margin: 2.5rem auto;
  184. }
  185. time {
  186. display: bloc;
  187. margin-left: 0 !important;
  188. }
  189. ul, ol {
  190. margin: 2rem;
  191. }
  192. ul {
  193. list-style-type: square;
  194. }
  195. a {
  196. text-decoration-skip-ink: auto;
  197. text-decoration-thickness: 0.05em;
  198. text-underline-offset: 0.09em;
  199. }
  200. article {
  201. max-width: 50rem;
  202. display: flex;
  203. flex-direction: column;
  204. margin: 2rem auto;
  205. }
  206. article.single {
  207. border-top: .2vh dotted #2d7474;
  208. margin: -6rem auto 1rem auto;
  209. background: #f0f0ea;
  210. padding: 2rem;
  211. }
  212. article p:last-child {
  213. margin-bottom: 1rem;
  214. }
  215. p {
  216. padding: 0 .5rem;
  217. margin-left: 3rem;
  218. }
  219. p + p,
  220. figure + p {
  221. margin-top: 2rem;
  222. }
  223. blockquote {
  224. background-color: #e3e1e1;
  225. border-left: .5vw solid #2d7474;
  226. display: flex;
  227. flex-direction: column;
  228. align-items: center;
  229. padding: 1rem;
  230. margin: 1.5rem;
  231. }
  232. blockquote cite {
  233. font-style: italic;
  234. }
  235. blockquote p {
  236. margin-left: 0;
  237. }
  238. figure {
  239. border-top: .2vh solid #2d7474;
  240. background-color: #e3e1e1;
  241. text-align: center;
  242. padding: 1.5rem 0;
  243. margin: 1rem 0 0;
  244. font-size: 1.5rem;
  245. width: 100%;
  246. }
  247. figure img {
  248. max-width: 250px;
  249. max-height: 250px;
  250. border: .5vw solid #323a45;
  251. padding: 1px;
  252. }
  253. figcaption {
  254. padding: 1rem;
  255. line-height: 1.4;
  256. }
  257. aside {
  258. display: flex;
  259. flex-direction: column;
  260. background-color: #e3e1e1;
  261. padding: 1rem 0;
  262. border-bottom: .2vh solid #07486c;
  263. }
  264. aside p {
  265. max-width: 50rem;
  266. margin: 0 auto;
  267. }
  268. /* https://fvsch.com/code/css-locks/ */
  269. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  270. font-size: 1rem;
  271. line-height: calc( 1.5em + 0.2 * 1rem );
  272. }
  273. h1 {
  274. font-size: 1.9rem;
  275. line-height: calc( 1.2em + 0.2 * 1rem );
  276. }
  277. h2 {
  278. font-size: 1.6rem;
  279. line-height: calc( 1.3em + 0.2 * 1rem );
  280. }
  281. h3 {
  282. font-size: 1.35rem;
  283. line-height: calc( 1.4em + 0.2 * 1rem );
  284. }
  285. @media (min-width: 20em) {
  286. /* The (100vw - 20rem) / (50 - 20) part
  287. resolves to 0-1rem, depending on the
  288. viewport width (between 20em and 50em). */
  289. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  290. font-size: calc( 1rem + .6 * (100vw - 20rem) / (50 - 20) );
  291. line-height: calc( 1.5em + 0.2 * (100vw - 50rem) / (20 - 50) );
  292. margin-left: 0;
  293. }
  294. h1 {
  295. font-size: calc( 1.9rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  296. line-height: calc( 1.2em + 0.2 * (100vw - 50rem) / (20 - 50) );
  297. }
  298. h2 {
  299. font-size: calc( 1.5rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  300. line-height: calc( 1.3em + 0.2 * (100vw - 50rem) / (20 - 50) );
  301. }
  302. h3 {
  303. font-size: calc( 1.35rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  304. line-height: calc( 1.4em + 0.2 * (100vw - 50rem) / (20 - 50) );
  305. }
  306. }
  307. @media (min-width: 50em) {
  308. /* The right part of the addition *must* be a
  309. rem value. In this example we *could* change
  310. the whole declaration to font-size:2.5rem,
  311. but if our baseline value was not expressed
  312. in rem we would have to use calc. */
  313. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  314. font-size: calc( 1rem + .6 * 1rem );
  315. line-height: 1.5em;
  316. }
  317. p, li, pre, details {
  318. margin-left: 3rem;
  319. }
  320. h1 {
  321. font-size: calc( 1.9rem + 1.5 * 1rem );
  322. line-height: 1.2em;
  323. }
  324. h2 {
  325. font-size: calc( 1.5rem + 1.5 * 1rem );
  326. line-height: 1.3em;
  327. }
  328. h3 {
  329. font-size: calc( 1.35rem + 1.5 * 1rem );
  330. line-height: 1.4em;
  331. }
  332. figure img {
  333. max-width: 500px;
  334. max-height: 500px;
  335. }
  336. }
  337. figure.unsquared {
  338. margin-bottom: 1.5rem;
  339. }
  340. figure.unsquared img {
  341. height: inherit;
  342. }
  343. @media print {
  344. body { font-size: 100%; }
  345. a:after { content: " (" attr(href) ")"; }
  346. a, a:link, a:visited, a:after {
  347. text-decoration: underline;
  348. text-shadow: none !important;
  349. background-image: none !important;
  350. background: white;
  351. color: black;
  352. }
  353. abbr[title] { border-bottom: 0; }
  354. abbr[title]:after { content: " (" attr(title) ")"; }
  355. img { page-break-inside: avoid; }
  356. @page { margin: 2cm .5cm; }
  357. h1, h2, h3 { page-break-after: avoid; }
  358. p3 { orphans: 3; widows: 3; }
  359. img {
  360. max-width: 250px !important;
  361. max-height: 250px !important;
  362. }
  363. nav, aside { display: none; }
  364. }
  365. ul.with_columns {
  366. column-count: 1;
  367. }
  368. @media (min-width: 20em) {
  369. ul.with_columns {
  370. column-count: 2;
  371. }
  372. }
  373. @media (min-width: 50em) {
  374. ul.with_columns {
  375. column-count: 3;
  376. }
  377. }
  378. ul.with_two_columns {
  379. column-count: 1;
  380. }
  381. @media (min-width: 20em) {
  382. ul.with_two_columns {
  383. column-count: 1;
  384. }
  385. }
  386. @media (min-width: 50em) {
  387. ul.with_two_columns {
  388. column-count: 2;
  389. }
  390. }
  391. .gallery {
  392. display: flex;
  393. flex-wrap: wrap;
  394. justify-content: space-around;
  395. }
  396. .gallery figure img {
  397. margin-left: 1rem;
  398. margin-right: 1rem;
  399. }
  400. .gallery figure figcaption {
  401. font-family: 'ConcourseT3'
  402. }
  403. footer {
  404. font-family: 'ConcourseT3';
  405. display: flex;
  406. flex-direction: column;
  407. border-top: 3px solid white;
  408. padding: 4rem 0;
  409. background-color: #07486c;
  410. color: white;
  411. }
  412. footer > * {
  413. max-width: 50rem;
  414. margin: 0 auto;
  415. }
  416. footer a {
  417. color: #f1c40f;
  418. }
  419. footer .avatar {
  420. width: 200px;
  421. height: 200px;
  422. border-radius: 50%;
  423. float: left;
  424. -webkit-shape-outside: circle();
  425. shape-outside: circle();
  426. margin-right: 2rem;
  427. padding: 2px 5px 5px 2px;
  428. background: white;
  429. border-left: 1px solid #f1c40f;
  430. border-top: 1px solid #f1c40f;
  431. border-right: 5px solid #f1c40f;
  432. border-bottom: 5px solid #f1c40f;
  433. }
  434. </style>
  435. <h1>
  436. <span><a id="jumper" href="#jumpto" title="Un peu perdu ?">?</a></span>
  437. Artisan
  438. </h1>
  439. <section>
  440. <article>
  441. <p>J’aime mon métier et les rencontres qu’il génère. J’aime les discussions qu’il anime et les défis techniques qu’il surmonte. J’aime mes outils et apprendre de nouvelles techniques.</p>
  442. <p>Je prends du plaisir à coder et à ce que <a href="/david/code/" title="Accès à mes projets open-source">mon code soit utile</a>. Je prends du plaisir à confronter mes réalisations et à ce que mon code soit beau.</p>
  443. <p>Je partage mon savoir et mes opinions techniques. Je partage mon savoir-faire et la vision que j’ai de mon métier. Je partage mes expériences.</p>
  444. <p><strong>Voilà pourquoi je me considère comme étant un artisan.</strong></p>
  445. </article>
  446. <figure class="image">
  447. <img src="/static/david/pro/artisan.jpg" alt="" />
  448. </figure>
  449. <article>
  450. <h2><a href="http://scopyleft.fr/">Scopyleft</a> - L’expérience collaborative et éthique (6 ans et plus)</h2>
  451. <p><strong>J’<a href="/david/pro/accompagnement/" title="Activité d’accompagnement">accompagne</a> des équipes dans leur changement de culture afin de produire des outils <a href="/david/pro/produits-essentiels/" title="Qu’est-ce qu’un produit essentiel ?">utiles et essentiels</a>.</strong></p>
  452. <p>J’ai co-créé une coopérative web fondée sur des valeurs qui facilite les projets et intervient en amont pour en simplifier le contenu.</p>
  453. <h3>Expérience acquise (en cours)</h3>
  454. <ul>
  455. <li>travailler à plusieurs réduit les performances (au début) ;</li>
  456. <li>réfléchir à plusieurs élargit les perspectives ;</li>
  457. <li>la collaboration se cultive.</li>
  458. </ul>
  459. <h2><a href="http://beta.gouv.fr/">Beta.gouv</a> - Startup d’État Zam (1an et plus)</h2>
  460. <p><strong>J’ai allégé la charge de préparation par le gouvernement du débat parlementaire.</strong></p>
  461. <p>Travail en équipe distribuée sur un produit inter-ministériel.</p>
  462. <h3>Expérience acquise (en cours)</h3>
  463. <ul>
  464. <li>autant je ne crois pas aux ingénieurs 10x, autant pour les équipes ça me semble maintenant possible ;</li>
  465. <li>le passage à l’échelle est difficile dans l’administration.</li>
  466. </ul>
  467. <h2><a href="http://beta.gouv.fr/">Beta.gouv</a> - Startup d’État API Drone (6 mois)</h2>
  468. <p><strong>J’ai expérimenté l’implémentation technique d’un arrêté préalablement à sa publication afin de valider sa faisabilité.</strong></p>
  469. <p>Développement de notre propre pico-framework Python, Redis, PostGIS.</p>
  470. <h3>Expérience acquise</h3>
  471. <ul>
  472. <li>travailler en équipe de manière efficace à distance et en asynchrone ;</li>
  473. <li>devoir jongler entre les industriels, la société civile et les délais législatifs est épuisant ;</li>
  474. <li>transmettre les connaissances accumulées lors de la conception d’un produit est difficile si non anticipé.</li>
  475. </ul>
  476. <h2><a href="http://etalab.gouv.fr/">Etalab</a> - Moderniser l’action publique via l’Opendata (3 ans)</h2>
  477. <p><strong>J’ai maintenu et amélioré le portail <a href="https://www.data.gouv.fr/">data.gouv.fr</a> qui met à disposition et référence les données issues de la puissance publique, de la société civile et du secteur professionnel.</strong></p>
  478. <p>Développement utilisant Flask et VueJS mais aussi MongoDB, Redis, Celery, Webpack, Ansible, Sentry, Jenkins, Docker, etc.</p>
  479. <h3>Expérience acquise</h3>
  480. <ul>
  481. <li>l’innovation au sein de l’État est possible ;</li>
  482. <li>le passage à l’échelle d’un projet est difficile, autant techniquement que dans ses valeurs ;</li>
  483. <li>travailler à distance requiert de partager la même vision d’un produit.</li>
  484. </ul>
  485. <h2><a href="http://www.capstan.fr/">Capstan Avocats</a> - Collaborer sur le long terme (8 ans !)</h2>
  486. <p><strong>J’ai conçu un outil de gestion documentaire stratégique pour l’activité du groupe afin de centraliser leurs sources d’informations.</strong></p>
  487. <p>Développement et suivi d’une application web utilisant Django avec des problématiques comme la pérennité des documents/URLs et leur indexation. Adaptation à un métier propice aux changements.</p>
  488. <h3>Expérience acquise</h3>
  489. <ul>
  490. <li>une collaboration sur le long terme se bâtit sur une confiance réciproque et un respect mutuel ;</li>
  491. <li>un code non entretenu est rapidement un code mort ;</li>
  492. <li>l’adaptation au changement est la clé d’un produit utilisé.</li>
  493. </ul>
  494. <h2><a href="https://www.mozilla.org/">Mozilla</a> - Performances et équipe internationale (1 an et demi)</h2>
  495. <p><strong>J’ai participé à l’amélioration de la qualité d’un site populaire pour réduire les bugs et au développement de la solution de paiement mobile pour acheter des applications.</strong></p>
  496. <p>Au sein d’une équipe de 6 personnes anglophones, j’ai développé la solution de paiement du <em>Marketplace</em> de Firefox OS à travers plusieurs applications Django puis conçu une implémentation de référence pour les fournisseurs de paiement en <em>NodeJS</em>.</p>
  497. <p>J’ai ensuite participé à l’amélioration de la qualité du site à fort traffic (1 milliard de requêtes par jour) des <a href="https://addons.mozilla.org/">extensions de Mozilla Firefox</a>.</p>
  498. <h3>Expérience acquise</h3>
  499. <ul>
  500. <li>travailler avec une équipe internationale en asynchrone ;</li>
  501. <li>améliorer la qualité et la performance de mon code Python et JavaScript ;</li>
  502. <li>utiliser un workflow de travail permettant les revues de code.</li>
  503. </ul>
  504. <h2><a href="http://altarika.com/">Altarika</a> - Hypermedia et interfaces (1 an)</h2>
  505. <p><strong>J’ai interfacé un moteur de recherche destiné aux entreprises pour faciliter les interactions avec les (ré)utilisateurs.</strong></p>
  506. <p>Fondé sur un moteur de recherche multilingue existant, j’ai conçu une application web et une API hypermedia (RESTful) en Python.</p>
  507. <h3>Expérience acquise</h3>
  508. <ul>
  509. <li>exploration des diverses solutions hypermedia pour rendre une API <em>découvrable</em> ;</li>
  510. <li>travailler sur un produit demande un alignement constant avec le responsable de la solution ;</li>
  511. <li>les interfaces sont une composante non négligeable de l’innovation qui réside dans un produit.</li>
  512. </ul>
  513. <h2>Webrise - L’indépendance au quotidien (4 ans)</h2>
  514. <p><strong>J’ai créé mon entreprise pour avoir l’indépendance de choisir mes projets en accord avec mes convictions et mon rythme de vie.</strong></p>
  515. <p>Développement de multiples projets et conseil stratégique pour diverses structures (Libération, Barrière Poker, Capstan Avocats, Communauté d’Agglomération du Pays Châtelleraudais, SuperToinette, SFR, Temesis, La Médiathèque de Belgique, etc).</p>
  516. <h3>Expérience acquise</h3>
  517. <ul>
  518. <li>travailler seul est un mode de fonctionnement qui me permet d’être performant ;</li>
  519. <li>les tensions éthiques et administratives sont difficiles à arbitrer sans être accompagné ;</li>
  520. <li>il est possible de gagner plus en travaillant plus au détriment de tout le reste.</li>
  521. </ul>
  522. <h2>Mixin - Faire partie d’une start-up (1 an)</h2>
  523. <p><strong>J’ai accompagné une entreprise dans la conception de son produit afin de lancer un produit innovant.</strong></p>
  524. <p>Mixin était un agenda social qui devait amener du fun et de la légèreté dans votre emploi du temps. J’ai collaboré pendant un an avec l’équipe suisse pour développer le produit, concevoir les interfaces et pivoter à de nombreuses reprises. Le projet n’a finalement pas eu le succès escompté.</p>
  525. <h3>Expérience acquise</h3>
  526. <ul>
  527. <li>il est difficile de lever des fonds et cela prend du temps ;</li>
  528. <li>il faut concevoir un produit pour les utilisateurs et non pour les <em>early-adopters</em> ;</li>
  529. <li>le développement d’une <em>start-up</em> nécessite d’avoir une équipe au même endroit.</li>
  530. </ul>
  531. <h2><a href="http://www.sibio.fr/">Sibio</a> - Réécriture d’un existant (1 an)</h2>
  532. <p><strong>J’ai aidé une entreprise à s’orienter vers des solutions web et à simplifier son produit afin d’étendre son marché.</strong></p>
  533. <p>Éditrice d’une solution pour la gestion des échantillons dans les laboratoires développée sous forme de client lourd Java, j’ai mené à bien la transition vers une application Web utilisant Django/Python. Cette réécriture est passée par des interviews et tests clients pendant une année. J’ai encadré deux personnes durant ce projet.</p>
  534. <h3>Expérience acquise</h3>
  535. <ul>
  536. <li>la réécriture d’un existant est un travail de longue haleine ;</li>
  537. <li>les interactions permanentes avec des utilisateurs sont primordiales pour la conception d’un produit ;</li>
  538. <li>participer à la stratégie d’une entreprise me motive.</li>
  539. </ul>
  540. </article>
  541. </section>
  542. <nav id="jumpto">
  543. <p>
  544. <a href="/david/pro/">Profil professionnel</a> (<a href="http://larlet.com">en anglais</a>) | <a href="/david/blog/2018/cout-site/">Coût d’un site</a> | <a href="/david/pro/devis/">Non-demande de devis ?</a>
  545. </p>
  546. </nav>
  547. <footer>
  548. <div>
  549. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  550. <p>
  551. Bonjour/Hi!
  552. Je suis <a href="/david/" title="Profil public">David&nbsp;Larlet</a>, je vis actuellement à Montréal et j’alimente cet espace depuis 15 ans. <br>
  553. Si tu as apprécié cette lecture, n’hésite pas à poursuivre ton exploration. Par exemple via les <a href="/david/blog/" title="Expériences bienveillantes">réflexions bimestrielles</a>, la <a href="/david/stream/2019/" title="Pensées (dés)articulées">veille hebdomadaire</a> ou en t’abonnant au <a href="/david/log/" title="S’abonner aux publications via RSS">flux RSS</a> (<a href="/david/blog/2019/flux-rss/" title="Tiens c’est quoi un flux RSS ?">so 2005</a>).
  554. </p>
  555. <p>
  556. Je m’intéresse à la place que je peux avoir dans ce monde. En tant qu’humain, en tant que membre d’une famille et en tant qu’associé d’une coopérative. De temps en temps, je fais aussi des <a href="https://github.com/davidbgk" title="Principalement sur Github mais aussi ailleurs">trucs techniques</a>. Et encore plus rarement, <a href="/david/talks/" title="En ce moment je laisse plutôt la place aux autres">j’en parle</a>.
  557. </p>
  558. <p>
  559. Voici quelques articles choisis :
  560. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  561. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  562. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  563. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  564. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  565. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  566. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  567. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  568. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  569. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  570. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  571. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  572. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  573. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  574. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  575. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  576. </p>
  577. <p>
  578. On peut <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">échanger par courriel</a>. Si éventuellement tu souhaites que l’on travaille ensemble, tu devrais commencer par consulter le <a href="http://larlet.com">profil dédié à mon activité professionnelle</a> et/ou contacter directement <a href="http://scopyleft.fr/">scopyleft</a>, la <abbr title="Société coopérative et participative">SCOP</abbr> dont je fais partie depuis six ans. Je recommande au préalable de lire <a href="/david/blog/2018/cout-site/" title="Attention ce qui va suivre peut vous choquer">combien coûte un site</a> et pourquoi je suis plutôt favorable à une <a href="/david/pro/devis/" title="Discutons-en !">non-demande de devis</a>.
  579. </p>
  580. <p>
  581. Je ne traque pas ta navigation mais mon
  582. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  583. conserve des logs d’accès.
  584. </p>
  585. </div>
  586. </footer>
  587. <script type="text/javascript">
  588. ;(_ => {
  589. const jumper = document.getElementById('jumper')
  590. jumper.addEventListener('click', e => {
  591. e.preventDefault()
  592. const anchor = e.target.getAttribute('href')
  593. const targetEl = document.getElementById(anchor.substring(1))
  594. targetEl.scrollIntoView({behavior: 'smooth'})
  595. })
  596. })()
  597. </script>