-
Notifications
You must be signed in to change notification settings - Fork 0
/
english.tex
119 lines (106 loc) · 12.4 KB
/
english.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
%% english.tex
%% Copyright 2015-2018,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 english.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{Free Software Consultant}
\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{Working experiences}
\subsection{Vocational}
\cventry{November 2018--June 2022}{Senior Software Developer}{Collabora}{Montréal}{}{}
\cventry{March 2016--October 2018}{Free Software Consultant}{Savoir-Faire Linux}{Montréal}{}{Savoir-Faire Linux is a company of consultants specialized in \textit{Free-Software}. I am part of the Industrial Solution Team who is in charge of developing the \textit{Linux Embedded Systems} that are embedded in the devices of our customers.
\begin{itemize}
\item I implemented a framework in C++ 11 to exchange data between different devices. I used \textit{ZeroMQ} as the bus for communications and \textit{Protobuf} as the format for data exchange. I developed a system of plugin based on \textit{ld}. The code is covered using \textit{gcov}.
\item I bumped the embedded software of an \textit{IoT} device to the latest version of \textit{Yocto}. I moved the init system to \textit{systemd}. I fixed low-level and system related issues.
\item I customized the interface written in \textit{LuCI} of a network device based on \textit{OpenWrt}. I compiled and setup the docker daemon to run \textit{Docker} images on that device.
\end{itemize}
}
\cventry{July 2010--September 2015}{Embedded Linux Engineer}{Overkiz SAS, Somfy group}{Archamps}{}{Overkiz is specialized in \textit{Cloud Computing} for \textit{Home-Automation}. It develops a solution which connects objects from Home to \textit{Internet} (\textit{IoT}). It consists of a gateway that links home-automation devices to its servers. We can control objects from Home thanks to a smartphone and Web-Services. I was part of the Embedded Team who is developing the Embedded Linux System of gateways.
\begin{itemize}
\item I was co-maintainer of our home-made Embedded Linux distribution. I did the integration of software from the Open-Source community.
\item I was also responsible for the deployment of the embedded software updates.
\item I set up the Yocto Build System that builds the embedded software. It builds from scratch the whole embedded software. Yocto allows to save hours to the embedded developers and minimizes errors when releases are built introduced by human operations.
\item I developed home-made frameworks and applications to support new home-automation protocols into our gateways. I was also in charge of developing the application that creates the connection between the box and the server. Frameworks and applications are both developed in C++.
\item I developed kernel modules and I did two boards bring-up and mainlined them inside into Linux kernel sources.
\end{itemize}
}
\newpage
\subsection{Training Periods}
\cventry{2009}{Master Trainee}{LC Mobility}{Australia}{}{LC Mobility is specialized in receiving foreign Ph.D. students. I made a market search about the mobility of the Australian students in Australia.}
\cventry{2008}{3rd-year Engineer Trainee}{Freescale Semiconductors}{Toulouse}{}{I was responsible for the development of a battery-charging driver on Freescale smartphone platform (ARM-11 based). This mobile-phone is power-supplied by a Li-ion battery. It runs Nokia S60 (Symbian OS). I developed the driver in C++ using Symbian mechanisms.}
\cventry{2007}{2nd-year Engineer Trainee}{Sagem Monetel}{Valence}{}{I was in charge of memory optimization (dynamic and static) of a C application embedded in a banking terminal powered by two ARM processors. I used listing and map files generated by the free GNU/GCC compiler to locate heavy memory structures. I reduced the application size by more than 30\%.}
\cventry{2004}{Technical Trainee}{Sagem Monetel}{Valence}{}{I was in charge of changing the compiler of an embedded C application to the free GNU/GCC compiler. I also developed a benchmark to demonstrate the power of a payment terminal during a transaction.}
\subsection{Open-Source Contributions}
\cvitem{\href{https://github.com/buildroot/buildroot/commits?author=gportay}{Buildroot}}{I added package QtWebEngine and config Raspberry Pi 3 (64-bits).}
\cvitem{\href{https://git.pengutronix.de/cgit/barebox/log/?qt=grep&q=PORTAY}{Barebox}}{I fixed readline implementation to prevent from printing a non printable character and from looping to infinity. I fixed a NULL pointer dereference that causes an crash.}
\cvitem{\href{https://github.com/pengutronix/genimage/commits?author=gportay}{genimage}}{I added a hdimage property to set the position of the extended partition recorded into the Master Boot Record.}
\cvitem{\href{https://github.com/lighttpd/lighttpd1.4/commits?author=gportay}{Lighttpd}}{I mainlined CRLs for client certificate verification and make client verification errors ignored is not enforced.}
\cvitem{\href{https://github.com/jackaudio/jack2/commits?author=gportay}{jack2}}{I fixed uninitialized members that cause invalid reads when run by valgrind.}
\cvitem{\href{https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=grep&q=PORTAY}{Linux Kernel}}{I added two Atmel SoC based device-trees.}
\cvitem{\href{https://github.com/linux4sam/at91bootstrap/commits?author=gportay}{Atmel at91bootstrap}}{I brought support for UBI. The goal is to improve critical upgrades against unexpected power-cuts. Critical volumes, such as kernels or bootloaders, are duplicated and stored in UBI static volumes. The bootstrap simply checks the volume integrity using update flag from UBI headers.}
\cvitem{\href{https://github.com/bagder/curl/commits?author=gportay}{CURL}}{I upgraded libcurl to that it is compatible with the latest PolarSSL Library API. I also fixed a bug with the polling mechanism that causes a timeout while processing SSL handshake with the distant server.}
\cvitem{\href{http://git.yoctoproject.org/cgit/cgit.cgi/opkg/log/?qt=grep&q=PORTAY}{OPKG}}{I improved CURL integration to allow libcurl related settings into the configuration file. I also fixed unexpected behaviors.}
\cvitem{\href{https://github.com/mkj/dropbear/commits?author=gportay}{Dropbear}}{I removed compilation warnings from the entire project.}
\subsection{Miscellaneous}
\cventry{2000--2006}{Casual Jobs}{Miscellaneous Employers}{}{}{}
\newpage
\section{Education}
\cventry{2008--2009}{Master MAE}{IAE}{Grenoble}{\textit{5-year University degree}}{Last year of Master in Management and Business of Administration.}
\cventry{2005--2008}{Master 3I}{Polytech'Grenoble}{Grenoble}{\textit{5-year University degree}}{Engineering degree in Industrial Computing and Microelectronic.}
\cventry{2004--2005}{DEUG TIC}{University of Savoy}{Chambéry}{\textit{2-year University degree}}{in Information Technology.}
\cventry{2002--2004}{DUT ISI}{IUT of Valence}{Valence}{\textit{2-year Academic and Technical degree}}{in Industrial Computing.}
\cventry{2001--2002}{DEUG SV}{University of Savoy}{Chambéry}{\textit{2-year University}}{1st-year of a 2-year University degree in Biology.}
\section{Projects}
\subsection{Personal}
\cventry{2018}{\href{https://gportay.github.io/blkpg-part/}{blkpg-part}}{Partition table and disk geometry handling utility}{C}{GPLv2}{blkpg-part creates, resizes and deletes partitions on the fly without writing back the changes to the partition table. Thanks to blkpg-part, it is possible to export any consecutive blocks, that are not already part of a partition, as a temporary partitioned block device. A typically use case in embedded systems is to export hidden blobs that are stored in raw in block devices (i.e. blobs that are not stored into a file-system).}
\cventry{2018}{\href{https://gportay.github.io/kmake/}{kmake}}{Maintain kernel dependencies by extending Kbuild}{Makefile}{GPLv3}{kmake runs on top of make using a set of Makefiles to extend the Kbuild’s features. It enhances the kernel build-system with the build of a tiny rootfs and an additional Qemu target to emulate the linux kernel alongside a userland. The userland is a tiny InitRAMFS cpio archive based on a static build of busybox.}
\cventry{2017-2018}{\href{https://gportay.github.io/dosh/}{dosh}}{Run a user shell in a container with pwd bind mounted}{Bash, Docker}{MIT}{dosh is a shell-like frontend written in \textit{bash} for \textit{docker-run}. It runs commands in a container; using the current user, with pwd bind mounted.}
\cventry{2017-2018}{\href{https://gportay.github.io/tini/}{tini}}{Simple init daemon that spawns processes and reaps zombies}{LGPLv2.1}{}{tini is a damn small process spawner and zombie reaper.}
\cventry{2015-2017}{\href{https://gportay.github.io/mpkg}{mpkg}}{Managing packages from a shell script}{Shell}{MIT}{mPKG is a lightweight package manager written in pure Shell. It uses standard utilities such as sh, grep, tar, wget and awk that are shipped in any POSIX system. This makes mPKG suitable for embedded devices that usually embed Busybox which provides everything it needs in a single binary.}
\cventry{2015-2018}{\href{https://gportay.github.io/templates/}{templates}}{Some templates source files}{C/C++, Shell, Makefile}{MIT, BSD, GPL}{Those examples of code are mostly written in C/C++, Shell/Bash, and make/Makefile. Those languages are the foundations of low-level and system development.}
\newpage
\subsection{School}
\cventry{2009}{LHOG Minatec}{900MHz amplifier}{Grenoble}{}{Conception of a GSM-900 amplifier at LHOG Minatec (micro-nano technology laboratory). Design, simulation, layout, assembly, tests, and characterization.}
\cventry{2008}{LHOG Minatec}{CMOS 6 bits accuracy ADC}{Grenoble}{}{Conception of a 6-bits Analog-to-Digital Converter in AMS CMOS 0,35\textmu m technology at CIME Minatec (micro-nano technology laboratory). CMOS comparators had been designed using Cadense, and the Corrector and the Decoder developed in VHDL.}
\cventry{2006}{Polytech'Grenoble}{ASM HC12 assembler}{Grenoble}{}{Conception of an assembler for the 68HC12 instruction set. This command line tool was developed in C on Linux.}
\cventry{2005}{University of Savoy}{Windows Desktop Search}{Chambéry}{}{Conception of Desktop Search for Windows. I developed the application in Java using the Eclipse environment. The engine indexes all files from the computer and enables searching files by file name using regular expressions. The UI was built thanks to Swing framework.}
\cventry{2004}{IUT of Valence}{2D Game Engine}{Valence}{}{Conception of a basic 2D game engine using Microsoft Direct Draw library. The player moves in a 2D map with collision handling. I developed the engine in C++.}
\section{Languages}
\cvitemwithcomment{French}{Mother tongue}{}
\cvitemwithcomment{English}{Good knowledge}{}
\section{Computer skills}
\cvitem{Programming languages}{Shell, Makefile, C/C++}
\cvitem{Others}{Linux Kernel, Git, Cross-compilation, Yocto, Buildroot, Docker}
\section{Interests}
\cvitem{BDE/BDS Polytech'Grenoble}{Member of Student Association at Polytech’Grenoble.\newline Organization of the Integration event in 2006 (350 students, 3 days).\newline Organization of two Ski event in 2006 and 2007 (400 students, 3 days, 11 engineering school from France).}
\cvitem{Mountain}{Ski, hiking, snowshoes hiking.}
\cvitem{Table tennis}{Player, referee, and coach (9-year practicing).}
\section{References}
\cvitem{Overkiz}{Florent PELLARIN,\linebreak[0]Chief Operational Officer\linebreak[0](\href{mailto:[email protected]}{[email protected]})}
\cvitem{Savoir-Faire Linux}{Jérôme OUFELLA,\linebreak[0]Vice President Technologies\linebreak[0](\href{mailto:[email protected]}{[email protected]})}
\cvitem{Collabora}{Dave BEVAN,\linebreak[0]Engineering People Lead Manager\linebreak[0](\href{mailto:[email protected]}{[email protected]})}
\end{document}