diff options
| author | Kévin Le Gouguec <kevin.legouguec@gmail.com> | 2020-08-08 16:07:26 +0200 |
|---|---|---|
| committer | Kévin Le Gouguec <kevin.legouguec@gmail.com> | 2020-08-08 16:07:26 +0200 |
| commit | 19e95772a8b8ba047703089f643df5e3805d9969 (patch) | |
| tree | a3fff7d2de8b4a640d7b12e728b95781e056bd97 | |
| parent | ab31f6e55a18b444edc23c02847be2dd189c5f06 (diff) | |
| parent | 7fad68ac3517e55adc9ab6817a5778f10374f3b0 (diff) | |
| download | memory-leaks-19e95772a8b8ba047703089f643df5e3805d9969.tar.xz | |
Merge branch 'cv' into master
| -rw-r--r-- | personal/cv/.gitignore | 2 | ||||
| -rw-r--r-- | personal/cv/Makefile | 23 | ||||
| -rwxr-xr-x | personal/cv/add-personal-info.sh | 29 | ||||
| -rw-r--r-- | personal/cv/cv.org | 102 | ||||
| -rw-r--r-- | personal/cv/en-short.md | 34 | ||||
| -rw-r--r-- | personal/cv/fonts.tex | 12 | ||||
| -rw-r--r-- | personal/cv/personal-info.template | 3 |
7 files changed, 102 insertions, 103 deletions
diff --git a/personal/cv/.gitignore b/personal/cv/.gitignore deleted file mode 100644 index 30c5702..0000000 --- a/personal/cv/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -results -personal-info
\ No newline at end of file diff --git a/personal/cv/Makefile b/personal/cv/Makefile deleted file mode 100644 index 00715cd..0000000 --- a/personal/cv/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -PDFs = $(patsubst %.md,results/%.pdf,$(wildcard *.md)) -inputs = $(patsubst %.md,results/%.md,$(wildcard *.md)) - -pandoc_options = --verbose - -$(PDFs): pandoc_options += \ ---pdf-engine=xelatex \ ---include-in-header=fonts.tex \ - -V mainfont="DejaVu Sans" -V colorlinks - -all: $(PDFs) - -results/%.pdf: results/%.md fonts.tex | results - pandoc $< $(pandoc_options) -o $@ - -results/%.md: %.md add-personal-info.sh | results - ./add-personal-info.sh $< $@ - -results: - mkdir $@ - -clean: - -rm -r results diff --git a/personal/cv/add-personal-info.sh b/personal/cv/add-personal-info.sh deleted file mode 100755 index 2e9ea8b..0000000 --- a/personal/cv/add-personal-info.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -set -eu - -input=$1; output=$2 -cp ${input} ${output} - -. personal-info - -fullname=$(getent passwd $(whoami) | cut -d: -f5 | cut -d, -f1) -sed -i s/INSERT-FULLNAME-HERE/"${fullname}"/ ${output} - -# On the one hand, anyone can compute my age from my birth date. On -# the other hand, wasting reader brain cycles on this computation -# sounds kind of rude. On the gripping hand, having to bump my age -# manually every year would be silly. Clearly the way forward is to -# summon the powers of bash, date, bc and sed to save us the trouble. - -birthstamp=$(date -d "${birthday}" +%s) -now=$(date +%s) -age=$(bc <<< "(${now}-${birthstamp})/(3600*24*365.25)") -sed -i s/INSERT-BIRTHDATE-HERE/"${birthday} (${age})"/ ${output} - -sed -i s/INSERT-LOCATION-HERE/"${location}"/ ${output} - -sed -i s/INSERT-PHONE-HERE/"${phone_number}"/ ${output} - -# Set by .profile and/or .xsessionrc. -sed -i s/INSERT-MAIL-HERE/${EMAIL}/ ${output} diff --git a/personal/cv/cv.org b/personal/cv/cv.org new file mode 100644 index 0000000..d5751f1 --- /dev/null +++ b/personal/cv/cv.org @@ -0,0 +1,102 @@ +I strive to develop reliable and maintainable software, +with an eye toward improving the tools of our craft. + +* Experience +** 2014 – present: software engineer at Airbus CyberSecurity +*** Research +I took part in the [[https://paclido.fr][PACLIDO project]], a French government-funded project +gathering industrial and academic partners in order to design and +implement *lightweight authenticated encryption algorithms* and +protocols. + +During the course of this project, + +- I implemented the reference version of Lilliput-AE, our submission + to the [[https://csrc.nist.gov/projects/lightweight-cryptography][NIST Lightweight Cryptography Standardization Process]]. + +- I described this implementation in [[https://csrc.nist.gov/CSRC/media/Projects/Lightweight-Cryptography/documents/round-1/spec-doc/LILLIPUT-AE-spec.pdf][the algorithm's specification + document]], comparing its performance to that of Ascon and ACORN, the + lightweight winners of the [[https://competitions.cr.yp.to/caesar-submissions.html][CAESAR competition]]. + +- I extended the [[https://www.cryptolux.org/index.php/FELICS][FELICS]] benchmarking framework to support AEAD + algorithms; we [[https://gitlab.inria.fr/minier/felics-ae/][published this fork]] and presented these improvements + at the [[https://csrc.nist.gov/CSRC/media/Presentations/felics-ae-a-framework-to-benchmark-lightweight/images-media/session3-huynh-felics-ae.pdf][NIST LWC Workshop 2019]]. + +- I developed optimized software implementations for Lilliput-AE on + the 16-bit MSP430 platform. +*** Industrial development +For four years, I helped develop a network monitoring appliance. My +main role was *maintaining the codebase* for an in-house rule-matching +engine: designing and implementing features, fixing bugs… Over the +course of the project, I took part in many other activities: + +- I helped our project transition from manual software packaging to + full-blown continuous integration, + +- I contributed extensively to our integration test suite, + +- I studied some mechanisms to improve the system's security (Secure + Boot, TPMs) and helped implement others (LXC containers). + +- I reviewed all uses of cryptography in the system as part of our + security certification process; this allowed me to get a good grasp + of how filesystem encryption, VPNs, webservers, and repository + authentication are configured in a free software distribution. + +- I supported our license team in assessing our use of free and open + source software. +** 2014 (6 months): internship at Airbus CyberSecurity +I extended an *Intrusion Detection System to authenticate and decrypt +its ruleset using a Hardware Security Module*. This was a very +informative foray into the world of cryptographic APIs, such as: + +- the [[https://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html][PKCS#11]] standard to communicate with hardware tokens, +- the [[https://tools.ietf.org/html/rfc2315][PKCS#7]] format, and its successor [[https://tools.ietf.org/html/rfc5652][CMS]], to serialize encrypted and + authenticated messages, +- the [[https://tools.ietf.org/html/rfc5280][X.509]] standard to understand how PKIs work and how to process + certificates, +- the [[http://luca.ntop.org/Teaching/Appunti/asn1.html][ASN.1]] format to reverse-engineer cryptic HSM errors, such as + ECDSA signatures lacking the [[https://www.cryptsoft.com/pkcs11doc/v220/group__SEC__12__3__1__EC__SIGNATURES.html][zero-padding expected in PKCS#11]], +- [[https://www.openssl.org/][OpenSSL]], to setup PKIs, [[https://stackoverflow.com/a/23422301/1503371][encrypt and sign rulesets, and generate CSRs + for keys stored securely on a hardware token]]. + +I also got to learn [[https://security.stackexchange.com/q/58131][a thing or two]] about network security. + +As far as software development goes, I dug into many aspects of C +programming: debugging with gdb and valgrind, profiling with +gperftools, the best practices for [[https://www.akkadia.org/drepper/dsohowto.pdf][shared libraries development]]… I +also got a feel for Python by way of [[https://scapy.net/][Scapy]]. +** 2013 (4 months): internship at LIRIS laboratory +I studied two protocols for anonymous communication: + +- [[https://dedis.cs.yale.edu/dissent/][Dissent]] :: "accountable anonymous group communication", +- [[https://hal.inria.fr/hal-00945795][RAC]] :: "freerider-resilent, scalable, anonymous communication" + ([[https://web.archive.org/web/20131018000154/http://www.temple.edu/cis/icdcs2013/data/5000a520.pdf][paper]]). + +The goal was to instrument Dissent's implementation to assess its +performance, then to implement and benchmark RAC in order to validate +the theoretical results presented in its specification. + +While four months proved too short for me to obtain comparable figures +for both protocols, I appreciated this opportunity to dive into the +guts of these secure communication protocols. Technically, I also +enjoyed sharpening my knowledge of C++, the Boost framework, and +working with the [[https://www.grid5000.fr/w/Grid5000:Home][Grid5000 environment]]. +** 2012 (2 months): internship at Vescape 🇩🇪 +I helped this innovative startup expand its game repertoire by +studying a free software game engine and adapting the gameplay to +their unique use-case. + +This was my first deep-dive into a considerable codebase, and thus my +first opportunity to practise various aspects of software development +(version control, debugging) on a non-trivial C++ project. +** 2009 – 2014: school projects at INSA de Lyon +Thanks to INSA's generalist syllabus, as well as [[http://gamerush.free.fr/debriefing2.html][some extra-curricular +activies]], I touched on a wide array of problem domains and +technologies: + +- drivers for segmented LCD displays on MSP430 microcontrollers, in C, +- image recognition based on [[https://en.wikipedia.org/wiki/Image_moment#Rotation_invariants][Hu moment invariants]], in C, +- game engines, in C++ and Java, +- GUIs in Java, +- webservers, in Java and Go. diff --git a/personal/cv/en-short.md b/personal/cv/en-short.md deleted file mode 100644 index 78424c7..0000000 --- a/personal/cv/en-short.md +++ /dev/null @@ -1,34 +0,0 @@ -% INSERT-FULLNAME-HERE - -------------- --------------------- -Date of birth INSERT-BIRTHDATE-HERE -Location INSERT-LOCATION-HERE -📱 INSERT-PHONE-HERE -📧 INSERT-MAIL-HERE -------------- --------------------- - -Areas of interest: system & network programming, cryptography - -# Skills - -------------------- ------------------------------------------------ -Software tools SCM (**Git**, SVN), IDEs (**Emacs**, Eclipse), - GNU toolchain, Debian packaging, Jenkins, Docker -Methodologies Continuous integration, Agile, TDD -------------------- ------------------------------------------------ - -## Programming languages - ------------ ------------------------------------------------- -fluent **C, Python 3, Bash, Makefile** -dabbles in Emacs Lisp, Rust, assembly -notions C++, Java, C#, Go, Ruby, Pascal, Prolog, Streamit ------------ ------------------------------------------------- - -## Spoken languages - -------- ------------------------ -native French -fluent English (TOEIC: 990) -notions Spanish, Russian, German -------- ------------------------ diff --git a/personal/cv/fonts.tex b/personal/cv/fonts.tex deleted file mode 100644 index 1a36389..0000000 --- a/personal/cv/fonts.tex +++ /dev/null @@ -1,12 +0,0 @@ -\tracinglostchars=2 - -\usepackage{fontspec} -\usepackage[Latin,NumberForms,Punctuation,Symbols]{ucharclasses} - -\newfontfamily{\mydefaultfont}{Symbola} -\newfontfamily{\mymainfont}{DejaVu Sans} - -\setTransitionsForSymbols{\mydefaultfont}{\mymainfont} -\setTransitionsFor{NumberForms}{\mydefaultfont}{\mymainfont} -\setTransitionTo{Punctuation}{\mymainfont} -\setTransitionTo{Latin}{\mymainfont} diff --git a/personal/cv/personal-info.template b/personal/cv/personal-info.template deleted file mode 100644 index 0ec9b09..0000000 --- a/personal/cv/personal-info.template +++ /dev/null @@ -1,3 +0,0 @@ -birthday='1970-01-01' -location='Somewhere' -phone_number='+42 7 42 42 42 42' |
