Update Resume
parent
142e89be48
commit
aa4c934300
56
cv/cv.typ
56
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) = {
|
||||
if info.experience != none {
|
||||
block[
|
||||
|
|
@ -126,6 +132,11 @@
|
|||
#text(weight: "semibold", size: 9.0pt, fill: luma(30.6%))[#p.what #h(1fr)
|
||||
#start #sym.dash.en #end] \
|
||||
// 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 [
|
||||
- #text(weight: "light")[#eval(hi, mode: "markup")]
|
||||
]
|
||||
|
|
@ -166,9 +177,12 @@
|
|||
#text(weight: "semibold", size: 9.0pt, fill: luma(30.6%))[#edu.what #h(1fr)
|
||||
#start #sym.dash.en #end] \
|
||||
|
||||
#for hi in edu.why [
|
||||
- #text(weight: "light")[#eval(hi, mode: "markup")]
|
||||
]
|
||||
#if edu.why != none and edu.why.len() > 0 {
|
||||
edu.why
|
||||
// for hi in edu.why [
|
||||
// - #text(weight: "light")[#eval(hi, mode: "markup")]
|
||||
// ]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -324,26 +338,34 @@
|
|||
]
|
||||
}
|
||||
|
||||
#let cvskills(lang, info, isbreakable: true) = {
|
||||
#let cvskills(lang, info, isbreakable: true, sortLexically: true) = {
|
||||
block(
|
||||
breakable: isbreakable,
|
||||
)[
|
||||
== #info.skills.title
|
||||
|
||||
#for skill in info.skills.content {
|
||||
let skillContent = skill.content.sorted(key: x => {
|
||||
if type(x) == dictionary {
|
||||
x.keys().first()
|
||||
} else { x }
|
||||
}).map(
|
||||
x => {
|
||||
let baseContent = if sortLexically {
|
||||
skill.content.sorted(key: x => {
|
||||
if type(x) == dictionary {
|
||||
[#x.keys().first() (#text(style: "italic")[#x.values().first().sorted().join(", ")])]
|
||||
} else {
|
||||
[#x]
|
||||
}
|
||||
},
|
||||
).join(", ")
|
||||
x.keys().first()
|
||||
} else { x }
|
||||
})
|
||||
} else {
|
||||
skill.content
|
||||
}
|
||||
|
||||
let skillContent = baseContent
|
||||
.map(
|
||||
x => {
|
||||
if type(x) == dictionary {
|
||||
[#x.keys().first() (#text(style: "italic")[#x.values().first().sorted().join[ #sym.circle.filled.tiny ]])]
|
||||
} else {
|
||||
[#x]
|
||||
}
|
||||
},
|
||||
)
|
||||
.join[ #sym.circle.filled.small ]
|
||||
|
||||
[- *#skill.title*#text(weight: "light")[: #skillContent]]
|
||||
}
|
||||
|
|
@ -372,4 +394,4 @@
|
|||
#set text(size: 5pt, font: "Consolas", fill: silver)
|
||||
Félix Desmaretz #datetime.today().display("[year]-[month]-[day]")
|
||||
])
|
||||
}
|
||||
}
|
||||
|
|
|
|||
21
cv/utils.typ
21
cv/utils.typ
|
|
@ -38,22 +38,23 @@
|
|||
return date
|
||||
}
|
||||
|
||||
// Recursively filter entries based on the language prefix.
|
||||
#let filterLanguage(lang, data) = {
|
||||
if type(data) == dictionary {
|
||||
if data.at(lang, default: none) == none {
|
||||
data = data
|
||||
.pairs()
|
||||
.map(xs => (xs.first(), filterLanguage(lang, xs.last())))
|
||||
.fold((:), (acc, xs) => {
|
||||
acc.insert(xs.first(), xs.last())
|
||||
acc
|
||||
})
|
||||
} else {
|
||||
if data.keys().contains(lang) {
|
||||
data = filterLanguage(lang, data.at(lang))
|
||||
} else {
|
||||
data = data
|
||||
.pairs()
|
||||
.map(xs => (xs.first(), filterLanguage(lang, xs.last())))
|
||||
.fold((:), (acc, xs) => {
|
||||
acc.insert(xs.first(), xs.last())
|
||||
acc
|
||||
})
|
||||
}
|
||||
} else if type(data) == array {
|
||||
data = data.map(v => filterLanguage(lang, v))
|
||||
}
|
||||
|
||||
data
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,29 +6,13 @@ content:
|
|||
endDate: 2021-09-01
|
||||
url: https://math-info.u-paris.fr/
|
||||
what:
|
||||
en: Master's degree in computer science - Data Science
|
||||
fr: Master d’Informatique - Sciences des données
|
||||
en: Double Master's Degree in Computer Science and Mathematics (Data Science)
|
||||
fr: Double Master Mathématiques & Informatique (Sciences des données)
|
||||
with: Université de Paris
|
||||
where:
|
||||
en: Paris, France
|
||||
fr: Paris (75)
|
||||
why:
|
||||
- en: Game Theory, Big Data Technologies, Algorithms, Database, Distributed Algorithms, Data Scraping
|
||||
fr: Théorie des jeux, Technologies du Big Data, Algorithmique, Base de données, Algorithmique répartie, Data Scraping
|
||||
- en: Highest Honours
|
||||
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
|
||||
en:
|
||||
- Highest Honours
|
||||
fr:
|
||||
|
|
@ -13,33 +13,53 @@ content:
|
|||
en: present
|
||||
fr: actuellement
|
||||
what:
|
||||
en: Data Engineer Consultant - BPCE
|
||||
fr: Consultant Data Engineer - BPCE
|
||||
en: Data Engineer (Consultant) - BPCE
|
||||
fr: Data Engineer (Consultant) - BPCE
|
||||
technologies:
|
||||
- Scala
|
||||
- Kafka
|
||||
- Hadoop
|
||||
- SQL
|
||||
- Java
|
||||
- Spring
|
||||
- Python
|
||||
- Control-M
|
||||
- Git
|
||||
why:
|
||||
fr:
|
||||
- Développement d'une solution de monitoring, en architecture "event-driven" (EDA), de l'intégralité des applications du datalake.
|
||||
- Accompagnement et implémentation de la monté de version de Spark 2 vers Spark 3 sur un large projet legacy.
|
||||
- Scala, SQL, Bash, Spark, Kafka, Hive, ZIO
|
||||
- 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:
|
||||
- Development of a solution with an event-driven architecture (EDA) to monitor all the applications running on the datalake.
|
||||
- Support and implementation of the Spark 2 to Spark 3 upgrade in a large legacy project.
|
||||
- Scala, SQL, Bash, Spark, Kafka, Hive, ZIO
|
||||
- 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 while ensuring compatibility and while maintaining 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
|
||||
fr: Consultant Data Engineer - Natixis
|
||||
en: Data Engineer (Consultant) - Natixis
|
||||
fr: Data Engineer (Consultant) - Natixis
|
||||
technologies:
|
||||
- Scala
|
||||
- Kafka
|
||||
- Hadoop
|
||||
- SQL
|
||||
- Python
|
||||
- Control-M
|
||||
- Git
|
||||
why:
|
||||
en:
|
||||
- Management, design and implementation of a multi-stream data producer; computing and sending up to 1 billion messages per day.
|
||||
- Implementation of financial data computation in a distributed environment.
|
||||
- Maintenance and optimization of ETL pipelines for regulatory data; reduced resources usage by 5.
|
||||
- Scala, SQL, Bash, Spark, Kafka, Hive, Typelevel
|
||||
- Designed, implemented and monitored a complex Kafka producer computing and sending up to 1 billion messages per day.
|
||||
- Implemented distributed Spark applications for large-scale financial data processing.
|
||||
- Optimized and maintained production ETL pipelines for regulatory data; reduced resources usage by 80%.
|
||||
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.
|
||||
- Développement de batchs de calculs de données financières en environnement distribué.
|
||||
- Maintenance et optimisation de calculs de données réglementaire; réduction de ressources utilisées par 5.
|
||||
- Scala, SQL, Bash, Spark, Kafka, Hive, Typelevel
|
||||
- Conception, développement et supervision d'un producteur Kafka traitant jusqu'à un milliard de messages par jour.
|
||||
- Développement d'applications Spark distribuées pour le traitement de données financières à grande échelle.
|
||||
- Optimisation et maintenance de pipelines ETL en production pour des données réglementaires, réduisant la consommation de ressources de 80 %.
|
||||
- where:
|
||||
en: Montrouge, France
|
||||
fr: Montrouge (92)
|
||||
|
|
@ -49,14 +69,22 @@ content:
|
|||
- startDate: 2021-04-16
|
||||
endDate: 2021-10-16
|
||||
what:
|
||||
en: Data Scientist Intern
|
||||
fr: Data Scientist Stagiaire
|
||||
en: Data Scientist (Intern)
|
||||
fr: Data Scientist (Stagiaire)
|
||||
technologies:
|
||||
- Scala
|
||||
- Spark
|
||||
- Python
|
||||
- Pandas
|
||||
- Hadoop
|
||||
- iGraph
|
||||
- XGBoost
|
||||
- Git
|
||||
why:
|
||||
- en: "Feature Engineering via network modeling \\& analysis giving a 10\\% score improvement for prediction models"
|
||||
fr: "Feature engineering via modélisation \\& analyse de graphes augmentant les scores des modèles de prédictions de 10\\%"
|
||||
- en: Development of a multi-environment pipeline execution program allowing the usage of tools missing in one or another
|
||||
fr: Développement d'une solution d'exécution de chaînes de traitement multi-environnements permettant un plus large choix d'outils.
|
||||
- Python, Scala, SQL, Spark, Pandas, Hive, XGBoost, iGraph, GraphX
|
||||
- en: "Engineered features via network modeling \\& analysis giving a 10\\% score improvement for prediction models"
|
||||
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: Developed a multi-environment pipeline execution program enabling the use of tools missing in one or another
|
||||
fr: Développement d'un programme d'exécution de pipelines multi-environnements permettant l'utilisation d'outils indisponibles selon les plateformes.
|
||||
- with:
|
||||
en: University Association IP7
|
||||
fr: Association Universitaire IP7
|
||||
|
|
@ -72,8 +100,8 @@ content:
|
|||
endDate: 2021-06-01
|
||||
why:
|
||||
en:
|
||||
- "Help in setting up a programming contest \\& writing algorithmic problems"
|
||||
- Facilitator for multiple Linux installation parties
|
||||
- Organized programming contests and authored algorithmic problems.
|
||||
- Facilitated Linux install events for students.
|
||||
fr:
|
||||
- "Mise en place d’un concours de programmation \\& écriture de problèmes algorithmiques"
|
||||
- Animateur de plusieurs install party Linux
|
||||
- Organisation de concours de programmation et rédaction de problèmes algorithmiques.
|
||||
- Animation d'ateliers d'installation de Linux destinés aux étudiants.
|
||||
|
|
|
|||
152
data/skills.yaml
152
data/skills.yaml
|
|
@ -1,74 +1,59 @@
|
|||
title:
|
||||
en: Skills & Interests
|
||||
en: Skills & Interests
|
||||
fr: Compétences & Intérêts
|
||||
content:
|
||||
- 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
|
||||
- Analyse de réseaux
|
||||
- Analyse de séries temporelles
|
||||
en:
|
||||
- Data Analysis
|
||||
- Distributed Computing
|
||||
- Data Mining
|
||||
- NLP
|
||||
- Network Analysis
|
||||
- Time Series Analysis
|
||||
- title:
|
||||
fr: Langages Informatique
|
||||
en: Computer Languages
|
||||
fr: Langages
|
||||
en: Languages
|
||||
content:
|
||||
- Python
|
||||
- Scala
|
||||
- SQL
|
||||
- Java
|
||||
- Clojure
|
||||
- R
|
||||
- Clojure
|
||||
- C
|
||||
- C++
|
||||
- LaTeX
|
||||
- Bash
|
||||
- VBA
|
||||
- Typst
|
||||
- title:
|
||||
fr: Outils Data
|
||||
en: Data Tools
|
||||
content:
|
||||
- Pandas
|
||||
- Apache Spark / PySpark
|
||||
- Apache Hadoop
|
||||
- Apache Kafka
|
||||
- DuckDB
|
||||
- Tidyverse
|
||||
- title: Machine Learning
|
||||
content:
|
||||
- Numpy
|
||||
- PyTorch
|
||||
- Spacy
|
||||
- scikit-learn
|
||||
- XGBoost
|
||||
- title:
|
||||
fr: Cloud & Virtualisation
|
||||
en: Cloud & Virtualization
|
||||
fr: Data Engineering
|
||||
en: Data Engineering
|
||||
content:
|
||||
- AWS
|
||||
- Proxmox VE
|
||||
- Docker
|
||||
- Kubernetes
|
||||
- Spark / PySpark
|
||||
- Kafka
|
||||
- Airflow
|
||||
- Hadoop
|
||||
- DuckDB
|
||||
- BMC Control-M
|
||||
- title:
|
||||
fr: Cloud & Infrastructure
|
||||
en: Cloud & Infrastructure
|
||||
content:
|
||||
en:
|
||||
- Docker
|
||||
- Kubernetes
|
||||
- AWS (Working knowledge)
|
||||
- GCP (Working knowledge)
|
||||
- Proxmox VE
|
||||
fr:
|
||||
- AWS (Bonnes connaissances)
|
||||
- GCP (Bonnes connaissances)
|
||||
- Proxmox VE
|
||||
- Docker
|
||||
- Kubernetes
|
||||
- title: CI/CD
|
||||
content:
|
||||
- Jenkins
|
||||
- Github Actions
|
||||
- title: Orchestration
|
||||
- GitHub Actions
|
||||
- title: Machine Learning
|
||||
content:
|
||||
- Apache Airflow
|
||||
- BMC Control-M
|
||||
- PyTorch
|
||||
- scikit-learn
|
||||
- XGBoost
|
||||
- Pandas
|
||||
- Polars
|
||||
- Numpy
|
||||
- Spacy
|
||||
- title:
|
||||
fr: Bases de données
|
||||
en: Database systems
|
||||
|
|
@ -76,59 +61,42 @@ content:
|
|||
- PostgreSQL
|
||||
- MySQL
|
||||
- SQLite
|
||||
- Neo4j
|
||||
- Apache Cassandra
|
||||
- MariaDB
|
||||
- Apache Hive
|
||||
- Neo4j
|
||||
- Cassandra
|
||||
- Trino
|
||||
- SAP IQ
|
||||
- SAP ASE
|
||||
- title: Networking
|
||||
content:
|
||||
- OPNSense
|
||||
- Caddy
|
||||
- title:
|
||||
- title:
|
||||
fr: Frameworks Web
|
||||
en: Web Frameworks
|
||||
content:
|
||||
- Spring
|
||||
- Flask
|
||||
- Hugo
|
||||
- title:
|
||||
fr: Systèmes d'Exploitation
|
||||
en: Operating Systems
|
||||
content:
|
||||
- fr:
|
||||
Systèmes UNIX: [Linux, BSD]
|
||||
en:
|
||||
UNIX systems: [Linux, BSD]
|
||||
- Windows
|
||||
- title:
|
||||
fr: Bureautique
|
||||
en: Office Automation
|
||||
content:
|
||||
- Microsoft Office: [Word, Excel, PowerPoint, Outlook]
|
||||
- Libre Office
|
||||
- title:
|
||||
fr: Gestion de Projet
|
||||
en: Project Management
|
||||
content: [Git, Kanban, Scrum, Agile, JIRA]
|
||||
fr: Outils & Méthodologies
|
||||
en: Tools & Methodologies
|
||||
content:
|
||||
- Git
|
||||
- Kanban
|
||||
- Scrum
|
||||
- Agile
|
||||
- JIRA
|
||||
- title:
|
||||
fr: Intérêts
|
||||
en: Interests
|
||||
content:
|
||||
fr:
|
||||
- Jeux de Société
|
||||
- Japanimation
|
||||
- Randonnées
|
||||
- Escalade
|
||||
- Creative Coding
|
||||
- Course à Pied
|
||||
- Homelab
|
||||
en:
|
||||
- Board Games
|
||||
- Japanimation
|
||||
- Hiking
|
||||
- Climbing
|
||||
- Course à Pied
|
||||
- Creative Coding
|
||||
- Jeux de Société
|
||||
- Escalade
|
||||
- Randonnées
|
||||
en:
|
||||
- Japanimation
|
||||
- Homelab
|
||||
- Running
|
||||
- Homelab
|
||||
- Creative Coding
|
||||
- Board Games
|
||||
- Climbing
|
||||
- Hiking
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
en: Software Engineer / Data Engineer with 4+ years of experience 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.
|
||||
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,6 +4,7 @@
|
|||
#let render(language) = {
|
||||
let cvdata = utils.filterLanguage(language, (
|
||||
personal: yaml("data/personal.yaml"),
|
||||
summary: yaml("data/summary.yaml"),
|
||||
experience: yaml("data/experience.yaml"),
|
||||
education: yaml("data/education.yaml"),
|
||||
skills: yaml("data/skills.yaml"),
|
||||
|
|
@ -43,9 +44,10 @@
|
|||
show: doc => cvinit(doc)
|
||||
|
||||
cvheading(language, cvdata, uservars)
|
||||
cvsummary(cvdata)
|
||||
cvwork(language, cvdata)
|
||||
cveducation(language, cvdata)
|
||||
cvlanguages(language, cvdata)
|
||||
cvskills(language, cvdata)
|
||||
cvskills(language, cvdata, sortLexically: false)
|
||||
endnote()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue