diff --git a/CV_Bastien_Chanot.html b/CV_Bastien_Chanot.html index 6b39abe..05451a0 100644 --- a/CV_Bastien_Chanot.html +++ b/CV_Bastien_Chanot.html @@ -59,9 +59,9 @@ .cv-header { background: var(--dark); background-image: radial-gradient(ellipse 120% 200% at 0% 50%, var(--dark-mid) 0%, var(--dark) 60%); - padding: 22px 20mm 18px; - display: grid; - grid-template-columns: 1fr auto; + padding: 18px 20mm 14px; + display: flex; + justify-content: space-between; gap: 20px; align-items: center; position: relative; @@ -93,6 +93,7 @@ color: #fff; line-height: 1; letter-spacing: -0.5px; + white-space: nowrap; } .header-title { @@ -113,7 +114,7 @@ color: rgba(255,255,255,0.55); line-height: 1.8; white-space: nowrap; - min-width: 210px; + min-width: 240px; flex-shrink: 0; } .contact-sep { @@ -129,7 +130,7 @@ /* ── BODY ── */ .cv-body { - padding: 14px 20mm 16px; + padding: 10px 20mm 12px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='6'%3E%3Ccircle cx='1' cy='1' r='0.6' fill='rgba(26,71,48,0.05)'/%3E%3C/svg%3E"), linear-gradient(160deg, #f5f3ec 0%, #edeadf 55%, #f2efe6 100%); @@ -139,22 +140,22 @@ font-family: var(--serif); font-style: italic; font-weight: 400; - font-size: 11.5pt; + font-size: 11pt; color: var(--ink-2); - line-height: 1.7; + line-height: 1.55; border-left: 3px solid var(--g500); - padding: 6px 0 6px 12px; - margin: 14px 0; + padding: 5px 0 5px 12px; + margin: 8px 0; background: linear-gradient(to right, rgba(14,51,32,0.04), transparent); } .rule { height: 1px; background: linear-gradient(to right, var(--rule), rgba(216,212,200,0)); - margin: 10px 0; + margin: 5px 0; } - .section { margin-bottom: 13px; } + .section { margin-bottom: 6px; } .section-title { font-family: var(--mono); @@ -163,7 +164,7 @@ letter-spacing: 2.5px; text-transform: uppercase; color: var(--g700); - margin-bottom: 9px; + margin-bottom: 7px; display: flex; align-items: center; gap: 8px; @@ -177,7 +178,7 @@ } /* ── XP ── */ - .xp-block { margin-bottom: 11px; } + .xp-block { margin-bottom: 6px; } .xp-header { display: flex; @@ -207,7 +208,7 @@ font-size: 10pt; font-weight: 500; color: var(--g700); - margin-bottom: 5px; + margin-bottom: 3px; } .xp-loc { @@ -216,16 +217,24 @@ font-style: italic; } + .xp-contract { + font-size: 8.5pt; + color: var(--ink-3); + font-style: italic; + margin-bottom: 3px; + margin-top: -2px; + } + ul.bullets { list-style: none; } ul.bullets li { padding-left: 13px; position: relative; - margin-bottom: 3px; - font-size: 10.5pt; + margin-bottom: 2px; + font-size: 10pt; font-weight: 500; color: var(--ink-2); - line-height: 1.55; + line-height: 1.45; } ul.bullets li::before { @@ -250,11 +259,59 @@ white-space: nowrap; } + /* ── PROJECTS ── */ + .project-block { margin-bottom: 5px; } + + .project-header { + display: flex; + justify-content: space-between; + align-items: baseline; + margin-bottom: 1px; + } + + .project-name { + font-family: var(--mono); + font-size: 10.5pt; + font-weight: 700; + color: var(--ink-1); + } + + .project-tagline { + font-size: 10pt; + font-weight: 500; + color: var(--g700); + font-style: italic; + } + + .project-dates { + font-family: var(--mono); + font-size: 8pt; + color: var(--ink-3); + white-space: nowrap; + background: var(--tag); + padding: 1px 6px; + border-radius: 2px; + } + + .project-desc { + font-size: 10pt; + font-weight: 500; + color: var(--ink-2); + line-height: 1.45; + } + + .project-link { + font-family: var(--mono); + font-size: 8pt; + color: var(--g500); + margin-top: 1px; + } + /* ── SKILLS ── */ .skills-grid { display: grid; - grid-template-columns: 88px 1fr; - gap: 4px 10px; + grid-template-columns: 100px 1fr; + gap: 1px 10px; font-size: 8.4pt; } @@ -267,10 +324,10 @@ padding-top: 1px; } - .skill-values { font-size: 10.5pt; font-weight: 500; color: var(--ink-2); } + .skill-values { font-size: 10pt; font-weight: 500; color: var(--ink-2); } /* ── EDU ── */ - .edu-block { margin-bottom: 9px; } + .edu-block { margin-bottom: 5px; } .edu-header { display: flex; @@ -315,39 +372,38 @@ gap: 0 20px; } - .lang-row { display: flex; gap: 5px; flex-wrap: wrap; } + .lang-row { display: flex; gap: 4px; flex-wrap: wrap; } .lang-item { font-family: var(--mono); - font-size: 9pt; + font-size: 8.5pt; color: var(--g900); background: var(--g100); - border: 1px solid #a8d4bc; - padding: 3px 10px; - border-radius: 12px; + padding: 2px 8px; + border-radius: 10px; } .lang-item .level { color: var(--ink-3); - font-size: 8pt; + font-size: 7.5pt; } - .interests { display: flex; flex-wrap: wrap; gap: 5px; } + .interests { display: flex; flex-wrap: wrap; gap: 4px; } .interest-tag { font-family: var(--mono); - font-size: 9pt; + font-size: 8.5pt; color: var(--g900); background: var(--g100); - border: 1px solid #a8d4bc; - padding: 3px 10px; - border-radius: 12px; + padding: 2px 8px; + border-radius: 10px; } /* ── FOOTER ── */ .footer-bar { + position: running(siteFooter); background: var(--dark); - padding: 7px 20mm; + padding: 5px 20mm; display: flex; justify-content: space-between; align-items: center; @@ -369,13 +425,67 @@ /* ── PRINT ── */ @media print { - body { background: white; padding: 0; } + body { + background: + url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='6'%3E%3Ccircle cx='1' cy='1' r='0.6' fill='rgba(26,71,48,0.05)'/%3E%3C/svg%3E"), + linear-gradient(160deg, #f5f3ec 0%, #edeadf 55%, #f2efe6 100%); + padding: 0; + } .screen-label { display: none; } - .page { box-shadow: none; } + .page { box-shadow: none; background: transparent; } .cv-header { padding: 18px 14mm 14px; } - .cv-body { padding: 12px 14mm 14px; } - .footer-bar { padding: 6px 14mm; } - @page { size: A4; margin: 0; } + .cv-body { padding: 10px 14mm 12px; background: transparent; } + + /* Saut de page forcé avant Deewee */ + .break-before-page { + break-before: page; + page-break-before: always; + } + + /* Cache le footer HTML, remplacé par le footer @page (auto-numéroté) */ + .footer-bar { display: none; } + + /* Footer pleine largeur sur chaque page, avec numérotation auto */ + @page { + size: A4; + margin: 0 0 8mm 0; + + @bottom-left-corner { + content: "\00a0"; + background: #0d1b12; + } + @bottom-left { + content: "bchanot.fr"; + background: #0d1b12; + color: #6ab98a; + font-family: 'JetBrains Mono', monospace; + font-size: 6.8pt; + padding-left: 20mm; + text-align: left; + vertical-align: middle; + width: 80mm; + } + @bottom-center { + content: "\00a0"; + background: #0d1b12; + width: 50mm; + } + @bottom-right { + content: "Bastien Chanot · CV 2026 · " counter(page) "/" counter(pages); + background: #0d1b12; + color: rgba(255, 255, 255, 0.5); + font-family: 'JetBrains Mono', monospace; + font-size: 6.8pt; + padding-right: 20mm; + text-align: right; + vertical-align: middle; + width: 80mm; + } + @bottom-right-corner { + content: "\00a0"; + background: #0d1b12; + } + } } @@ -387,23 +497,25 @@
Bastien Chanot
-
Développeur confirmé  ·  Systèmes & Backend
+
Développeur Systèmes  ·  Embarqué  ·  Backend
- +33 7 78 82 22 97
- chanot.bastien@gmail.com
- Yerres → Reloc. Pays de la Loire
- Open full remote | Permis B & A + +33 7 78 82 22 97 · bastien@bchanot.fr
+ Yerres (91) · installation région nantaise prévue
+ Full remote · hybride Nantes · ou 1–2 j/mois Paris
+ Permis B & A
+ github.com/bchanot · bchanot.fr
- Développeur systèmes confirmé (7 ans), spécialisé en C/Rust/Java sur Linux bare-metal, kernel drivers et environnements AOSP. - Expérience étendue sur l'architecture et l'exploitation de serveurs GPU haute densité, la conteneurisation LXC/LXD, - et le développement système embarqué de bout en bout. Habitué à opérer seul sur des périmètres larges, - de la couche kernel au backend réseau. + Développeur systèmes senior, 7 ans en C sur Linux bare-metal, kernel drivers et AOSP. + Architecte d'une plateforme cloud gaming en production (kernel, conteneurs AOSP, backend Rust temps réel, + fleet GPU bare-metal) servant plusieurs centaines de joueurs simultanés. + Collaboration technique directe avec Canonical (Anbox) et Nvidia. + En recherche d'un CDI systèmes ou embarqué.
@@ -418,7 +530,9 @@
Développeur indépendant · Yerres · zenquality.fr
@@ -429,35 +543,67 @@
Développeur logiciel — Systèmes & Backend · Paris · Full remote dès 2020
-
+
Deewee - 2017 + Fév. 2017 – Nov. 2017
Développeur C — Système embarqué · Ivry-sur-Seine
+
Stage 42 (6 mois) puis CDD (4 mois)
+
+
Projets & Réalisations
+ +
+
+
+ Code source & projets persos + — serveur Git auto-hébergé en production +
+ en continu +
+
+ Configuration Claude Code, dotfiles, projets bas-niveau (42, expérimentations C/Rust) — accessibles publiquement. Mirror automatique vers GitHub via push hook. +
+ +
+ +
+
+
+ Homelab + — Infrastructure personnelle +
+ en continu +
+
+ Auto-hébergement Git (Gogs) / DNS / VPN / SMB — NAS Asustor, Freebox WireGuard VPN site-to-site, Pi-hole, segmentation réseau, hardening fail2ban, gocryptfs sur dossiers sensibles. +
+
+
+ +
+
Formation
@@ -481,14 +627,6 @@
TSRIT — Technicien Supérieur Réseaux & Télécoms, Félicitations du jury · Vincennes
- -
-
- Lycée Rosa Parks - 2009 – 2013 -
-
Bac S — génie informatique, électrique et mécanique · Montgeron
-
@@ -497,28 +635,31 @@
Compétences techniques
Langages
-
C · Rust · Java · Bash · Python · C++ (notions)
+
C · Rust · Bash · Python · Java (AOSP/Android)
Embarqué
Linux kernel drivers · AOSP · ARM / x86 · GPIO · NFC · ESC/POS · Orange Pi · cross-compilation GCC
Conteneurs
-
Docker · LXC / LXD · QEMU · VMware · VirtualBox
+
Docker · LXC / LXD · QEMU · cgroups · namespaces
Backend
Rust · WebSocket · architecture GPU bare-metal · ramdisk I/O
Systèmes
-
Linux bare-metal · AOSP · Android Backup · systemd · Windows · macOS
+
Linux bare-metal · AOSP · Android Backup · systemd · SELinux
+ +
Cloud / Infra
+
AWS (EC2, g4dn bare-metal, IAM, S3, CloudWatch) · Scaleway VPS · OVH / Hetzner · Nginx · Apache · Let's Encrypt
DevOps
-
Git · GitHub / GitLab · CI/CD · Gitflow · Agile (Scrum, Kanban)
+
Git · GitHub Actions · GitLab · CI/CD
IA / Outils
-
Claude Code (agents/skills custom) · N8N · automatisation · prompting avancé
+
Claude Code (agents/skills custom) · N8N · automatisation
-
Gestion
-
Trello · Jira · Confluence · Notion
+
Familier avec
+
C++
diff --git a/CV_Bastien_Chanot.pdf b/CV_Bastien_Chanot.pdf index bd27b02..5f49431 100644 Binary files a/CV_Bastien_Chanot.pdf and b/CV_Bastien_Chanot.pdf differ