mirror of
https://github.com/mx42/cv.git
synced 2026-01-14 05:09:51 +01:00
feat: create FR + EN files & adapt Justfile
This commit is contained in:
18
Justfile
18
Justfile
@@ -1,5 +1,15 @@
|
||||
build:
|
||||
typst compile cv.typ
|
||||
default:
|
||||
@just pdf "en"
|
||||
@just pdf "fr"
|
||||
|
||||
watch:
|
||||
typst watch cv.typ
|
||||
build lang="en":
|
||||
typst compile cv_{{lang}}.typ
|
||||
|
||||
pdf lang="en":
|
||||
typst compile cv_{{lang}}.typ --format pdf
|
||||
|
||||
image lang="en":
|
||||
typst compile cv_{{lang}}.typ --format png
|
||||
|
||||
watch lang="en":
|
||||
typst watch cv_{{lang}}.typ
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
#show: modern-resume.with(
|
||||
author: "Xavier Morel",
|
||||
job-title: "Developer (15 years of experience)",
|
||||
job-title: "Software & Data Engineer (15 years of experience)",
|
||||
// bio: "15 YoE",
|
||||
// avatar: image(...)
|
||||
contact-options: (
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
// == Skills
|
||||
|
||||
Skills: #pill("Software", fill: true)
|
||||
#pill("Software", fill: true)
|
||||
#pill("Data", fill: true)
|
||||
#pill("CI/CD", fill: true)
|
||||
#pill("Git", fill: true)
|
||||
@@ -24,22 +24,53 @@ Skills: #pill("Software", fill: true)
|
||||
|
||||
// === Programming Languages
|
||||
|
||||
#pill("Rust ★⯪☆ ♥︎♥︎♥︎")
|
||||
#pill("Scala ★★☆ ♥︎♥︎♡")
|
||||
#pill("Haskell ★☆☆ ♥︎♥︎♡")
|
||||
#pill("Python ★★★ ♥︎♡♡")
|
||||
#block(
|
||||
stroke: black,
|
||||
radius: 5pt,
|
||||
table(
|
||||
columns: (1.3fr, 1fr, 1fr, 1fr),
|
||||
align: (center + horizon),
|
||||
stroke: (x, y) => (
|
||||
top: if y > 0 { black },
|
||||
left: if x > 0 { black },
|
||||
),
|
||||
table.header(
|
||||
[Proficiency #sym.arrow \ vs Affinity #sym.arrow.b],
|
||||
[★☆☆], [★★☆], [★★★],
|
||||
),
|
||||
[♥︎♡♡], [], [], [Python],
|
||||
[♥︎♥︎♡], [Haskell], [Scala], [],
|
||||
[♥︎♥︎♥︎], [], [Rust], [],
|
||||
)
|
||||
)
|
||||
// #pill("Rust ★⯪☆
|
||||
// ♥︎♥︎♥︎
|
||||
// ")
|
||||
// #pill("Scala ★★☆
|
||||
// ♥︎♥︎♡
|
||||
// ")
|
||||
// #pill("Haskell ★☆
|
||||
// ☆
|
||||
// ♥︎♥︎♡")
|
||||
// #pill("Python ★★
|
||||
// ★
|
||||
// ♥︎♡♡
|
||||
// ")
|
||||
|
||||
// === Languages
|
||||
Languages: #pill("French (Native)", fill: true)
|
||||
#pill("French (Native)", fill: true)
|
||||
#pill("English (Fluent)", fill: true)
|
||||
|
||||
== Work Experience
|
||||
// == Experiences
|
||||
|
||||
#experience-work(
|
||||
#v(10pt)
|
||||
|
||||
#experience(
|
||||
title: "Senior Data Engineer",
|
||||
subtitle: "Prophesee",
|
||||
date-from: "Sept 2023",
|
||||
date-to: "Present (1yr+)",
|
||||
label: "",
|
||||
task-description: [
|
||||
- Design & development of the whole data infrastructure to process, store and restitute data for ML training
|
||||
- Development of some GUI tooling for data validation
|
||||
@@ -51,16 +82,17 @@ Languages: #pill("French (Native)", fill: true)
|
||||
]
|
||||
)
|
||||
|
||||
#experience-work(
|
||||
#experience(
|
||||
title: "Senior Data Engineer",
|
||||
subtitle: "CybelAngel",
|
||||
date-from: "May 2019",
|
||||
date-to: "Sept 2023 (4yr 5mo)",
|
||||
label: "",
|
||||
task-description: [
|
||||
- Migration of an unscalable ML monolithic app to more adapted micro-services
|
||||
- Integration of a Data Warehouse on BigQuery to collect company data using Airflow and Pub/Sub + Apache Beam (Dataflow)
|
||||
- Transformation on BigQuery with Airflow and DBT
|
||||
- Dashboards using Data Studio (Looker Studio) to give back data to different shareholders
|
||||
- Dashboards using Data Studio (Looker Studio) to give back data to different stakeholders
|
||||
#pill("Python")
|
||||
#pill("Airflow")
|
||||
#pill("BigQuery")
|
||||
@@ -79,11 +111,12 @@ Languages: #pill("French (Native)", fill: true)
|
||||
|
||||
#v(30pt)
|
||||
|
||||
#experience-work(
|
||||
#experience(
|
||||
title: "Data Engineer",
|
||||
subtitle: "Hellowork",
|
||||
date-from: "June 2017",
|
||||
date-to: "May 2019 (2yr)",
|
||||
label: "",
|
||||
task-description: [
|
||||
- Data collection pipelines using Airflow on Azure Cloud
|
||||
- Setup of a small Hadoop cluster (YARN+HDFS) to run local transform Spark pipelines
|
||||
@@ -101,11 +134,12 @@ Languages: #pill("French (Native)", fill: true)
|
||||
]
|
||||
)
|
||||
|
||||
#experience-work(
|
||||
#experience(
|
||||
title: "Software Engineer",
|
||||
subtitle: "Keyade (GroupM/WPP)",
|
||||
date-from: "July 2012",
|
||||
date-to: "June 2017 (5 yr)",
|
||||
label: "",
|
||||
task-description: [
|
||||
- Integrating remote API data into the company infra
|
||||
- Writing ad-revenue attribution engine
|
||||
@@ -122,12 +156,13 @@ Languages: #pill("French (Native)", fill: true)
|
||||
]
|
||||
)
|
||||
|
||||
#experience-work(
|
||||
#experience(
|
||||
title: "Web Developer",
|
||||
subtitle: "RegimeCoach",
|
||||
facility-description: "Intern Nov 2008 ~ Sept 2009 (11mo)",
|
||||
date-from: "Sept 2009",
|
||||
date-to: "July 2012 (2yr 11mo)",
|
||||
label: "",
|
||||
task-description: [
|
||||
- Joomla! CMS maintenance
|
||||
- Development of some rule engine using logic programming (Smodels + Lparse)
|
||||
207
cv_fr.typ
Normal file
207
cv_fr.typ
Normal file
@@ -0,0 +1,207 @@
|
||||
#import "@preview/modern-resume:0.1.0": *
|
||||
|
||||
#set text(lang: "fr");
|
||||
|
||||
#show: modern-resume.with(
|
||||
author: "Xavier Morel",
|
||||
job-title: "Software & Data Engineer (15 ans d'expérience)",
|
||||
// bio: "15 YoE",
|
||||
// avatar: image(...)
|
||||
contact-options: (
|
||||
email: link("mailto:morelx42@protonmail.com")[morelx42\@protonmail.com],
|
||||
mobile: "(+33)6.63.58.81.45",
|
||||
location: "France (remote)",
|
||||
linkedin: link("https://linkedin.com/in/xavier-morel-08307b261")[linkedin/xavier-morel],
|
||||
github: link("https://github.com/mx42")[github/mx42],
|
||||
),
|
||||
)
|
||||
|
||||
// == Compétences
|
||||
|
||||
#pill("Logiciel", fill: true)
|
||||
#pill("Data", fill: true)
|
||||
#pill("CI/CD", fill: true)
|
||||
#pill("Git", fill: true)
|
||||
#pill("Infra-as-Code", fill: true)
|
||||
|
||||
// === Langages de programmation
|
||||
|
||||
#block(
|
||||
stroke: black,
|
||||
radius: 5pt,
|
||||
table(
|
||||
columns: (1.3fr, 1fr, 1fr, 1fr),
|
||||
align: (center + horizon),
|
||||
stroke: (x, y) => (
|
||||
top: if y > 0 { black },
|
||||
left: if x > 0 { black },
|
||||
),
|
||||
table.header(
|
||||
[Efficacité #sym.arrow \ vs Affinité #sym.arrow.b],
|
||||
[★☆☆], [★★☆], [★★★],
|
||||
),
|
||||
[♥︎♡♡], [], [], [Python],
|
||||
[♥︎♥︎♡], [Haskell], [Scala], [],
|
||||
[♥︎♥︎♥︎], [], [Rust], [],
|
||||
)
|
||||
)
|
||||
// #pill("Rust ★⯪☆
|
||||
// ♥︎♥︎♥︎
|
||||
// ")
|
||||
// #pill("Scala ★★☆
|
||||
// ♥︎♥︎♡
|
||||
// ")
|
||||
// #pill("Haskell ★☆
|
||||
// ☆
|
||||
// ♥︎♥︎♡")
|
||||
// #pill("Python ★★
|
||||
// ★
|
||||
// ♥︎♡♡
|
||||
// ")
|
||||
|
||||
// === Languages
|
||||
#pill("Français (Natif)", fill: true)
|
||||
#pill("Anglais (Professionnel)", fill: true)
|
||||
|
||||
// == Experiences
|
||||
|
||||
#v(10pt)
|
||||
|
||||
#experience(
|
||||
title: "Senior Data Engineer",
|
||||
subtitle: "Prophesee",
|
||||
date-from: "Sept 2023",
|
||||
date-to: "Présent (1an+)",
|
||||
label: "",
|
||||
task-description: [
|
||||
- Design & développement de l'infrastructure pour traîter, stocker et restituer les données pour l'entraînement ML
|
||||
- Développement d'outils et IU pour la validation des données
|
||||
- Assistance à la mise en place de pratiques de développement standard pour l'industrie
|
||||
#pill("Python") #pill("Rust")
|
||||
#pill("Github Actions")
|
||||
#pill("PyQT") #pill("AWS S3") #pill("MongoDB") #pill("API")
|
||||
#pill("Télétravail complet: Paris + Grenoble, France")
|
||||
]
|
||||
)
|
||||
|
||||
#experience(
|
||||
title: "Senior Data Engineer",
|
||||
subtitle: "CybelAngel",
|
||||
date-from: "Mai 2019",
|
||||
date-to: "Sept 2023 (4 ans 5 mois)",
|
||||
label: "",
|
||||
task-description: [
|
||||
- Migration d'une application monolithique ML en micro-services mieux adaptés
|
||||
- Intégration d'un Data Warehouse sur BigQuery pour collecter les données de l'entreprise en utilisant Airflow, Pub/Sub et Apache Beam (Dataflow)
|
||||
- Transformations sur BigQuery avec Airflow et DBT
|
||||
- Tableaux de bord Data Studio (Looker Studio) pour restituer la donnée aux décideurs
|
||||
#pill("Python")
|
||||
#pill("Airflow")
|
||||
#pill("BigQuery")
|
||||
#pill("DBT")
|
||||
#pill("Java")
|
||||
#pill("Apache Beam")
|
||||
#pill("BigTable")
|
||||
#pill("Pub/Sub")
|
||||
#pill("RabbitMQ")
|
||||
#pill("Kubernetes")
|
||||
#pill("Terraform")
|
||||
#pill("Google Cloud")
|
||||
#pill("Télétravail complet: Paris, France")
|
||||
]
|
||||
)
|
||||
|
||||
#v(30pt)
|
||||
|
||||
#experience(
|
||||
title: "Data Engineer",
|
||||
subtitle: "Hellowork",
|
||||
date-from: "Juin 2017",
|
||||
date-to: "Mai 2019 (2 ans)",
|
||||
label: "",
|
||||
task-description: [
|
||||
- Pipeline de collecte de données utilisant Airflow, sur le Cloud Azure
|
||||
- Mise en place d'un cluster Hadoop (YARN+HDFS) pour exécuter des pipelines de transformations locales avec Spark
|
||||
#pill("Scala")
|
||||
#pill("Python")
|
||||
#pill("Airflow")
|
||||
#pill("Apache Spark")
|
||||
#pill("Azure")
|
||||
#pill("Hadoop Setup")
|
||||
#pill("Apache YARN")
|
||||
#pill("HDFS")
|
||||
#pill("Cassandra")
|
||||
#pill("Puppet")
|
||||
#pill("Télétravail hybride: Rennes, France")
|
||||
]
|
||||
)
|
||||
|
||||
#experience(
|
||||
title: "Software Engineer",
|
||||
subtitle: "Keyade (GroupM/WPP)",
|
||||
date-from: "Juillet 2012",
|
||||
date-to: "Juin 2017 (5 ans)",
|
||||
label: "",
|
||||
task-description: [
|
||||
- Intégration des données des API externes dans l'infrastructure de l'entreprise
|
||||
- Écriture du moteur d'attribution des revenus publicitaires
|
||||
- Migration sur des technologies Big Data Hadoop (HDFS/HBase) avec Apache Storm et MapReduce
|
||||
#pill("PHP")
|
||||
#pill("Java")
|
||||
#pill("Apache Storm")
|
||||
#pill("MapReduce")
|
||||
#pill("MySQL")
|
||||
#pill("HBase")
|
||||
#pill("HDFS")
|
||||
#pill("API")
|
||||
#pill("Sur site: Paris, France")
|
||||
]
|
||||
)
|
||||
|
||||
#experience(
|
||||
title: "Web Developer",
|
||||
subtitle: "RegimeCoach",
|
||||
facility-description: "Stage Nov 2008 ~ Sept 2009 (11 mois)",
|
||||
date-from: "Sept 2009",
|
||||
date-to: "Juillet 2012 (2 ans 11 mois)",
|
||||
label: "",
|
||||
task-description: [
|
||||
- Maintenance d'un site sur Joomla!
|
||||
- Développement d'un moteur de règles en utilisant de la programmation logique (Smodels+Lparse)
|
||||
- Développement d'outils backend sur PHP, ordonnancement de tâches en utilisant Gearman
|
||||
- Initiation à la gestion de projets professionnels (travail d'équipe, ticketing, versionnage, etc)
|
||||
#pill("PHP")
|
||||
#pill("Javascript")
|
||||
#pill("HTML/CSS")
|
||||
#pill("MySQL")
|
||||
#pill("Joomla!")
|
||||
#pill("Gearman")
|
||||
#pill("Smodels")
|
||||
#pill("On-site: Paris, France")
|
||||
]
|
||||
)
|
||||
|
||||
// == Education
|
||||
|
||||
// #experience(
|
||||
// title: "Eq. Master's degree",
|
||||
// subtitle: "Epitech Paris",
|
||||
// date-from: "Sept 2006",
|
||||
// date-to: "Sept 2009",
|
||||
// label: ""
|
||||
// )
|
||||
|
||||
// #experience-edu(
|
||||
// title: "Baccalauréat Scientifique",
|
||||
// subtitle: "Lycée Marie-Curie, Nogent-sur-Oise (60)",
|
||||
// date-from: "2003",
|
||||
// date-to: "2006",
|
||||
// task-description: [
|
||||
// - Maths option
|
||||
// ]
|
||||
// )
|
||||
|
||||
// == Languages
|
||||
|
||||
// #pill("French (Native)", fill: true)
|
||||
// #pill("English (Fluent)", fill: true)
|
||||
Reference in New Issue
Block a user