Compare commits
10 Commits
06ee3ae250
...
1e28706bab
| Author | SHA1 | Date |
|---|---|---|
|
|
1e28706bab | |
|
|
aa4c934300 | |
|
|
142e89be48 | |
|
|
cac2adca3e | |
|
|
f27f0d0792 | |
|
|
f6f941be27 | |
|
|
123a7a7faf | |
|
|
55377b857e | |
|
|
0b1ab3f60e | |
|
|
db721f6e36 |
|
|
@ -16,7 +16,10 @@ pipeline {
|
||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
echo 'Building'
|
echo 'Building'
|
||||||
sh '''PATH="$TYPST_INSTALL/bin:$PATH" ./render.sh'''
|
sh "#!/bin/bash \n" +
|
||||||
|
'''export TYPST_INSTALL="/home/jenkins/.typst"\n''' +
|
||||||
|
'''export PATH="$TYPST_INSTALL/bin:$PATH"\n''' +
|
||||||
|
'''make build'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// stage('Deploy') {
|
// stage('Deploy') {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
.PHONY: clean compile build
|
||||||
|
.DEFAULT_GOAL := build
|
||||||
|
|
||||||
|
NAME := Felix
|
||||||
|
SURNAME := Desmaretz
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f out/*
|
||||||
|
|
||||||
|
compile:
|
||||||
|
mkdir -p out
|
||||||
|
typst compile --font-path fonts cv_en.typ && mv cv_en.pdf "out/Resume_${SURNAME}_${NAME}.pdf"
|
||||||
|
typst compile --font-path fonts cv_fr.typ && mv cv_fr.pdf "out/CV_${SURNAME}_${NAME}.pdf"
|
||||||
|
|
||||||
|
build: clean compile
|
||||||
|
|
@ -12,6 +12,8 @@
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
To compile, run `./render.sh`
|
To compile, run `./render.sh` or `make build`
|
||||||
|
|
||||||
To modify the content, see `data/` directory.
|
To modify the content, see `data/` directory.
|
||||||
|
|
||||||
|
To modify the layout and rendering, see `cv/` directory.
|
||||||
101
cv/cv.typ
101
cv/cv.typ
|
|
@ -98,6 +98,12 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#let cvsummary(info, isbreakable: true) = {
|
||||||
|
if info != none {
|
||||||
|
block(width: 100%, inset: ("left": 3%, "right": 3%))[#h(1em) #text(weight: "regular")[#info.summary]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#let cvwork(lang, info, isbreakable: true) = {
|
#let cvwork(lang, info, isbreakable: true) = {
|
||||||
if info.experience != none {
|
if info.experience != none {
|
||||||
block[
|
block[
|
||||||
|
|
@ -126,6 +132,11 @@
|
||||||
#text(weight: "semibold", size: 9.0pt, fill: luma(30.6%))[#p.what #h(1fr)
|
#text(weight: "semibold", size: 9.0pt, fill: luma(30.6%))[#p.what #h(1fr)
|
||||||
#start #sym.dash.en #end] \
|
#start #sym.dash.en #end] \
|
||||||
// highlights or description
|
// highlights or description
|
||||||
|
#if "technologies" in p and p.technologies != none [
|
||||||
|
#text(weight: "light", style: "italic")[
|
||||||
|
Technologies: #eval(p.technologies.join(" #sym.circle.filled.small "), mode: "markup")
|
||||||
|
]
|
||||||
|
]
|
||||||
#for hi in p.why [
|
#for hi in p.why [
|
||||||
- #text(weight: "light")[#eval(hi, mode: "markup")]
|
- #text(weight: "light")[#eval(hi, mode: "markup")]
|
||||||
]
|
]
|
||||||
|
|
@ -165,10 +176,47 @@
|
||||||
// line 2: degree and date
|
// line 2: degree and date
|
||||||
#text(weight: "semibold", size: 9.0pt, fill: luma(30.6%))[#edu.what #h(1fr)
|
#text(weight: "semibold", size: 9.0pt, fill: luma(30.6%))[#edu.what #h(1fr)
|
||||||
#start #sym.dash.en #end] \
|
#start #sym.dash.en #end] \
|
||||||
|
#if edu.why != none and edu.why.len() > 0 {
|
||||||
#for hi in edu.why [
|
for hi in edu.why [
|
||||||
- #text(weight: "light")[#eval(hi, mode: "markup")]
|
- #text(weight: "light")[#eval(hi, mode: "markup")]
|
||||||
]
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#let cvprojects(lang, info, isbreakable: true) = {
|
||||||
|
let projects = info.projects
|
||||||
|
if projects != none {
|
||||||
|
block[
|
||||||
|
== #projects.title
|
||||||
|
#for project in projects.content {
|
||||||
|
// parse ISO date strings into datetime objects
|
||||||
|
let start = utils.strpdate(lang, project.startDate)
|
||||||
|
let end = utils.strpdate(lang, project.endDate)
|
||||||
|
// create a block layout for each project entry
|
||||||
|
block(
|
||||||
|
width: 100%,
|
||||||
|
breakable: isbreakable,
|
||||||
|
)[
|
||||||
|
// line 1: project name
|
||||||
|
#if project.url != none [
|
||||||
|
*#link(project.url)[#project.what]* \
|
||||||
|
] else [
|
||||||
|
*#project.what* \
|
||||||
|
]
|
||||||
|
// line 2: organization and date
|
||||||
|
#if "with" in project and project.with != none [
|
||||||
|
#text(style: "italic")[#project.with] #h(1fr) #start #sym.dash.en #end \
|
||||||
|
]
|
||||||
|
// summary or description
|
||||||
|
#if "why" in project and project.why != none [
|
||||||
|
#for hi in project.why [
|
||||||
|
- #text(weight: "light")[#eval(hi, mode: "markup")]
|
||||||
|
]
|
||||||
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
@ -207,37 +255,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#let cvprojects(lang, info, isbreakable: true) = {
|
|
||||||
if info.projects != none {
|
|
||||||
block[
|
|
||||||
== Projects
|
|
||||||
#for project in info.projects {
|
|
||||||
// parse ISO date strings into datetime objects
|
|
||||||
let start = utils.strpdate(lang, project.startDate)
|
|
||||||
let end = utils.strpdate(lang, project.endDate)
|
|
||||||
// create a block layout for each project entry
|
|
||||||
block(
|
|
||||||
width: 100%,
|
|
||||||
breakable: isbreakable,
|
|
||||||
)[
|
|
||||||
// line 1: project name
|
|
||||||
#if project.url != none [
|
|
||||||
*#link(project.url)[#project.name]* \
|
|
||||||
] else [
|
|
||||||
*#project.name* \
|
|
||||||
]
|
|
||||||
// line 2: organization and date
|
|
||||||
#text(style: "italic")[#project.affiliation] #h(1fr) #start #sym.dash.en #end \
|
|
||||||
// summary or description
|
|
||||||
#for hi in project.highlights [
|
|
||||||
- #eval(hi, mode: "markup")
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#let cvawards(lang, info, isbreakable: true) = {
|
#let cvawards(lang, info, isbreakable: true) = {
|
||||||
if info.awards != none {
|
if info.awards != none {
|
||||||
block[
|
block[
|
||||||
|
|
@ -324,26 +341,34 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
#let cvskills(lang, info, isbreakable: true) = {
|
#let cvskills(lang, info, isbreakable: true, sortLexically: true) = {
|
||||||
block(
|
block(
|
||||||
breakable: isbreakable,
|
breakable: isbreakable,
|
||||||
)[
|
)[
|
||||||
== #info.skills.title
|
== #info.skills.title
|
||||||
|
|
||||||
#for skill in info.skills.content {
|
#for skill in info.skills.content {
|
||||||
let skillContent = skill.content.sorted(key: x => {
|
let baseContent = if sortLexically {
|
||||||
|
skill.content.sorted(key: x => {
|
||||||
if type(x) == dictionary {
|
if type(x) == dictionary {
|
||||||
x.keys().first()
|
x.keys().first()
|
||||||
} else { x }
|
} else { x }
|
||||||
}).map(
|
})
|
||||||
|
} else {
|
||||||
|
skill.content
|
||||||
|
}
|
||||||
|
|
||||||
|
let skillContent = baseContent
|
||||||
|
.map(
|
||||||
x => {
|
x => {
|
||||||
if type(x) == dictionary {
|
if type(x) == dictionary {
|
||||||
[#x.keys().first() (#text(style: "italic")[#x.values().first().sorted().join(", ")])]
|
[#x.keys().first() (#text(style: "italic")[#x.values().first().sorted().join[ #sym.circle.filled.tiny ]])]
|
||||||
} else {
|
} else {
|
||||||
[#x]
|
[#x]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
).join(", ")
|
)
|
||||||
|
.join[ #sym.circle.filled.small ]
|
||||||
|
|
||||||
[- *#skill.title*#text(weight: "light")[: #skillContent]]
|
[- *#skill.title*#text(weight: "light")[: #skillContent]]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,9 +38,12 @@
|
||||||
return date
|
return date
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Recursively filter entries based on the language prefix.
|
||||||
#let filterLanguage(lang, data) = {
|
#let filterLanguage(lang, data) = {
|
||||||
if type(data) == dictionary {
|
if type(data) == dictionary {
|
||||||
if data.at(lang, default: none) == none {
|
if data.keys().contains(lang) {
|
||||||
|
data = filterLanguage(lang, data.at(lang))
|
||||||
|
} else {
|
||||||
data = data
|
data = data
|
||||||
.pairs()
|
.pairs()
|
||||||
.map(xs => (xs.first(), filterLanguage(lang, xs.last())))
|
.map(xs => (xs.first(), filterLanguage(lang, xs.last())))
|
||||||
|
|
@ -48,8 +51,6 @@
|
||||||
acc.insert(xs.first(), xs.last())
|
acc.insert(xs.first(), xs.last())
|
||||||
acc
|
acc
|
||||||
})
|
})
|
||||||
} else {
|
|
||||||
data = filterLanguage(lang, data.at(lang))
|
|
||||||
}
|
}
|
||||||
} else if type(data) == array {
|
} else if type(data) == array {
|
||||||
data = data.map(v => filterLanguage(lang, v))
|
data = data.map(v => filterLanguage(lang, v))
|
||||||
|
|
|
||||||
|
|
@ -6,29 +6,13 @@ content:
|
||||||
endDate: 2021-09-01
|
endDate: 2021-09-01
|
||||||
url: https://math-info.u-paris.fr/
|
url: https://math-info.u-paris.fr/
|
||||||
what:
|
what:
|
||||||
en: Master's degree in computer science - Data Science
|
en: Double Master's Degree in Computer Science and Mathematics (Data Science), Highest Honours
|
||||||
fr: Master d’Informatique - Sciences des données
|
fr: Double Master Mathématiques & Informatique (Sciences des données)
|
||||||
with: Université de Paris
|
with: Université de Paris
|
||||||
where:
|
where:
|
||||||
en: Paris, France
|
en: Paris, France
|
||||||
fr: Paris (75)
|
fr: Paris (75)
|
||||||
why:
|
why:
|
||||||
- en: Game Theory, Big Data Technologies, Algorithms, Database, Distributed Algorithms, Data Scraping
|
en:
|
||||||
fr: Théorie des jeux, Technologies du Big Data, Algorithmique, Base de données, Algorithmique répartie, Data Scraping
|
# - Highest Honours
|
||||||
- en: Highest Honours
|
fr:
|
||||||
fr: Mention Très Bien
|
|
||||||
- startDate: 2019-09-01
|
|
||||||
endDate: 2021-09-01
|
|
||||||
url: https://math-info.u-paris.fr/
|
|
||||||
what:
|
|
||||||
en: Master of Mathematics - Data Science
|
|
||||||
fr: Master de Mathématiques – Sciences des données
|
|
||||||
with: Université de Paris
|
|
||||||
where:
|
|
||||||
en: Paris, France
|
|
||||||
fr: Paris (75)
|
|
||||||
why:
|
|
||||||
- en: Probabilities, Statistics, Optimization, NLP, Machine Learning, Deep Learning, Big Data Algorithms
|
|
||||||
fr: Probabilités, Statistiques, Optimisation, NLP, Machine Learning, Deep Learning, Algorithmique Big Data
|
|
||||||
- en: Highest Honours
|
|
||||||
fr: Mention Très Bien
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
title:
|
title:
|
||||||
en: Work Experience
|
en: Professional Experience
|
||||||
fr: Expérience Professionnelle
|
fr: Expérience Professionnelle
|
||||||
content:
|
content:
|
||||||
- where:
|
- where:
|
||||||
|
|
@ -8,24 +8,58 @@ content:
|
||||||
with: Diggers
|
with: Diggers
|
||||||
url: https://diggers-consulting.com/
|
url: https://diggers-consulting.com/
|
||||||
what:
|
what:
|
||||||
- startDate: 2022-02-04
|
- startDate: 2025-03-04
|
||||||
endDate:
|
endDate:
|
||||||
en: present
|
en: present
|
||||||
fr: actuellement
|
fr: actuellement
|
||||||
what:
|
what:
|
||||||
en: Data Engineer Consultant - Natixis
|
en: Data Engineer (Consultant) - BPCE
|
||||||
fr: Consultant Data Engineer - Natixis
|
fr: Data Engineer (Consultant) - BPCE
|
||||||
|
technologies:
|
||||||
|
- Scala
|
||||||
|
- Kafka
|
||||||
|
- Hadoop
|
||||||
|
- SQL
|
||||||
|
- Java
|
||||||
|
- Spring
|
||||||
|
- Python
|
||||||
|
- Control-M
|
||||||
|
- Git
|
||||||
|
why:
|
||||||
|
fr:
|
||||||
|
- Conception et développement d'une plateforme de supervision "event-driven" des plus de 200 applications du Data Lake.
|
||||||
|
- Pilotage de la migration d'une application Spark critique de Spark 2 vers Spark 3 tout en garantissant la compatibilité et la continuité de service.
|
||||||
|
- Optimisation de pipelines ETL pour des données financières, réduisant la consommation de ressources de plus de 50 %.
|
||||||
|
- Développement de services backend et d'API internes destinés aux équipes métiers.
|
||||||
|
- "Mise en œuvre des bonnes pratiques de développement logiciel : tests, revues de code, supervision et support en production."
|
||||||
|
en:
|
||||||
|
- Designed and implemented an event-driven monitoring platform for 200+ applications running on the data lake.
|
||||||
|
- Led the migration of a business-critical Spark application from Spark 2 to Spark 3, ensuring compatibility and production continuity.
|
||||||
|
- Optimized ETL pipelines for finance data; reduced resources usage by more than 50%.
|
||||||
|
- Developed internal reporting services and APIs used by business teams.
|
||||||
|
- Applied software engineering best practices including testing, code reviews, monitoring and production support.
|
||||||
|
- startDate: 2022-02-04
|
||||||
|
endDate: 2025-02-14
|
||||||
|
what:
|
||||||
|
en: Data Engineer (Consultant) - Natixis CIB
|
||||||
|
fr: Data Engineer (Consultant) - Natixis CIB
|
||||||
|
technologies:
|
||||||
|
- Scala
|
||||||
|
- Kafka
|
||||||
|
- Hadoop
|
||||||
|
- SQL
|
||||||
|
- Python
|
||||||
|
- Control-M
|
||||||
|
- Git
|
||||||
why:
|
why:
|
||||||
en:
|
en:
|
||||||
- Management, design and implementation of multi-stream data producer computing and sending up to 1 billion messages per day.
|
- Designed and implemented a high-throughput Kafka producer publishing up to 1 billion messages per day to accelerate PnL data distribution.
|
||||||
- Implementation of financial data computation in a distributed environment.
|
- Implemented distributed Spark applications for large-scale risk data processing like the prudent valuation adjustments.
|
||||||
- Maintenance and optimization of regulatory data computations; reduced resources usage by 5.
|
- Optimized and maintained production ETL pipelines for regulatory data; reduced resources usage by 80%.
|
||||||
- Scala, SQL, Bash, Spark, Kafka, Hive, Typelevel
|
|
||||||
fr:
|
fr:
|
||||||
- Gestion, conception et développement d'un service d'alimentation de données multi-flux calculant et produisant jusqu'à 1 milliard de messages par jour.
|
- Conception, développement et supervision d'un producteur Kafka traitant jusqu'à un milliard de messages par jour pour le transfert de PnL inter-application.
|
||||||
- Développement de batchs de calculs de données financières en environnement distribué.
|
- Développement d'applications Spark distribuées pour le traitement de données financières à grande échelle comme les calculs de réserves.
|
||||||
- Maintenance et optimisation de calculs de données réglementaire; réduction de ressources utilisées par 5.
|
- Optimisation et maintenance de pipelines ETL en production pour des données réglementaires, réduisant la consommation de ressources de 80 %.
|
||||||
- Scala, SQL, Bash, Spark, Kafka, Hive, Typelevel
|
|
||||||
- where:
|
- where:
|
||||||
en: Montrouge, France
|
en: Montrouge, France
|
||||||
fr: Montrouge (92)
|
fr: Montrouge (92)
|
||||||
|
|
@ -35,14 +69,22 @@ content:
|
||||||
- startDate: 2021-04-16
|
- startDate: 2021-04-16
|
||||||
endDate: 2021-10-16
|
endDate: 2021-10-16
|
||||||
what:
|
what:
|
||||||
en: Data Scientist Intern
|
en: Data Scientist (Intern)
|
||||||
fr: Data Scientist Stagiaire
|
fr: Data Scientist (Stagiaire)
|
||||||
|
technologies:
|
||||||
|
- Scala
|
||||||
|
- Spark
|
||||||
|
- Python
|
||||||
|
- Pandas
|
||||||
|
- Hadoop
|
||||||
|
- iGraph
|
||||||
|
- XGBoost
|
||||||
|
- Git
|
||||||
why:
|
why:
|
||||||
- en: "Feature Engineering via network modeling \\& analysis giving a 10\\% score improvement for prediction models"
|
- en: "Engineered graph-based features that improved prediction model performance by 10%."
|
||||||
fr: "Feature engineering via modélisation \\& analyse de graphes augmentant les scores des modèles de prédictions de 10\\%"
|
fr: Conception de variables (Feature Engineering) par modélisation et analyse de graphes, améliorant de 10 % les performances des modèles de prédiction.
|
||||||
- en: Development of a multi-environment pipeline execution program allowing the usage of tools missing in one or another
|
- en: Developed a multi-environment pipeline execution framework enabling consistent workflows despite platform-specific tool availability.
|
||||||
fr: Développement d'une solution d'exécution de chaînes de traitement multi-environnements permettant un plus large choix d'outils.
|
fr: Développement d'un programme d'exécution de pipelines multi-environnements permettant l'utilisation d'outils indisponibles selon les plateformes.
|
||||||
- Python, Scala, SQL, Spark, Pandas, Hive, XGBoost, iGraph, GraphX
|
|
||||||
- with:
|
- with:
|
||||||
en: University Association IP7
|
en: University Association IP7
|
||||||
fr: Association Universitaire IP7
|
fr: Association Universitaire IP7
|
||||||
|
|
@ -58,8 +100,8 @@ content:
|
||||||
endDate: 2021-06-01
|
endDate: 2021-06-01
|
||||||
why:
|
why:
|
||||||
en:
|
en:
|
||||||
- "Help in setting up a programming contest \\& writing algorithmic problems"
|
- Organized programming contests and authored algorithmic problems.
|
||||||
- Facilitator for multiple Linux installation parties
|
- Facilitated Linux install events for students.
|
||||||
fr:
|
fr:
|
||||||
- "Mise en place d’un concours de programmation \\& écriture de problèmes algorithmiques"
|
- Organisation de concours de programmation et rédaction de problèmes algorithmiques.
|
||||||
- Animateur de plusieurs install party Linux
|
- Animation d'ateliers d'installation de Linux destinés aux étudiants.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
title:
|
||||||
|
en: Selected Projects
|
||||||
|
fr: Projets Personnels
|
||||||
|
content:
|
||||||
|
- startDate: 2020-10-17
|
||||||
|
endDate:
|
||||||
|
en: present
|
||||||
|
fr: actuellement
|
||||||
|
url:
|
||||||
|
what:
|
||||||
|
en: Personal Portfolio & Ledger Platform
|
||||||
|
fr: Automatisation de mon Livre de Compte Personnel
|
||||||
|
why:
|
||||||
|
en:
|
||||||
|
- Built a Python, later Clojure, data ingestion pipeline to fetch, cache, and persist historical market data (ETFs, equities, and FX) for a personal Beancount ledger.
|
||||||
|
- Built an ETL pipeline to ingest, normalize, and reconcile CSV bank statements into the same Beancount ledger.
|
||||||
|
- Maintained historical price and FX time series to accurately value investment holdings and foreign-currency transactions.
|
||||||
|
fr:
|
||||||
|
- Développement d'un pipeline d'acquisition de données en Python, puis en Clojure, pour la collecte, la mise en cache et le stockage de données historiques de marché (actions et devises).
|
||||||
|
- Conception et développement d'un pipeline ETL permettant l'ingestion, la normalisation et le rapprochement de relevés bancaires CSV dans un registre comptable Beancount unifié.
|
||||||
|
- Maintenance d'un historique de taux de change permettant la conversion précise de dépenses en devises vers une devise de référence.
|
||||||
|
- startDate: 2020-09-10
|
||||||
|
endDate:
|
||||||
|
en: present
|
||||||
|
fr: actuellement
|
||||||
|
url:
|
||||||
|
what:
|
||||||
|
en: Personal Infrastructure
|
||||||
|
fr: Infrastructure Personnelle
|
||||||
|
why:
|
||||||
|
en:
|
||||||
|
- Designed and operate a self-hosted infrastructure built on Proxmox VE, hosting containerized and virtualized services for development, automation, storage, and home automation.
|
||||||
|
- Deployed and maintain workflow orchestration (Airflow), CI/CD (Jenkins), Git hosting (Forgejo), centralized PostgreSQL, reverse proxying (Caddy), and automated backup solutions.
|
||||||
|
- Manage a dedicated OPNsense firewall/router providing network security, routing, and secure remote access through WireGuard.
|
||||||
|
- Host additional services on a Hetzner VPS, including a self-hosted task management platform and a personal website.
|
||||||
|
- Operate Home Assistant with a Zigbee mesh network, Frigate-based IP camera detection, and Immich with automated off-site backups.
|
||||||
|
fr:
|
||||||
|
- Conception et administration d'une infrastructure auto-hébergée sous Proxmox VE pour le développement, l'automatisation, le stockage et la domotique.
|
||||||
|
- Déploiement et maintenance Airflow, Jenkins, Forgejo, PostgreSQL, Caddy et des solutions de sauvegarde automatisées.
|
||||||
|
- Administration d'un pare-feu OPNsense assurant la sécurité du réseau et l'accès distant sécurisé via WireGuard.
|
||||||
|
- Hébergement de services sur un VPS Hetzner, dont une plateforme de gestion de tâches et un site web personnel.
|
||||||
|
- Exploitation de Home Assistant, un réseau Zigbee, Frigate et Immich avec sauvegardes externalisées automatisées.
|
||||||
|
- startDate: 2025-01-01
|
||||||
|
endDate: 2025-08-01
|
||||||
|
url:
|
||||||
|
what:
|
||||||
|
en: Statistical Analysis for Medical Research
|
||||||
|
fr: Analyse Statistique pour de la Recherche Médicale
|
||||||
|
why:
|
||||||
|
en:
|
||||||
|
- Performed statistical analysis in R for a medical doctoral thesis investigating the relationship between vitamin C levels and frailty in elderly patients.
|
||||||
|
- Produced statistical outputs and visualizations to support the interpretation of the study's findings.
|
||||||
|
fr:
|
||||||
|
- Conduite des analyses statistiques sous R pour une thèse de doctorat en médecine étudiant l'association entre les taux de vitamine C et la fragilité des patients âgés.
|
||||||
|
- Élaboration des analyses, tests statistiques et visualisations ayant contribué à l'interprétation des résultats de l'étude.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
153
data/skills.yaml
153
data/skills.yaml
|
|
@ -3,117 +3,104 @@ title:
|
||||||
fr: Compétences & Intérêts
|
fr: Compétences & Intérêts
|
||||||
content:
|
content:
|
||||||
- title:
|
- title:
|
||||||
fr: Langages Informatique
|
fr: Langages
|
||||||
en: Computer Languages
|
en: Languages
|
||||||
content:
|
content:
|
||||||
- Python
|
- Python
|
||||||
- Scala
|
- Scala
|
||||||
- SQL
|
- SQL
|
||||||
- Java
|
|
||||||
- Clojure
|
- Clojure
|
||||||
|
- Java
|
||||||
- R
|
- R
|
||||||
- C
|
- C
|
||||||
- C++
|
- C++
|
||||||
- LaTeX
|
|
||||||
- Bash
|
- Bash
|
||||||
- VBA
|
|
||||||
- Typst
|
|
||||||
- title:
|
- title:
|
||||||
fr: Librairies
|
fr: Data Engineering & Systèmes Distribués
|
||||||
en: Libraries
|
en: Data Engineering & Distributed Systems
|
||||||
content:
|
content:
|
||||||
- Numpy
|
- Spark / PySpark
|
||||||
- Pandas
|
- Kafka
|
||||||
- Spark/PySpark
|
- Airflow
|
||||||
- PyTorch
|
- Hadoop
|
||||||
- Spacy
|
- DuckDB
|
||||||
- Jupyter
|
- BMC Control-M
|
||||||
- scikit-learn
|
|
||||||
- Tidyverse
|
|
||||||
- XGBoost
|
|
||||||
- Typelevel
|
|
||||||
- title: Frameworks
|
|
||||||
content:
|
|
||||||
- Flask
|
|
||||||
- Hugo
|
|
||||||
- title:
|
|
||||||
en: "Data Science and Engineering"
|
|
||||||
fr: "Sciences et Ingénierie des Données"
|
|
||||||
content:
|
|
||||||
fr:
|
|
||||||
- Analyse de données
|
|
||||||
- Calcul distribué
|
|
||||||
- Data Mining
|
|
||||||
- NLP
|
|
||||||
- Machine-Learning
|
|
||||||
- Deep-Learning
|
|
||||||
- Base de données
|
|
||||||
- Analyse de réseaux
|
|
||||||
- Analyse de séries temporelles
|
|
||||||
en:
|
|
||||||
- Data Analysis
|
|
||||||
- Optimization
|
|
||||||
- Distributed Computing
|
|
||||||
- Data Mining
|
|
||||||
- NLP
|
|
||||||
- Machine-Learning
|
|
||||||
- Deep-Learning
|
|
||||||
- Database Systems
|
|
||||||
- Network Analysis
|
|
||||||
- Time Series Analysis
|
|
||||||
- title:
|
|
||||||
fr: "Systèmes d'Exploitation"
|
|
||||||
en: "Operating Systems"
|
|
||||||
content:
|
|
||||||
- fr:
|
|
||||||
Systèmes UNIX: [Linux, BSD]
|
|
||||||
en:
|
|
||||||
UNIX systems: [Linux, BSD]
|
|
||||||
- Windows
|
|
||||||
- title:
|
- title:
|
||||||
fr: Bases de données
|
fr: Bases de données
|
||||||
en: Database systems
|
en: Databases
|
||||||
content:
|
content:
|
||||||
- PostgreSQL
|
- PostgreSQL
|
||||||
|
- MySQL
|
||||||
- SQLite
|
- SQLite
|
||||||
|
- Apache Hive
|
||||||
- Neo4j
|
- Neo4j
|
||||||
- Cassandra
|
- Cassandra
|
||||||
- MariaDB
|
- Trino
|
||||||
- Apache Hive
|
|
||||||
- SAP IQ
|
|
||||||
- SAP ASE
|
|
||||||
- title:
|
- title:
|
||||||
fr: "Bureautique"
|
fr: Cloud & Infrastructure
|
||||||
en: "Office Automation"
|
en: Cloud & Infrastructure
|
||||||
content:
|
content:
|
||||||
- Microsoft Office: [Word, Excel, PowerPoint, Outlook]
|
en:
|
||||||
- Libre Office
|
|
||||||
- title:
|
|
||||||
fr: Gestion de Projet
|
|
||||||
en: Project Management
|
|
||||||
content: [Git, Kanban, Scrum, Agile, JIRA]
|
|
||||||
- title:
|
|
||||||
fr: "Autres Outils Informatiques"
|
|
||||||
en: "Other IT Tools"
|
|
||||||
content:
|
|
||||||
- Apache Hadoop: ["YARN", "MapR", "HDFS"]
|
|
||||||
- Docker
|
- Docker
|
||||||
|
- AWS (EC2, S3, IAM)
|
||||||
|
- GCP (BigQuery)
|
||||||
- Proxmox VE
|
- Proxmox VE
|
||||||
|
- Linux
|
||||||
|
- Terraform
|
||||||
|
- Kubernetes
|
||||||
|
fr:
|
||||||
|
- Docker
|
||||||
|
- AWS (EC2, S3, IAM)
|
||||||
|
- GCP (BigQuery)
|
||||||
|
- Proxmox VE
|
||||||
|
- Linux
|
||||||
|
- Terraform
|
||||||
|
- Kubernetes
|
||||||
|
- title: CI/CD
|
||||||
|
content:
|
||||||
|
- Jenkins
|
||||||
|
- GitHub Actions
|
||||||
|
- title: Machine Learning
|
||||||
|
content:
|
||||||
|
- PyTorch
|
||||||
|
- scikit-learn
|
||||||
|
- XGBoost
|
||||||
|
- Pandas
|
||||||
|
- Polars
|
||||||
|
- Numpy
|
||||||
|
- Spacy
|
||||||
|
- title:
|
||||||
|
fr: Frameworks Web
|
||||||
|
en: Frameworks
|
||||||
|
content:
|
||||||
|
- Spring
|
||||||
|
- Flask
|
||||||
|
- title:
|
||||||
|
fr: Outils & Méthodologies
|
||||||
|
en: Tools & Methodologies
|
||||||
|
content:
|
||||||
|
- Git
|
||||||
|
- Kanban
|
||||||
|
- Scrum
|
||||||
|
- Agile
|
||||||
|
- JIRA
|
||||||
- title:
|
- title:
|
||||||
fr: Intérêts
|
fr: Intérêts
|
||||||
en: Interests
|
en: Interests
|
||||||
content:
|
content:
|
||||||
fr:
|
fr:
|
||||||
- Jeux de Société
|
|
||||||
- Japanimation
|
- Japanimation
|
||||||
- Randonnées
|
- Homelab
|
||||||
- Escalade
|
|
||||||
- Creative Coding
|
|
||||||
- Course à Pied
|
- Course à Pied
|
||||||
en:
|
|
||||||
- Board Games
|
|
||||||
- Japanimation
|
|
||||||
- Hiking
|
|
||||||
- Climbing
|
|
||||||
- Creative Coding
|
- Creative Coding
|
||||||
|
- Jeux de Société
|
||||||
|
- Escalade
|
||||||
|
- Randonnées
|
||||||
|
en:
|
||||||
|
- Japanimation
|
||||||
|
- Homelab
|
||||||
- Running
|
- Running
|
||||||
|
- Creative Coding
|
||||||
|
- Board Games
|
||||||
|
- Climbing
|
||||||
|
- Hiking
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
en: Software Engineer / Data Engineer with 4+ years of experience designing and building distributed data platforms and large-scale data processing systems. Experienced in designing event-driven architectures, developing production Spark and Kafka applications, and improving the performance, scalability, and reliability of critical data pipelines.
|
||||||
|
# en: Software Engineer / Data Engineer with 4+ years of experience building distributed data systems for investment banking. Experienced designing high-throughput Kafka and Spark applications, developing scalable data platforms, and applying software engineering best practices to production data systems.
|
||||||
|
fr: Software Engineer / Data Engineer avec plus de 4 ans d'expérience dans la conception et l'exploitation de plateformes de données distribuées et de systèmes de traitement de données à grande échelle. Expérience dans la conception d'architectures orientées événements, le développement d'applications Spark et Kafka en production ainsi que l'amélioration des performances, de la scalabilité et de la fiabilité de pipelines de données critiques.
|
||||||
6
main.typ
6
main.typ
|
|
@ -4,10 +4,12 @@
|
||||||
#let render(language) = {
|
#let render(language) = {
|
||||||
let cvdata = utils.filterLanguage(language, (
|
let cvdata = utils.filterLanguage(language, (
|
||||||
personal: yaml("data/personal.yaml"),
|
personal: yaml("data/personal.yaml"),
|
||||||
|
summary: yaml("data/summary.yaml"),
|
||||||
experience: yaml("data/experience.yaml"),
|
experience: yaml("data/experience.yaml"),
|
||||||
education: yaml("data/education.yaml"),
|
education: yaml("data/education.yaml"),
|
||||||
skills: yaml("data/skills.yaml"),
|
skills: yaml("data/skills.yaml"),
|
||||||
languages: yaml("data/languages.yaml"),
|
languages: yaml("data/languages.yaml"),
|
||||||
|
projects: yaml("data/projects.yaml"),
|
||||||
))
|
))
|
||||||
|
|
||||||
let uservars = (
|
let uservars = (
|
||||||
|
|
@ -43,9 +45,11 @@
|
||||||
show: doc => cvinit(doc)
|
show: doc => cvinit(doc)
|
||||||
|
|
||||||
cvheading(language, cvdata, uservars)
|
cvheading(language, cvdata, uservars)
|
||||||
|
cvsummary(cvdata)
|
||||||
cvwork(language, cvdata)
|
cvwork(language, cvdata)
|
||||||
cveducation(language, cvdata)
|
cveducation(language, cvdata)
|
||||||
cvlanguages(language, cvdata)
|
cvlanguages(language, cvdata)
|
||||||
cvskills(language, cvdata)
|
cvprojects(language, cvdata)
|
||||||
|
cvskills(language, cvdata, sortLexically: false)
|
||||||
endnote()
|
endnote()
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue