-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfrench.tex
139 lines (126 loc) · 16.6 KB
/
french.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
%% french.tex
%% Copyright 2015-2020,2022 Gaël PORTAY <[email protected]>
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% The Current Maintainer of this work is Gaël PORTAY.
%
% This work consists of the files french.tex and profile.png.
\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{casual}
\moderncvcolor{blue}
\usepackage[scale=0.75]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\name{Gaël}{PORTAY}
\title{Consultant en Logiciels Libres}
\email{[email protected]}
\homepage{www.portay.io}
\social[linkedin]{gaël-portay-80399360}
\social[github]{gportay}
\photo[64pt][0.4pt]{profile.png}
\begin{document}
\makecvtitle
\section{Expériences}
\subsection{Professionnelles}
\cventry{Novembre 2018--Juin 2022}{Développeur Logiciel Senior}{Collabora}{Montréal}{}{Collabora est une entreprise internationale de consultants spécialisés dans le \textit{Logiciel Libre}. Je fais parti de l'équipe Core de la branche ingénierie qui est en charge d'analyser les problèmes des clients et de concevoir des solutions en utilisant à la fois les technologies issues des \textit{logiciels libres} et l'expertise technique de l'entreprise.
\begin{itemize}
\item Investigation et débogage du noyau Linux
\begin{itemize}
\item J'ai analysé la diminution de performances de transferts sur le bus \textit{SPI} avec \textit{kernelshark}, suite à une mise à jour du noyau Linux et de son sous système \textit{SPI}.
\item J'ai participé à la résolution de deux blocages systèmes du pilote \textit{V4L2} sur la plateforme i.MX6 ; lorsque le flux vidéo est stoppé puis redémarré immédiatement.
\item J'ai analysé un inter blocage dans l'allocation de mémoire continue \textit{CMA} sur l'architecture \textit{ARM} ; lorsqu'une tâche effectue une allocation de mémoire continue entraînant la migration de page sur d'autres tâches pouvant elles-mêmes nécessiter de nouvelles allocations de mémoire continue.
\end{itemize}
\item J'ai participé à la création d'une distribution dédiée au jeu vidéo basée sur \textit{Arch Linux}
\begin{itemize}
\item J'ai modifié et créé des paquets avec \textit{makepkg} via les fichiers \textit{PKGBUILD}, et j'ai mis en place le dépôt pour le gestionnaire de paquets \textit{pacman} en développant des scripts \textit{Shell} utilisant \textit{repo-add} et \textit{repo-remove}.
\item J'ai créé des images disques \textit{UEFI} ainsi que ses artefacts de mise à jour \textit{RAUC} et \textit{casync}.
\item J'ai participé à la mise en place la configuration de l'installateur multiplateforme \textit{calamares} et j'ai développé plusieurs plugins spécifiques en \textit{Python}.
\item J'ai participe à la création de scripts \textit{Shell} et des conteneurs \textit{Docker} pour l'automatisation des tâches de constructions de paquets et d'images sur \textit{Jenkins} puis \textit{GitLab} CI/CD.
\item J'ai effectué la redistribution des contributions aux logiciels libres (\textit{systemd}, \textit{plymouth}, \textit{grub-debian}, \textit{debian-installer}, \textit{dracut}, \textit{calamares}, \textit{RAUC}, \textit{casync}...).
\end{itemize}
\item Création de plugins \textit{fwupd}/\textit{LVFS} pour la mise à jour de micro logiciels de périphériques
\begin{itemize}
\item J'ai ajouté le support pour la mise à jour des hubs \textit{USB} Genesys Logic et des moniteurs \textit{USB-C} HP.
\item J'ai ajouté le support pour la mise à jour des souris «~esport~» Steelseries via la connections sans-fil \textit{2.4G} et la connections filaire \textit{USB}.
\end{itemize}
\end{itemize}
}
\cventry{Mars 2016--Aujourd'hui}{Consultant en Logiciel Libres}{Savoir-faire Linux}{Montréal}{}{Savoir-faire Linux est une entreprise de consultants spécialisés dans le \textit{Logiciel Libre}. Je fais parti de l'équipe Solution Industrielle qui est en charge de développer les \textit{Systèmes Embarqués Linux} qui équipent les objets connectés de nos clients.
\begin{itemize}
\item J'ai développé un framework en C++ 11 d'échange de données entre différents objets connectés. J'ai utilisé \textit{ZeroMQ} comme bus de communication et \textit{Protobuf} comme format pour les données échangées. J'ai développé un système de plugin basé sur \textit{ld}. Le code est couvert en utilisant \textit{gcov}.
\item J'ai mis à jour le logiciel embarqué d'un objet connecté vers la dernière version de \textit{Yocto}. J'ai migré le système d'init vers systemd. J'ai résolu les problèmes bas niveau et système.
\item J'ai personnalisé l'interface développée en \textit{LuCI} d'un périphérique réseau basé sur \textit{OpenWRT}. J'ai compilé et configuré le démon docker pour faire fonctionner des images \textit{Docker} sur ce périphérique.
\end{itemize}
}
\cventry{Juillet 2010--Septembre 2015}{Ingénieur Linux Embarqué}{Overkiz SAS, groupe Somfy}{Archamps}{}{Overkiz est une entreprise spécialisée dans le «~\textit{Cloud Computing}~» pour la domotique. Elle propose une solution qui connecte les objets de la maison à \textit{Internet} (\textit{IoT}). Elle se compose d'une passerelle qui fait le lien entre les périphériques domotiques et ses serveurs. Il est possible de piloter ses objets de la maison grâce à son smartphone et des services web. J'ai fait partie de l'équipe qui développe le système Linux embarqué de la passerelle.
\begin{itemize}
\item J'étais coresponsable de la distribution Linux embarquée. J’intégrais des outils issus de la communauté du logiciel libre.
\item J'étais responsable du déploiement des mises à jour du logiciel embarqué.
\item J’ai mis en place le système de «~Build automatisé~» Yocto. Cet outil construit l’intégralité du système embarqué de la passerelle. Yocto permet de gagner de nombreuses heures à l’équipe tout en minimisant les erreurs liées à des interventions humaines lors de la construction de nouvelles versions.
\item J'ai développé des frameworks internes et des applications ajoutant la prise en charge de nouveaux protocoles domotiques. J’ai été en charge du développement de l’application responsable du maintien de la connexion entre la passerelle et le serveur. Les frameworks et les applications sont développés en C++.
\item J'ai développé des modules noyaux et ajouté le support de deux nouvelles cartes électroniques développées par notre équipe dans le noyau Linux.
\end{itemize}
}
\subsection{Stages}
\cventry{2009}{Stage de Master}{LC Mobility}{Australie}{}{LC Mobility est une entreprise spécialisée dans l’accueil de doctorants étrangers. J’ai effectué une étude de marché sur la mobilité des étudiants australiens, en Australie.}
\cventry{2008}{Stage Ingénieur de 3e année}{Freescale Semiconductors}{Toulouse}{}{J'ai été responsable du développement du pilote de charge de batterie de la plateforme de téléphonie mobile de Freescale (ARM-11). Ce téléphone mobile est alimenté par une batterie Li-ion. Il fonctionne sous Nokia S60 (Symbian OS). J'ai développé le pilote en C++ en utilisant les mécanismes propres à Symbian.}
\cventry{2007}{Stage Ingénieur de 2e année}{Sagem Monetel}{Valence}{}{J’ai été chargé d’optimiser l’emprunte mémoire (dynamique et statique) d'une application C embarquée dans un terminal de paiement bancaire. J’ai utilisé les fichiers listing et mapping générés par le compilateur libre GNU/GCC pour localiser les parties de code utilisant le plus de ressources mémoires. J’ai réduit la taille de l’application de plus de 30 \%.}
\cventry{2004}{Stage Technicien de 2de année de DUT}{Sagem Monetel}{Valence}{}{J’ai eut la charge de porter une application C embarquée vers le compilateur libre GNU/GCC. J’ai également développé un outil de test de performance afin de démontrer la puissance du terminal de paiement durant une transaction bancaire.}
\subsection{Contributions Open-Source}
\cvitem{\href{https://github.com/buildroot/buildroot/commits?author=gportay}{Buildroot}}{J'ai ajouté le paquet QtWebEngine et la configuration Raspberry Pi 3 (64-bits).}
\cvitem{\href{https://git.pengutronix.de/cgit/barebox/log/?qt=grep&q=PORTAY}{Barebox}}{J'ai modifié l'implémentation de readline pour prévenir l'affichage de caractères non imprimables et de boucler à l'infinie. J'ai corrigé le déréférencement d'un pointeur NULL qui causait un crash.}
\cvitem{\href{https://github.com/pengutronix/genimage/commits?author=gportay}{genimage}}{J'ai ajouté une propriété à hdimage pour configurer la position de la partition étendue enregistrée dans le Master Boot Record.}
\cvitem{\href{https://github.com/lighttpd/lighttpd1.4/commits?author=gportay}{Lighttpd}}{J'ai ajouté le support des CRLs pour la vérification du certificat client et ignoré les erreurs de vérification du certificat client si l'option n'est pas forcée.}
\cvitem{\href{https://github.com/jackaudio/jack2/commits?author=gportay}{jack2}}{J'ai initialisé des variables membres non initialisées qui entraînaient des lectures invalides lorsqu'il était exécuté sous valgrind.}
\cvitem{\href{https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=grep&q=PORTAY}{Noyau Linux}}{J'ai ajouté deux nouvelles plateformes basées sur des SoC d'Atmel (device-tree).}
\cvitem{\href{https://github.com/linux4sam/at91bootstrap/commits?author=gportay}{Atmel at91bootstrap}}{J'ai ajouté le support d'UBI. Le but est d'améliorer les mises à jour critiques vis-à-vis d'éventuelles coupures de courant. Les volumes critiques, tels que les noyaux ou les bootloaders, sont dupliqués et stockés dans des volumes UBI statiques. Le bootstrap vérifie simplement l'intégrité du volume en utilisant le bit de mise à jour présent dans l'en-tête UBI.}
\cvitem{\href{https://github.com/bagder/curl/commits?author=gportay}{CURL}}{J'ai mis à jour libcurl afin qu'il soit compatible avec la dernière version des API de la librairie PolarSSL. J'ai également corrigé un bogue avec le mécanisme de polling qui entraînait un timeout lors de la négociation SSL avec le serveur distant.}
\cvitem{\href{http://git.yoctoproject.org/cgit/cgit.cgi/opkg/log/?qt=grep&q=PORTAY}{OPKG}}{J'ai amélioré l'intégration de CURL en autorisant certaines options liées à libcurl dans le fichier de configuration. J'ai également corrigé des comportements inattendus.}
\cvitem{\href{https://github.com/mkj/dropbear/commits?author=gportay}{Dropbear}}{J'ai corrigé les warnings de compilation du projet.}
\subsection{Divers}
\cventry{2000--2006}{Emplois saisonniers}{Plusieurs employeurs}{}{}{}
\newpage
\section{Éducation}
\cventry{2008--2009}{Master MAE}{IAE}{Grenoble}{\textit{Bac +5}}{Année spéciale de Master en Management des Administrations et des Entreprises.}
\cventry{2005--2008}{3I}{Polytech'Grenoble}{Grenoble}{\textit{Bac +5}}{Diplôme d’ingénieur en Informatique Industrielle et Instrumentation.}
\cventry{2004--2005}{Licence TIC}{Université de Savoie}{Chambéry}{\textit{Bac +3}}{2e année de Licence en Technologie de l’Information et de la Communication.}
\cventry{2002--2004}{DUT ISI}{IUT de Valence}{Valence}{\textit{Bac +2}}{Diplôme universitaire de Technologie en Informatique et Systèmes Industriels.}
\cventry{2001--2002}{DEUG SV}{Université de Savoie}{Chambéry}{\textit{Bac +2}}{1re année de Diplôme d’Etudes Universitaires Générales en Science de la Vie.}
\section{Projets}
\subsection{Personnels}
\cventry{2018}{\href{https://gportay.github.io/blkpg-part/}{blkpg-part}}{Utilitaire de table de partition et géométrie du disque}{C}{GPLv2}{blkpg-part créait, redimensionne et supprime des partitions à la volée sans enregistrer les changements dans la table de partition. Grâce à blkpg-part, il est possible d'exporter des bloc consécutives, qui ne font pas partie d'une partition, comme un périphérique temporaire. Un cas typique d'utilisation dans les systèmes embarqués est d'exporter les binaires qui sont stockés dans des périphériques de type bloc (i.e. des binaires qui ne sont pas enregistrés dans un système de fichier).}
\cventry{2018}{\href{https://gportay.github.io/kmake/}{kmake}}{Extention de Kbuild}{Makefile}{GPLv3}{kmake fonctionne au-dessus de make en utilisant des Makefiles pour étendre les fonctionnalités de Kbuild. Il complète le système de construction du noyau avec la construction d'un rootfs minimal et d'une règle Qemu supplémentaire pour émuler le noyau linux au coté d'un espace utilisateur. L'espace utilisateur est une petite archive cpio en InitRAMFS basée sur une compilation statique de busybox.}
\cventry{2017-2018}{\href{https://gportay.github.io/dosh/}{dosh}}{Execute un shell utilisateur dans un conteneur}{Bash, docker}{MIT}{dosh est une interface à la shell écrit in Bash pour docker-run. Il exécute les commandes dans un conteneur ; utilisant les droits utilisateurs, avec le répertoire courant monté.}
\cventry{2017-2018}{\href{https://gportay.github.io/tini/}{tini}}{Simple démon d'initialisation}{C}{LGPLv2.1}{tini est un petit démon d'initialisation qui démarre des processus et s'occupe des processus zombies.}
\cventry{2015-2017}{\href{https://gportay.github.io/mpkg}{mpkg}}{Gestion des paquets depuis un script shell}{Shell}{MIT}{mPKG est un gestionnaire de paquet léger et écrit en pure Shell. Il utilise des utilitaires comme sh, grep, tar, wget et awk fournit par tout système POSIX. mPKG est adapté aux systèmes embarqués utilisant Busybox.}
\cventry{2015-2018}{\href{https://gportay.github.io/templates/}{templates}}{Quelques exemples de code.}{C, Shell, Makefile}{MIT, BSD, GPL}{Ces exemples de code sont principalement écrit en C/C++, Shell/Bash and make/Makefile. Ces langages sont les fondations du développement bas niveau et système.}
\subsection{Universitaires}
\cventry{2009}{LHOG Minatec}{Amplificateur 900MHz}{Grenoble}{}{Conception d'un amplificateur GSM-900 au LHOG Minatec (laboratoire de micro nano technologie). Conception, simulation, routage, assemblage, tests et caractérisation.}
\cventry{2008}{LHOG Minatec}{Convertisseur Analogique Numérique CMOS 6-bits}{Grenoble}{}{Conception d'un convertisseur analogique numérique 6-bits utilisant la technologie 0,35\textmu au CIME Minatec (laboratoire de micro nano technologie). Les comparateurs CMOS ont été conçus via le logiciel Cadense, le correcteur et le décodeur ont été développés en VHDL.}
\cventry{2006}{Polytech'Grenoble}{Assembleur HC12}{Grenoble}{}{Conception d'un assembleur en 2 passes pour le jeu d'instruction 68HC12. Cet outil en ligne de commande a été développé en C sur Linux.}
\cventry{2005}{Université de Savoie}{Windows Desktop Search}{Chambéry}{}{Conception d'un moteur de recherche rapide pour Windows. J'ai développé cette application en Java sous l'environnement de développement Eclipse. Le moteur indexe tous les fichiers de l'ordinateur et permet à l'utilisateur de rechercher des fichiers via des expressions régulières. L'UI a été développée via le framework Swing.}
\cventry{2004}{IUT de Valence}{Moteur de jeu 2D}{Valence}{}{Conception d'un moteur de jeu 2D basic en utilisant les librairies Microsoft Direct Draw. Le joueur se déplace sur une carte 2D avec gestion des collisions. J'ai développé le moteur en C++.}
\section{Langues}
\cvitemwithcomment{Français}{Langue maternelle}{}
\cvitemwithcomment{Anglais}{Bonnes connaissances}{}
\section{Compétences techniques}
\cvitem{Langages de programmation}{Shell, Makefile, C/C++}
\cvitem{Autres}{Linux Kernel, Git, Cross-compilation, Yocto, Buildroot, Docker}
\section{Centres d'intérêts}
\cvitem{BDE/BDS Polytech'Grenoble}{Membre du bureau des étudiants de Polytech’Grenoble.\newline Organisation du week-end d'intégration en 2006 (350 étudiants, 3 jours).\newline Organisation de deux week-end ski en 2006 et 2007 (400 étudiants, 3 jours, 11 écoles d'ingénieurs du réseau Polytech).}
\cvitem{Montagne}{Ski, raquettes et randonnées.}
\cvitem{Tennis de table}{Joueur, arbitre et entraineur (9 ans).}
\section{Références}
\cvitem{Overkiz}{Florent PELLARIN,\linebreak[0]Directeur des Opérations\linebreak[0](\href{mailto:[email protected]}{[email protected]})}
\cvitem{Savoir-Faire Linux}{Jérôme OUFELLA,\linebreak[0]Vice Président Technologie\linebreak[0](\href{mailto:[email protected]}{[email protected]})}
\cvitem{Collabora}{Dave BEVAN,\linebreak[0]Responsable du Personnel d'Ingénierie\linebreak[0](\href{mailto:[email protected]}{[email protected]})}
\end{document}