cv.html.eex 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. <%= inspect(@basics) %>
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <title>Document</title>
  9. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" integrity="sha512NhSC1YmyruXifcj/KFRWoC561YpHpc5Jtzgvbuzx5VozKpWvQ+4nXhPdFgmx8xqexRcpAglTj9sIBWINXa8x5w==" crossorigin="anonymous" referrerpolicy="no-referrer" />
  10. <style>
  11. @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,800);
  12. @charset "utf-8";
  13. @-webkit-viewport {
  14. width: device-width;
  15. }
  16. @-moz-viewport {
  17. width: device-width;
  18. }
  19. @-ms-viewport {
  20. width: device-width;
  21. }
  22. @-o-viewport {
  23. width: device-width;
  24. }
  25. @viewport {
  26. width: device-width;
  27. }
  28. html {
  29. background-color: rgb(51, 73, 96);
  30. }
  31. * {
  32. box-sizing: border-box;
  33. }
  34. body {
  35. width: 80ch;
  36. margin-top: 2em;
  37. margin-bottom: 2em;
  38. margin-right: auto;
  39. margin-left: auto;
  40. padding: 1em;
  41. background-color: white;
  42. font-family: 'Open Sans', Arial, Tahoma;
  43. font-weight: 400;
  44. }
  45. ol,
  46. ul {
  47. list-style: none;
  48. }
  49. dl {
  50. display: grid;
  51. grid-template-columns: auto 1fr;
  52. }
  53. dt {
  54. grid-column: 1/2;
  55. }
  56. dd {
  57. grid-column: 2/3;
  58. }
  59. #basics {
  60. display: grid;
  61. justify-items: center;
  62. }
  63. #basics>h1,
  64. #basics>h2 {
  65. text-transform: uppercase;
  66. }
  67. data.name::after {
  68. content: attr(value);
  69. }
  70. data.position[lang="fr"]::after {
  71. content: 'Poste: ' attr(value);
  72. }
  73. data.position[lang="en"]::after {
  74. display: none;
  75. }
  76. dt.work_location+dd::before,
  77. data.work_location::after {
  78. content: '🏢 ' attr(value);
  79. }
  80. dt.location::after,
  81. data.location::after {
  82. content: '🏠 ' attr(value);
  83. }
  84. time::after {
  85. content: attr(datetime);
  86. }
  87. li h1,
  88. li h2,
  89. li h3 {
  90. font-weight: 500;
  91. }
  92. .achievement {
  93. font-size: 0.6em;
  94. }
  95. #skills .tools::after {
  96. content: "Outils";
  97. }
  98. </style>
  99. </head>
  100. <body>
  101. <div id="basics">
  102. <h1><%= @basics.name %></h1>
  103. <h2><%= @basics.label %></h2>
  104. <dl>
  105. <dt class="location">Lieu</dt>
  106. <dd><%= @basics.location.city %></dd>
  107. </dl>
  108. </div>
  109. <div id="work">
  110. <h1>Expériences professionnelles</h1>
  111. <ol>
  112. <%= for work <- @work do %> <li>
  113. <div>
  114. <h1><%= work.name %></h1>
  115. <dl>
  116. <dt class="position" lang="fr">Poste</dt>
  117. <dd lang="fr"><%= work.position %></dd>
  118. <dt class="start_date">Date début</dt>
  119. <dd><time class="start_date" datetime="<%= work.startDate %>"></time></dd>
  120. <dt class="end_date">Date fin</dt>
  121. <dd><time class="end_date" datetime="<%= work.endDate %>"></time></dd>
  122. <dt class="work_location"></dt>
  123. <dd>Paris</dd>
  124. </dl>
  125. </div>
  126. </li>
  127. <% end %>
  128. <li>
  129. <div>
  130. <h1>Parrot</h1>
  131. <dl>
  132. <dt class="position" lang="fr">Poste</dt>
  133. <dd lang="fr">Ingénieur logiciel embarqué</dd>
  134. <dt class="start_date">Date début</dt>
  135. <dd><time class="start_date" datetime="2014-09"></time></dd>
  136. <dt class="end_date">Date fin</dt>
  137. <dd><time class="end_date" datetime="2017-05"></time></dd>
  138. <dt class="work_location"></dt>
  139. <dd>Paris</dd>
  140. </dl>
  141. <p class="summary" lang="en">
  142. Development and architecture on Parrot's drones software (Bebop Drone, Bebop Drone 2.0, Minidrones)
  143. </p>
  144. <ul class="achievement">
  145. </ul>
  146. </div>
  147. </li>
  148. <li>
  149. <div>
  150. <h1>CEA</h1>
  151. <dl>
  152. <dt class="position" lang="fr">Poste</dt>
  153. <dd lang="fr">Ingénieur chercheur</dd>
  154. <dt class="start_date">Date début</dt>
  155. <dd><time class="start_date" datetime="2009-11"></time></dd>
  156. <dt class="end_date">Date fin</dt>
  157. <dd><time class="end_date" datetime="2014-08"></time></dd>
  158. <dt class="work_location"></dt>
  159. <dd>Saclay</dd>
  160. </dl>
  161. <p class="summary" lang="en">
  162. R&D works on PharOS, a safe embedded RTOS for automotive (now Asterios, promoted by KRONO-SAFE company), and
  163. on safe and secure hypervision
  164. </p>
  165. <ul class="achievement">
  166. <li>
  167. <h1 lang="en">Industrialization of PharOS</h1>
  168. <h2 lang="en">Micro-kernel porting on PowerPC and ARM embedded targets, and POSIX simulator</h2>
  169. <h2 lang="en">Development of a dual-core version of the micro-kernel for an automotive demonstrator</h2>
  170. <h2 lang="en">Design of a new architecture of the micro-kernel wrt portability on different hardware
  171. targets and distribution of task scheduling (centralized or distributed)</h2>
  172. <h2 lang="en">Participation to the CEA / KRONO-SAFE joint laboratory for the technological transfer</h2>
  173. </li>
  174. <li>
  175. <h1 lang="en">Prototype of an automated memory protection system for PharOS</h1>
  176. <h2 lang="en">PharOS implements spatial isolation of user tasks / system tasks</h2>
  177. <h2 lang="en">On embedded targets without a MMU, this is achieved via manual configuration of a Memory
  178. Protection Unit whose capacity is limited</h2>
  179. <h2 lang="en">This prototype used graph theory techniques to automatize generation of code that would be
  180. executed on context switches and ensure the spatial isolation</h2>
  181. </li>
  182. <li>
  183. <h1 lang="en">Safe and secure hypervision</h1>
  184. <h2 lang="en">Adaptation to a proprietary security-oriented hypervisor</h2>
  185. <h2 lang="en">CEA project leader on a collaborative project of hardware / software co-design of a secure
  186. many-core chip</h2>
  187. </li>
  188. </ul>
  189. </div>
  190. </li>
  191. </ol>
  192. </div>
  193. <div id="skills">
  194. <h1>Compétences</h1>
  195. <ul>
  196. <li>
  197. <h1>Backend</h1>
  198. <ul>
  199. <li>Elixir</li>
  200. <li>Python</li>
  201. <li>Django</li>
  202. <li>HTTP</li>
  203. <li>Rest</li>
  204. </ul>
  205. </li>
  206. <li>
  207. <h1 class="tools"></h1>
  208. <ul>
  209. <li>Git</li>
  210. <li>Linux</li>
  211. <li>Python</li>
  212. </ul>
  213. </li>
  214. </ul>
  215. </div>
  216. <div id="education">
  217. <h1>Formation</h1>
  218. <ol>
  219. <li>
  220. <h1>PLATO Créateurs</h1>
  221. <dl>
  222. <dt class="location"></dt>
  223. <dd>Versailles</dd>
  224. </dl>
  225. </li>
  226. <li>
  227. <h1>Ecole nationale supérieure de l'Electronique et de ses Applications</h1>
  228. <h2>Diplôme d'ingénieur, Mécatronique & Electronique Embarquée 2006 - 2009</h2>
  229. <p>
  230. Generalist formation in electronics : analog and digital electronics, software, signal processing, control
  231. theory, …
  232. Last-year specialization in « Mechatronics and Complex Systems », which has a focus on embedded systems,
  233. system modeling and mechanics</p>
  234. </li>
  235. </ol>
  236. </div>
  237. <div id="languages">
  238. <h1>Langues</h1>
  239. <ul>
  240. <li>Français (langue maternelle)</li>
  241. <li>English (fluent)</li>
  242. <li>Português</li>
  243. <li>Deutsch</li>
  244. </ul>
  245. </div>
  246. </body>
  247. </html>