{"id":602,"date":"2026-01-01T13:00:00","date_gmt":"2026-01-01T12:00:00","guid":{"rendered":"https:\/\/portfolio.cousseaujimmy.fr\/accueil\/"},"modified":"2026-09-11T15:40:59","modified_gmt":"2026-09-11T13:40:59","slug":"accueil","status":"publish","type":"page","link":"https:\/\/portfolio.cousseaujimmy.fr\/en\/","title":{"rendered":"Home"},"content":{"rendered":"\n<div class=\"wp-block-group alignfull jcp-hero has-global-padding is-layout-constrained wp-container-core-group-is-layout-76037675 wp-block-group-is-layout-constrained\">\n\t<div class=\"jcp-topo wp-block-jcp-topo\" data-topo=\"12\" aria-hidden=\"true\"><canvas class=\"jcp-topo__canvas\"><\/canvas><\/div>\n\n\n\t\n\t<div class=\"wp-block-group jcp-hero__inner alignwide is-layout-flow wp-block-group-is-layout-flow\">\n\t\t\n\t\t<p class=\"jcp-kicker jcp-hero__kicker wp-block-paragraph\">Web, mobile &amp; embedded developer<\/p>\n\t\t\n\n\t\t\n\t\t<h1 class=\"wp-block-heading jcp-hero__title jcp-split has-display-font-size\">Jimmy Cousseau<\/h1>\n\t\t\n\n\t\t\n\t\t<p class=\"jcp-hero__lead jcp-lead wp-block-paragraph\">Complete products, from the interface to the server. Developer at CIBEST, creator of LamaQuest.<\/p>\n\t\t\n\n\t\t\n\t\t<div class=\"wp-block-buttons jcp-hero__actions is-layout-flex wp-block-buttons-is-layout-flex\">\n\t\t\t\n\t\t\t<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link wp-element-button\" href=\"#projets\" data-magnetic>See the projects<\/a><\/div>\n\t\t\t\n\t\t\t\n\t\t\t<div class=\"wp-block-button is-style-outline is-style-outline--1\"><a class=\"wp-block-button__link wp-element-button\" href=\"#contact\" data-magnetic>Get in touch<\/a><\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\n\n\t\t\n\t\t<ul class=\"jcp-hero__facts\" aria-label=\"En bref\">\n\t\t\t<li><span class=\"jcp-hero__fact-dot\"><\/span>Besan\u00e7on, France<\/li>\n\t\t\t<li><span class=\"jcp-hero__fact-dot\"><\/span>Vue \u00b7 TypeScript \u00b7 Bun \u00b7 PostgreSQL<\/li>\n\t\t\t<li><span class=\"jcp-hero__fact-dot\"><\/span>Flutter \u00b7 WordPress \u00b7 Docker<\/li>\n\t\t<\/ul>\n\t\t<a class=\"jcp-hero__scroll\" href=\"#projets\" aria-hidden=\"true\" tabindex=\"-1\"><span><\/span><\/a>\n\t\t\n\t<\/div>\n\t\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull jcp-section has-global-padding is-layout-constrained wp-container-core-group-is-layout-afbc5252 wp-block-group-is-layout-constrained\" id=\"projets\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--50)\">\n\t\n\t<div class=\"wp-block-group jcp-section__head alignwide is-layout-flow wp-block-group-is-layout-flow\">\n\t\t\n\t\t<p class=\"jcp-kicker wp-block-paragraph\">Case studies<\/p>\n\t\t\n\t\t\n\t\t<h2 class=\"wp-block-heading jcp-split\">Three projects that define my work<\/h2>\n\t\t\n\t\t\n\t\t<p class=\"jcp-lead wp-block-paragraph\">A product in production, a job in industry, a client site online.<\/p>\n\t\t\n\t<\/div>\n\t\n\n\t<div class=\"jcp-featured alignwide wp-block-jcp-featured-projects\">\n\t<div class=\"jcp-featured__item\" style=\"--i:0\"><article class=\"jcp-card jcp-card--feature jcp-reveal\" data-type=\"produit\" style=\"--accent:#f16e21\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/lamaquest\/\"><span class=\"jcp-card__media\"><img width=\"1440\" height=\"900\" src=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/app.lamaquest.com_.webp\" class=\"attachment-jcp-hero size-jcp-hero wp-post-image\" alt=\"\" decoding=\"async\" loading=\"eager\" fetchpriority=\"high\" srcset=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/app.lamaquest.com_.webp 1440w, https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/app.lamaquest.com_-300x188.webp 300w, https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/app.lamaquest.com_-1024x640.webp 1024w, https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/app.lamaquest.com_-768x480.webp 768w, https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/app.lamaquest.com_-800x500.webp 800w\" sizes=\"(max-width: 1440px) 100vw, 1440px\" \/><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Produit<\/span><span class=\"jcp-card__period\">2025 \u2192 2026<\/span><\/span><span class=\"jcp-card__title\">LamaQuest<\/span><span class=\"jcp-card__tagline\">A multiplayer GPS treasure hunt, from idea to production: real time, offline maps, payments, AI.<\/span><span class=\"jcp-card__stats\"><span class=\"jcp-card__stat\"><strong>72 k<\/strong><small>lines of code<\/small><\/span><span class=\"jcp-card__stat\"><strong>3<\/strong><small>languages<\/small><\/span><span class=\"jcp-card__stat\"><strong>1<\/strong><small>WebSocket per game<\/small><\/span><\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Bun<\/li><li class=\"jcp-chip\">Docker<\/li><li class=\"jcp-chip\">Hono<\/li><li class=\"jcp-chip\">LLM (Ollama)<\/li><li class=\"jcp-chip\">MapLibre \/ Protomaps<\/li><li class=\"jcp-chip jcp-chip--more\">+9<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><\/div><div class=\"jcp-featured__item\" style=\"--i:1\"><article class=\"jcp-card jcp-card--feature jcp-reveal\" data-type=\"experience\" style=\"--accent:#4fc3f7\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/cibest\/\"><span class=\"jcp-card__media\"><svg class=\"jcp-cover\" viewBox=\"0 0 960 640\" role=\"img\" aria-label=\"CIBEST \u2014 Full-stack developer\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect width=\"960\" height=\"640\" fill=\"#0f1114\"\/><g fill=\"none\" stroke=\"#4fc3f7\" stroke-width=\"1.5\"><ellipse cx=\"549\" cy=\"259\" rx=\"61\" ry=\"68\" transform=\"rotate(-11 549 259)\" opacity=\"0.49\"\/><ellipse cx=\"549\" cy=\"259\" rx=\"131\" ry=\"84\" transform=\"rotate(26 549 259)\" opacity=\"0.43\"\/><ellipse cx=\"549\" cy=\"259\" rx=\"186\" ry=\"145\" transform=\"rotate(18 549 259)\" opacity=\"0.37\"\/><ellipse cx=\"549\" cy=\"259\" rx=\"249\" ry=\"197\" transform=\"rotate(22 549 259)\" opacity=\"0.31\"\/><ellipse cx=\"549\" cy=\"259\" rx=\"333\" ry=\"227\" transform=\"rotate(14 549 259)\" opacity=\"0.25\"\/><ellipse cx=\"549\" cy=\"259\" rx=\"389\" ry=\"242\" transform=\"rotate(-15 549 259)\" opacity=\"0.19\"\/><ellipse cx=\"549\" cy=\"259\" rx=\"453\" ry=\"306\" transform=\"rotate(21 549 259)\" opacity=\"0.13\"\/><\/g><text x=\"64\" y=\"560\" font-family=\"Sora, system-ui, sans-serif\" font-weight=\"700\" font-size=\"160\" fill=\"#4fc3f7\" opacity=\"0.9\">CI<\/text><\/svg><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Exp\u00e9rience<\/span><span class=\"jcp-card__period\">2026 \u2192<\/span><\/span><span class=\"jcp-card__title\">CIBEST \u2014 Full-stack developer<\/span><span class=\"jcp-card__tagline\">From on-board passenger counting to the supervision map: embedded, backend and web in the same team.<\/span><span class=\"jcp-card__stats\"><span class=\"jcp-card__stat\"><strong>4<\/strong><small>assignments delivered as intern<\/small><\/span><span class=\"jcp-card__stat\"><strong>3<\/strong><small>layers: C++, Node, Vue<\/small><\/span><span class=\"jcp-card__stat\"><strong>1<\/strong><small>job offer at the end<\/small><\/span><\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Ansible<\/li><li class=\"jcp-chip\">Bun<\/li><li class=\"jcp-chip\">C \/ C++<\/li><li class=\"jcp-chip\">Grafana<\/li><li class=\"jcp-chip\">GTFS<\/li><li class=\"jcp-chip jcp-chip--more\">+13<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><\/div><div class=\"jcp-featured__item\" style=\"--i:2\"><article class=\"jcp-card jcp-card--feature jcp-reveal\" data-type=\"web\" style=\"--accent:#a63aa8\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/impalaya\/\"><span class=\"jcp-card__media\"><img width=\"1600\" height=\"878\" src=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/impalaya-home-1600x878.webp\" class=\"attachment-jcp-hero size-jcp-hero wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" srcset=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/impalaya-home-1600x878.webp 1600w, https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/impalaya-home-300x165.webp 300w, https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/impalaya-home-1024x562.webp 1024w, https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/impalaya-home-768x422.webp 768w, https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/impalaya-home-1536x843.webp 1536w, https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/impalaya-home-800x439.webp 800w, https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/impalaya-home.webp 1920w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Sites &amp; web<\/span><span class=\"jcp-card__period\">2024 \u2192 2026<\/span><\/span><span class=\"jcp-card__title\">Impalaya<\/span><span class=\"jcp-card__tagline\">FR\/ES\/EN activity catalogue, search, dynamic pricing and translated URLs \u2014 no paid plugin.<\/span><span class=\"jcp-card__stats\"><span class=\"jcp-card__stat\"><strong>3<\/strong><small>languages<\/small><\/span><span class=\"jcp-card__stat\"><strong>6<\/strong><small>in-house plugins<\/small><\/span><\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Docker<\/li><li class=\"jcp-chip\">Git \/ Forgejo<\/li><li class=\"jcp-chip\">HTML \/ CSS<\/li><li class=\"jcp-chip\">JavaScript<\/li><li class=\"jcp-chip\">PHP<\/li><li class=\"jcp-chip jcp-chip--more\">+2<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><\/div><\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull jcp-section jcp-section--tight has-global-padding is-layout-constrained wp-container-core-group-is-layout-76037675 wp-block-group-is-layout-constrained\">\n\t<dl class=\"jcp-stats alignwide wp-block-jcp-stats\">\n\t\t\t\t\t<div class=\"jcp-stats__item jcp-reveal\">\n\t\t\t<dd class=\"jcp-stats__value\"><span data-count=\"72\">72<\/span>k<\/dd>\n\t\t\t<dt class=\"jcp-stats__label\">lines of TypeScript and Vue in LamaQuest<\/dt>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"jcp-stats__item jcp-reveal\">\n\t\t\t<dd class=\"jcp-stats__value\"><span data-count=\"4\">4<\/span><\/dd>\n\t\t\t<dt class=\"jcp-stats__label\">sites and apps in production<\/dt>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"jcp-stats__item jcp-reveal\">\n\t\t\t<dd class=\"jcp-stats__value\"><span data-count=\"17\">17<\/span><\/dd>\n\t\t\t<dt class=\"jcp-stats__label\">projects shown, most with public code<\/dt>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"jcp-stats__item jcp-reveal\">\n\t\t\t<dd class=\"jcp-stats__value\"><span data-count=\"3\">3<\/span><\/dd>\n\t\t\t<dt class=\"jcp-stats__label\">languages on this site as on my products<\/dt>\n\t\t<\/div>\n\t<\/dl>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull jcp-section has-global-padding is-layout-constrained wp-container-core-group-is-layout-cb1a21e2 wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--60)\">\n\t\n\t<div class=\"wp-block-group jcp-section__head alignwide is-layout-flow wp-block-group-is-layout-flow\">\n\t\t\n\t\t<p class=\"jcp-kicker wp-block-paragraph\">And also<\/p>\n\t\t\n\t\t\n\t\t<h2 class=\"wp-block-heading jcp-split\">From arcade game to compiler<\/h2>\n\t\t\n\t\t\n\t\t<p class=\"jcp-lead wp-block-paragraph\">Most of the code is public.<\/p>\n\t\t\n\t<\/div>\n\t\n\n\t<div class=\"jcp-grid-block alignwide wp-block-jcp-project-grid\" data-grid=\"projects\">\n\t\t\t<div class=\"jcp-filter\" role=\"group\" aria-label=\"Filter by type\">\n\t\t\t<button type=\"button\" class=\"jcp-filter__btn is-active\" data-filter=\"*\" aria-pressed=\"true\">\n\t\t\t\tAll\t\t\t\t<sup>17<\/sup>\n\t\t\t<\/button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"jcp-filter__btn\" data-filter=\"produit\" aria-pressed=\"false\">\n\t\t\t\t\tProduit\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"jcp-filter__btn\" data-filter=\"experience\" aria-pressed=\"false\">\n\t\t\t\t\tExp\u00e9rience\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"jcp-filter__btn\" data-filter=\"web\" aria-pressed=\"false\">\n\t\t\t\t\tSites &amp; web\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"jcp-filter__btn\" data-filter=\"mobile\" aria-pressed=\"false\">\n\t\t\t\t\tMobile\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"jcp-filter__btn\" data-filter=\"outils\" aria-pressed=\"false\">\n\t\t\t\t\tOutils &amp; infra\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"jcp-filter__btn\" data-filter=\"academique\" aria-pressed=\"false\">\n\t\t\t\t\tAcad\u00e9mique\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"jcp-filter__btn\" data-filter=\"formation\" aria-pressed=\"false\">\n\t\t\t\t\tFormation\t\t\t\t<\/button>\n\t\t\t\t\t<\/div>\n\t\t<div class=\"jcp-grid jcp-grid--cols-3\">\n\t\t<article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"produit\" style=\"--accent:#f16e21\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/lamaquest\/\"><span class=\"jcp-card__media\"><img width=\"960\" height=\"640\" src=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/app.lamaquest.com_-960x640.webp\" class=\"attachment-jcp-card size-jcp-card wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Produit<\/span><span class=\"jcp-card__period\">2025 \u2192 2026<\/span><\/span><span class=\"jcp-card__title\">LamaQuest<\/span><span class=\"jcp-card__tagline\">A multiplayer GPS treasure hunt, from idea to production: real time, offline maps, payments, AI.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Bun<\/li><li class=\"jcp-chip\">Docker<\/li><li class=\"jcp-chip\">Hono<\/li><li class=\"jcp-chip jcp-chip--more\">+11<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"experience\" style=\"--accent:#4fc3f7\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/cibest\/\"><span class=\"jcp-card__media\"><svg class=\"jcp-cover\" viewBox=\"0 0 960 640\" role=\"img\" aria-label=\"CIBEST \u2014 Full-stack developer\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect width=\"960\" height=\"640\" fill=\"#0f1114\"\/><g fill=\"none\" stroke=\"#4fc3f7\" stroke-width=\"1.5\"><ellipse cx=\"549\" cy=\"259\" rx=\"61\" ry=\"68\" transform=\"rotate(-11 549 259)\" opacity=\"0.49\"\/><ellipse cx=\"549\" cy=\"259\" rx=\"131\" ry=\"84\" transform=\"rotate(26 549 259)\" opacity=\"0.43\"\/><ellipse cx=\"549\" cy=\"259\" rx=\"186\" ry=\"145\" transform=\"rotate(18 549 259)\" opacity=\"0.37\"\/><ellipse cx=\"549\" cy=\"259\" rx=\"249\" ry=\"197\" transform=\"rotate(22 549 259)\" opacity=\"0.31\"\/><ellipse cx=\"549\" cy=\"259\" rx=\"333\" ry=\"227\" transform=\"rotate(14 549 259)\" opacity=\"0.25\"\/><ellipse cx=\"549\" cy=\"259\" rx=\"389\" ry=\"242\" transform=\"rotate(-15 549 259)\" opacity=\"0.19\"\/><ellipse cx=\"549\" cy=\"259\" rx=\"453\" ry=\"306\" transform=\"rotate(21 549 259)\" opacity=\"0.13\"\/><\/g><text x=\"64\" y=\"560\" font-family=\"Sora, system-ui, sans-serif\" font-weight=\"700\" font-size=\"160\" fill=\"#4fc3f7\" opacity=\"0.9\">CI<\/text><\/svg><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Exp\u00e9rience<\/span><span class=\"jcp-card__period\">2026 \u2192<\/span><\/span><span class=\"jcp-card__title\">CIBEST \u2014 Full-stack developer<\/span><span class=\"jcp-card__tagline\">From on-board passenger counting to the supervision map: embedded, backend and web in the same team.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Ansible<\/li><li class=\"jcp-chip\">Bun<\/li><li class=\"jcp-chip\">C \/ C++<\/li><li class=\"jcp-chip jcp-chip--more\">+15<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"web\" style=\"--accent:#a63aa8\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/impalaya\/\"><span class=\"jcp-card__media\"><img width=\"960\" height=\"640\" src=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/impalaya-home-960x640.webp\" class=\"attachment-jcp-card size-jcp-card wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Sites &amp; web<\/span><span class=\"jcp-card__period\">2024 \u2192 2026<\/span><\/span><span class=\"jcp-card__title\">Impalaya<\/span><span class=\"jcp-card__tagline\">FR\/ES\/EN activity catalogue, search, dynamic pricing and translated URLs \u2014 no paid plugin.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Docker<\/li><li class=\"jcp-chip\">Git \/ Forgejo<\/li><li class=\"jcp-chip\">HTML \/ CSS<\/li><li class=\"jcp-chip jcp-chip--more\">+4<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"experience\" style=\"--accent:#f5c451\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/alternance-skinsoft\/\"><span class=\"jcp-card__media\"><svg class=\"jcp-cover\" viewBox=\"0 0 960 640\" role=\"img\" aria-label=\"Work-study \u2014 SKINSoft\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect width=\"960\" height=\"640\" fill=\"#0f1114\"\/><g fill=\"none\" stroke=\"#f5c451\" stroke-width=\"1.5\"><ellipse cx=\"555\" cy=\"340\" rx=\"66\" ry=\"40\" transform=\"rotate(-22 555 340)\" opacity=\"0.49\"\/><ellipse cx=\"555\" cy=\"340\" rx=\"158\" ry=\"115\" transform=\"rotate(-24 555 340)\" opacity=\"0.43\"\/><ellipse cx=\"555\" cy=\"340\" rx=\"191\" ry=\"141\" transform=\"rotate(16 555 340)\" opacity=\"0.37\"\/><ellipse cx=\"555\" cy=\"340\" rx=\"278\" ry=\"194\" transform=\"rotate(22 555 340)\" opacity=\"0.31\"\/><ellipse cx=\"555\" cy=\"340\" rx=\"336\" ry=\"219\" transform=\"rotate(9 555 340)\" opacity=\"0.25\"\/><ellipse cx=\"555\" cy=\"340\" rx=\"388\" ry=\"249\" transform=\"rotate(18 555 340)\" opacity=\"0.19\"\/><ellipse cx=\"555\" cy=\"340\" rx=\"424\" ry=\"307\" transform=\"rotate(0 555 340)\" opacity=\"0.13\"\/><\/g><text x=\"64\" y=\"560\" font-family=\"Sora, system-ui, sans-serif\" font-weight=\"700\" font-size=\"160\" fill=\"#f5c451\" opacity=\"0.9\">WS<\/text><\/svg><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Exp\u00e9rience<\/span><span class=\"jcp-card__period\">2024 \u2192 2025<\/span><\/span><span class=\"jcp-card__title\">Work-study \u2014 SKINSoft<\/span><span class=\"jcp-card__tagline\">Redesign of Tryphon&#039;s central screen and database hardening, in sprints with the team.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Docker<\/li><li class=\"jcp-chip\">Git \/ Forgejo<\/li><li class=\"jcp-chip\">Java<\/li><li class=\"jcp-chip jcp-chip--more\">+6<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"web\" style=\"--accent:#eac01f\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/amelimon\/\"><span class=\"jcp-card__media\"><img width=\"960\" height=\"640\" src=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/amelimon.com_-960x640.webp\" class=\"attachment-jcp-card size-jcp-card wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Sites &amp; web<\/span><span class=\"jcp-card__period\">2026<\/span><\/span><span class=\"jcp-card__title\">Am\u00e9lim\u00f3n<\/span><span class=\"jcp-card__tagline\">Same site, four languages, no page builder \u2014 and an automated diff against the original.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Chrome headless (CDP)<\/li><li class=\"jcp-chip\">Docker<\/li><li class=\"jcp-chip\">HTML \/ CSS<\/li><li class=\"jcp-chip jcp-chip--more\">+5<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"web\" style=\"--accent:#f16e21\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/lamaquest-site\/\"><span class=\"jcp-card__media\"><img width=\"960\" height=\"640\" src=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/lamaquest.com_-960x640.webp\" class=\"attachment-jcp-card size-jcp-card wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Sites &amp; web<\/span><span class=\"jcp-card__period\">2026<\/span><\/span><span class=\"jcp-card__title\">LamaQuest marketing site<\/span><span class=\"jcp-card__tagline\">Every home section is a versioned trilingual PHP file, not content frozen in the database.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Git \/ Forgejo<\/li><li class=\"jcp-chip\">HTML \/ CSS<\/li><li class=\"jcp-chip\">JavaScript<\/li><li class=\"jcp-chip jcp-chip--more\">+3<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"mobile\" style=\"--accent:#4dd0a1\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/autostop\/\"><span class=\"jcp-card__media jcp-card__media--portrait\"><img width=\"960\" height=\"640\" src=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/home-960x640.webp\" class=\"attachment-jcp-card size-jcp-card wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Mobile<\/span><span class=\"jcp-card__period\">2023 \u2192 2025<\/span><\/span><span class=\"jcp-card__title\">AutoStop<\/span><span class=\"jcp-card__tagline\">The tool I was looking for did not exist, so I built it.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Android<\/li><li class=\"jcp-chip\">Firebase<\/li><li class=\"jcp-chip\">Flutter \/ Dart<\/li><li class=\"jcp-chip jcp-chip--more\">+3<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"web\" style=\"--accent:#5ec8ff\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/barapp\/\"><span class=\"jcp-card__media\"><img width=\"960\" height=\"640\" src=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/shot-1-960x640.webp\" class=\"attachment-jcp-card size-jcp-card wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Sites &amp; web<\/span><span class=\"jcp-card__period\">2023 \u2192 2025<\/span><\/span><span class=\"jcp-card__title\">BarApp<\/span><span class=\"jcp-card__tagline\">Angular and NestJS: same philosophy, a coherent codebase end to end.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Angular<\/li><li class=\"jcp-chip\">Docker<\/li><li class=\"jcp-chip\">Flutter \/ Dart<\/li><li class=\"jcp-chip jcp-chip--more\">+3<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"outils\" style=\"--accent:#9aa4b2\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/homelab\/\"><span class=\"jcp-card__media\"><svg class=\"jcp-cover\" viewBox=\"0 0 960 640\" role=\"img\" aria-label=\"Homelab &amp; deployment\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect width=\"960\" height=\"640\" fill=\"#0f1114\"\/><g fill=\"none\" stroke=\"#9aa4b2\" stroke-width=\"1.5\"><ellipse cx=\"567\" cy=\"262\" rx=\"64\" ry=\"60\" transform=\"rotate(-6 567 262)\" opacity=\"0.49\"\/><ellipse cx=\"567\" cy=\"262\" rx=\"145\" ry=\"100\" transform=\"rotate(23 567 262)\" opacity=\"0.43\"\/><ellipse cx=\"567\" cy=\"262\" rx=\"212\" ry=\"122\" transform=\"rotate(-15 567 262)\" opacity=\"0.37\"\/><ellipse cx=\"567\" cy=\"262\" rx=\"243\" ry=\"181\" transform=\"rotate(-14 567 262)\" opacity=\"0.31\"\/><ellipse cx=\"567\" cy=\"262\" rx=\"314\" ry=\"220\" transform=\"rotate(-10 567 262)\" opacity=\"0.25\"\/><ellipse cx=\"567\" cy=\"262\" rx=\"396\" ry=\"251\" transform=\"rotate(10 567 262)\" opacity=\"0.19\"\/><ellipse cx=\"567\" cy=\"262\" rx=\"442\" ry=\"296\" transform=\"rotate(-19 567 262)\" opacity=\"0.13\"\/><\/g><text x=\"64\" y=\"560\" font-family=\"Sora, system-ui, sans-serif\" font-weight=\"700\" font-size=\"160\" fill=\"#9aa4b2\" opacity=\"0.9\">H&amp;<\/text><\/svg><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Outils &amp; infra<\/span><span class=\"jcp-card__period\">2022 \u2192 2026<\/span><\/span><span class=\"jcp-card__title\">Homelab &#038; deployment<\/span><span class=\"jcp-card__tagline\">Since 2022: from a Nextcloud on an old PC to a small self-hosted platform.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Docker<\/li><li class=\"jcp-chip\">Git \/ Forgejo<\/li><li class=\"jcp-chip\">Linux<\/li><li class=\"jcp-chip jcp-chip--more\">+3<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"experience\" style=\"--accent:#f5c451\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/stage-skinsoft\/\"><span class=\"jcp-card__media\"><svg class=\"jcp-cover\" viewBox=\"0 0 960 640\" role=\"img\" aria-label=\"Bachelor&#8217;s internship \u2014 SKINSoft\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect width=\"960\" height=\"640\" fill=\"#0f1114\"\/><g fill=\"none\" stroke=\"#f5c451\" stroke-width=\"1.5\"><ellipse cx=\"568\" cy=\"338\" rx=\"89\" ry=\"59\" transform=\"rotate(-24 568 338)\" opacity=\"0.49\"\/><ellipse cx=\"568\" cy=\"338\" rx=\"150\" ry=\"115\" transform=\"rotate(1 568 338)\" opacity=\"0.43\"\/><ellipse cx=\"568\" cy=\"338\" rx=\"219\" ry=\"130\" transform=\"rotate(6 568 338)\" opacity=\"0.37\"\/><ellipse cx=\"568\" cy=\"338\" rx=\"249\" ry=\"194\" transform=\"rotate(30 568 338)\" opacity=\"0.31\"\/><ellipse cx=\"568\" cy=\"338\" rx=\"313\" ry=\"200\" transform=\"rotate(14 568 338)\" opacity=\"0.25\"\/><ellipse cx=\"568\" cy=\"338\" rx=\"377\" ry=\"261\" transform=\"rotate(22 568 338)\" opacity=\"0.19\"\/><ellipse cx=\"568\" cy=\"338\" rx=\"437\" ry=\"296\" transform=\"rotate(-19 568 338)\" opacity=\"0.13\"\/><\/g><text x=\"64\" y=\"560\" font-family=\"Sora, system-ui, sans-serif\" font-weight=\"700\" font-size=\"160\" fill=\"#f5c451\" opacity=\"0.9\">BI<\/text><\/svg><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Exp\u00e9rience<\/span><span class=\"jcp-card__period\">avr. \u2192 juin 2024<\/span><\/span><span class=\"jcp-card__title\">Bachelor&#8217;s internship \u2014 SKINSoft<\/span><span class=\"jcp-card__tagline\">First contact with the professional world \u2014 and a work-study offer at the end.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Git \/ Forgejo<\/li><li class=\"jcp-chip\">Java<\/li><li class=\"jcp-chip\">JavaScript<\/li><li class=\"jcp-chip jcp-chip--more\">+5<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"academique\" style=\"--accent:#7cc576\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/matchup\/\"><span class=\"jcp-card__media\"><img width=\"749\" height=\"494\" src=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/shot-1-1.webp\" class=\"attachment-jcp-card size-jcp-card wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" srcset=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/shot-1-1.webp 749w, https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/shot-1-1-300x198.webp 300w\" sizes=\"auto, (max-width: 749px) 100vw, 749px\" \/><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Acad\u00e9mique<\/span><span class=\"jcp-card__period\">2023 \u2192 2024<\/span><\/span><span class=\"jcp-card__title\">MatchUp<\/span><span class=\"jcp-card__tagline\">Create an event, invite people, draw the route and take it to your GPS.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Git \/ Forgejo<\/li><li class=\"jcp-chip\">JavaScript<\/li><li class=\"jcp-chip\">Jira \/ Scrum<\/li><li class=\"jcp-chip jcp-chip--more\">+3<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"academique\" style=\"--accent:#b39ddb\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/reseaux-petri\/\"><span class=\"jcp-card__media\"><img width=\"623\" height=\"171\" src=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/figure1.webp\" class=\"attachment-jcp-card size-jcp-card wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" srcset=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/figure1.webp 623w, https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/figure1-300x82.webp 300w\" sizes=\"auto, (max-width: 623px) 100vw, 623px\" \/><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Acad\u00e9mique<\/span><span class=\"jcp-card__period\">2025 \u2192 2026<\/span><\/span><span class=\"jcp-card__title\">Petri-net library<\/span><span class=\"jcp-card__tagline\">Proving a concurrent system never blocks \u2014 on a graph, not on a passing test.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Python<\/li><li class=\"jcp-chip\">Tests automatis\u00e9s<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"academique\" style=\"--accent:#ff8a65\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/minijaja-vm\/\"><span class=\"jcp-card__media\"><svg class=\"jcp-cover\" viewBox=\"0 0 960 640\" role=\"img\" aria-label=\"MiniJaja compiler\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect width=\"960\" height=\"640\" fill=\"#0f1114\"\/><g fill=\"none\" stroke=\"#ff8a65\" stroke-width=\"1.5\"><ellipse cx=\"532\" cy=\"244\" rx=\"100\" ry=\"79\" transform=\"rotate(22 532 244)\" opacity=\"0.49\"\/><ellipse cx=\"532\" cy=\"244\" rx=\"148\" ry=\"110\" transform=\"rotate(-29 532 244)\" opacity=\"0.43\"\/><ellipse cx=\"532\" cy=\"244\" rx=\"199\" ry=\"150\" transform=\"rotate(-20 532 244)\" opacity=\"0.37\"\/><ellipse cx=\"532\" cy=\"244\" rx=\"278\" ry=\"190\" transform=\"rotate(-11 532 244)\" opacity=\"0.31\"\/><ellipse cx=\"532\" cy=\"244\" rx=\"311\" ry=\"219\" transform=\"rotate(5 532 244)\" opacity=\"0.25\"\/><ellipse cx=\"532\" cy=\"244\" rx=\"388\" ry=\"280\" transform=\"rotate(-25 532 244)\" opacity=\"0.19\"\/><ellipse cx=\"532\" cy=\"244\" rx=\"432\" ry=\"302\" transform=\"rotate(6 532 244)\" opacity=\"0.13\"\/><\/g><text x=\"64\" y=\"560\" font-family=\"Sora, system-ui, sans-serif\" font-weight=\"700\" font-size=\"160\" fill=\"#ff8a65\" opacity=\"0.9\">MC<\/text><\/svg><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Acad\u00e9mique<\/span><span class=\"jcp-card__period\">2024<\/span><\/span><span class=\"jcp-card__title\">MiniJaja compiler<\/span><span class=\"jcp-card__tagline\">The whole compilation chain \u2014 and six people agreeing on interfaces before writing a line.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Git \/ Forgejo<\/li><li class=\"jcp-chip\">Java<\/li><li class=\"jcp-chip\">Jira \/ Scrum<\/li><li class=\"jcp-chip jcp-chip--more\">+1<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"mobile\" style=\"--accent:#c9b458\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/wordle-flutter\/\"><span class=\"jcp-card__media jcp-card__media--portrait\"><img width=\"960\" height=\"640\" src=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2026\/09\/shot-1-2-960x640.webp\" class=\"attachment-jcp-card size-jcp-card wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Mobile<\/span><span class=\"jcp-card__period\">2025<\/span><\/span><span class=\"jcp-card__title\">Wordle<\/span><span class=\"jcp-card__tagline\">The word game, rewritten to learn Flutter&#039;s state management and animations.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Android<\/li><li class=\"jcp-chip\">Flutter \/ Dart<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"academique\" style=\"--accent:#ef5350\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/donkeykong-sfml\/\"><span class=\"jcp-card__media\"><svg class=\"jcp-cover\" viewBox=\"0 0 960 640\" role=\"img\" aria-label=\"DonkeyKong Arcade\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect width=\"960\" height=\"640\" fill=\"#0f1114\"\/><g fill=\"none\" stroke=\"#ef5350\" stroke-width=\"1.5\"><ellipse cx=\"321\" cy=\"129\" rx=\"63\" ry=\"50\" transform=\"rotate(-19 321 129)\" opacity=\"0.49\"\/><ellipse cx=\"321\" cy=\"129\" rx=\"135\" ry=\"119\" transform=\"rotate(-19 321 129)\" opacity=\"0.43\"\/><ellipse cx=\"321\" cy=\"129\" rx=\"216\" ry=\"152\" transform=\"rotate(28 321 129)\" opacity=\"0.37\"\/><ellipse cx=\"321\" cy=\"129\" rx=\"267\" ry=\"164\" transform=\"rotate(27 321 129)\" opacity=\"0.31\"\/><ellipse cx=\"321\" cy=\"129\" rx=\"313\" ry=\"220\" transform=\"rotate(30 321 129)\" opacity=\"0.25\"\/><ellipse cx=\"321\" cy=\"129\" rx=\"366\" ry=\"263\" transform=\"rotate(7 321 129)\" opacity=\"0.19\"\/><ellipse cx=\"321\" cy=\"129\" rx=\"452\" ry=\"320\" transform=\"rotate(-15 321 129)\" opacity=\"0.13\"\/><\/g><text x=\"64\" y=\"560\" font-family=\"Sora, system-ui, sans-serif\" font-weight=\"700\" font-size=\"160\" fill=\"#ef5350\" opacity=\"0.9\">DA<\/text><\/svg><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Acad\u00e9mique<\/span><span class=\"jcp-card__period\">2022<\/span><\/span><span class=\"jcp-card__title\">DonkeyKong Arcade<\/span><span class=\"jcp-card__tagline\">The first \u201creal\u201d project: a playable game and properly computed convex collisions.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">C \/ C++<\/li><li class=\"jcp-chip\">SFML<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"formation\" style=\"--accent:#9aa4b2\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/master-isl\/\"><span class=\"jcp-card__media\"><svg class=\"jcp-cover\" viewBox=\"0 0 960 640\" role=\"img\" aria-label=\"Master&#8217;s in Computer Science (ISL)\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect width=\"960\" height=\"640\" fill=\"#0f1114\"\/><g fill=\"none\" stroke=\"#9aa4b2\" stroke-width=\"1.5\"><ellipse cx=\"505\" cy=\"166\" rx=\"97\" ry=\"56\" transform=\"rotate(24 505 166)\" opacity=\"0.49\"\/><ellipse cx=\"505\" cy=\"166\" rx=\"139\" ry=\"83\" transform=\"rotate(19 505 166)\" opacity=\"0.43\"\/><ellipse cx=\"505\" cy=\"166\" rx=\"190\" ry=\"134\" transform=\"rotate(28 505 166)\" opacity=\"0.37\"\/><ellipse cx=\"505\" cy=\"166\" rx=\"269\" ry=\"198\" transform=\"rotate(19 505 166)\" opacity=\"0.31\"\/><ellipse cx=\"505\" cy=\"166\" rx=\"329\" ry=\"203\" transform=\"rotate(9 505 166)\" opacity=\"0.25\"\/><ellipse cx=\"505\" cy=\"166\" rx=\"397\" ry=\"252\" transform=\"rotate(-14 505 166)\" opacity=\"0.19\"\/><ellipse cx=\"505\" cy=\"166\" rx=\"432\" ry=\"293\" transform=\"rotate(9 505 166)\" opacity=\"0.13\"\/><\/g><text x=\"64\" y=\"560\" font-family=\"Sora, system-ui, sans-serif\" font-weight=\"700\" font-size=\"160\" fill=\"#9aa4b2\" opacity=\"0.9\">MI<\/text><\/svg><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Formation<\/span><span class=\"jcp-card__period\">2024 \u2192 2026<\/span><\/span><span class=\"jcp-card__title\">Master&#8217;s in Computer Science (ISL)<\/span><span class=\"jcp-card__tagline\">Software engineering, compilers, formal models, distributed systems \u2014 with two years in industry alongside.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">Java<\/li><li class=\"jcp-chip\">Python<\/li><li class=\"jcp-chip\">Tests automatis\u00e9s<\/li><li class=\"jcp-chip jcp-chip--more\">+1<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article><article class=\"jcp-card jcp-card--card jcp-reveal\" data-type=\"formation\" style=\"--accent:#9aa4b2\" data-tilt><a class=\"jcp-card__link\" href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/licence-informatique\/\"><span class=\"jcp-card__media\"><svg class=\"jcp-cover\" viewBox=\"0 0 960 640\" role=\"img\" aria-label=\"Bachelor&#8217;s in Computer Science\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect width=\"960\" height=\"640\" fill=\"#0f1114\"\/><g fill=\"none\" stroke=\"#9aa4b2\" stroke-width=\"1.5\"><ellipse cx=\"528\" cy=\"311\" rx=\"69\" ry=\"45\" transform=\"rotate(18 528 311)\" opacity=\"0.49\"\/><ellipse cx=\"528\" cy=\"311\" rx=\"158\" ry=\"85\" transform=\"rotate(22 528 311)\" opacity=\"0.43\"\/><ellipse cx=\"528\" cy=\"311\" rx=\"209\" ry=\"156\" transform=\"rotate(20 528 311)\" opacity=\"0.37\"\/><ellipse cx=\"528\" cy=\"311\" rx=\"250\" ry=\"173\" transform=\"rotate(4 528 311)\" opacity=\"0.31\"\/><ellipse cx=\"528\" cy=\"311\" rx=\"318\" ry=\"207\" transform=\"rotate(-19 528 311)\" opacity=\"0.25\"\/><ellipse cx=\"528\" cy=\"311\" rx=\"387\" ry=\"259\" transform=\"rotate(22 528 311)\" opacity=\"0.19\"\/><ellipse cx=\"528\" cy=\"311\" rx=\"427\" ry=\"293\" transform=\"rotate(27 528 311)\" opacity=\"0.13\"\/><\/g><text x=\"64\" y=\"560\" font-family=\"Sora, system-ui, sans-serif\" font-weight=\"700\" font-size=\"160\" fill=\"#9aa4b2\" opacity=\"0.9\">BI<\/text><\/svg><\/span><span class=\"jcp-card__body\"><span class=\"jcp-card__kicker\"><span class=\"jcp-card__type\">Formation<\/span><span class=\"jcp-card__period\">2021 \u2192 2024<\/span><\/span><span class=\"jcp-card__title\">Bachelor&#8217;s in Computer Science<\/span><span class=\"jcp-card__tagline\">Algorithms, data structures, C++ and Java, web \u2014 and Spanish, learned on site.<\/span><ul class=\"jcp-chips\"><li class=\"jcp-chip\">C \/ C++<\/li><li class=\"jcp-chip\">Java<\/li><li class=\"jcp-chip\">Node.js<\/li><li class=\"jcp-chip jcp-chip--more\">+2<\/li><\/ul><span class=\"jcp-card__cta\">Read the case study <span aria-hidden=\"true\">\u2192<\/span><\/span><\/span><\/a><\/article>\t<\/div>\n\t<p class=\"jcp-grid__empty\" hidden>No project of this type.<\/p>\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull jcp-section jcp-section--alt has-global-padding is-layout-constrained wp-container-core-group-is-layout-868af94d wp-block-group-is-layout-constrained\" id=\"parcours\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\">\n\t\n\t<div class=\"wp-block-group jcp-section__head alignwide is-layout-flow wp-block-group-is-layout-flow\">\n\t\t\n\t\t<p class=\"jcp-kicker wp-block-paragraph\">Background<\/p>\n\t\t\n\t\t\n\t\t<h2 class=\"wp-block-heading jcp-split\">Experience &amp; education<\/h2>\n\t\t\n\t\t\n\t\t<p class=\"jcp-lead wp-block-paragraph\">Every step has its own page.<\/p>\n\t\t\n\t<\/div>\n\t\n\n\t<div class=\"jcp-timeline alignfull wp-block-jcp-timeline\" data-timeline=\"\">\n\t<div class=\"jcp-timeline__track\" tabindex=\"0\">\n\t\t<ol class=\"jcp-timeline__list\">\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-timeline__item jcp-reveal\"  style=\"--accent:#4fc3f7\">\n\t\t\t\t\t<span class=\"jcp-timeline__dot\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t<div class=\"jcp-timeline__card\">\n\t\t\t\t\t\t<p class=\"jcp-timeline__period\">2026 \u2192<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__org\">CIBEST, Besan\u00e7on<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"jcp-timeline__title\"><a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/cibest\/\">CIBEST \u2014 Full-stack developer<\/a><\/h3>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__role\">Final-year internship (4 months), then full-stack developer<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__tagline\">From on-board passenger counting to the supervision map: embedded, backend and web in the same team.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"jcp-chips\"><li class=\"jcp-chip\">Ansible<\/li><li class=\"jcp-chip\">Bun<\/li><li class=\"jcp-chip\">C \/ C++<\/li><li class=\"jcp-chip\">Grafana<\/li><li class=\"jcp-chip\">GTFS<\/li><li class=\"jcp-chip jcp-chip--more\">+13<\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-timeline__item jcp-reveal\"  style=\"--accent:#9aa4b2\">\n\t\t\t\t\t<span class=\"jcp-timeline__dot\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t<div class=\"jcp-timeline__card\">\n\t\t\t\t\t\t<p class=\"jcp-timeline__period\">2024 \u2192 2026<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__org\">Universit\u00e9 Marie &amp; Louis Pasteur, Besan\u00e7on<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"jcp-timeline__title\"><a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/master-isl\/\">Master&#8217;s in Computer Science (ISL)<\/a><\/h3>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__role\">Graduated 2026<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__tagline\">Software engineering, compilers, formal models, distributed systems \u2014 with two years in industry alongside.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"jcp-chips\"><li class=\"jcp-chip\">Java<\/li><li class=\"jcp-chip\">Python<\/li><li class=\"jcp-chip\">Tests automatis\u00e9s<\/li><li class=\"jcp-chip\">TypeScript<\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-timeline__item jcp-reveal\"  style=\"--accent:#f5c451\">\n\t\t\t\t\t<span class=\"jcp-timeline__dot\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t<div class=\"jcp-timeline__card\">\n\t\t\t\t\t\t<p class=\"jcp-timeline__period\">2024 \u2192 2025<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__org\">SKINSoft, Besan\u00e7on<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"jcp-timeline__title\"><a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/alternance-skinsoft\/\">Work-study \u2014 SKINSoft<\/a><\/h3>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__role\">Full-stack developer, work-study (Master&#039;s 1)<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__tagline\">Redesign of Tryphon&#039;s central screen and database hardening, in sprints with the team.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"jcp-chips\"><li class=\"jcp-chip\">Docker<\/li><li class=\"jcp-chip\">Git \/ Forgejo<\/li><li class=\"jcp-chip\">Java<\/li><li class=\"jcp-chip\">JavaScript<\/li><li class=\"jcp-chip\">Jira \/ Scrum<\/li><li class=\"jcp-chip jcp-chip--more\">+4<\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-timeline__item jcp-reveal\"  style=\"--accent:#9aa4b2\">\n\t\t\t\t\t<span class=\"jcp-timeline__dot\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t<div class=\"jcp-timeline__card\">\n\t\t\t\t\t\t<p class=\"jcp-timeline__period\">2021 \u2192 2024<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__org\">Universit\u00e9 de Franche-Comt\u00e9, Besan\u00e7on<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"jcp-timeline__title\"><a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/licence-informatique\/\">Bachelor&#8217;s in Computer Science<\/a><\/h3>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__role\">Graduated 2024<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__tagline\">Algorithms, data structures, C++ and Java, web \u2014 and Spanish, learned on site.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"jcp-chips\"><li class=\"jcp-chip\">C \/ C++<\/li><li class=\"jcp-chip\">Java<\/li><li class=\"jcp-chip\">Node.js<\/li><li class=\"jcp-chip\">Python<\/li><li class=\"jcp-chip\">React<\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-timeline__item jcp-reveal\"  style=\"--accent:#f5c451\">\n\t\t\t\t\t<span class=\"jcp-timeline__dot\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t<div class=\"jcp-timeline__card\">\n\t\t\t\t\t\t<p class=\"jcp-timeline__period\">avr. \u2192 juin 2024<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__org\">SKINSoft, Besan\u00e7on<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"jcp-timeline__title\"><a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/projets\/stage-skinsoft\/\">Bachelor&#8217;s internship \u2014 SKINSoft<\/a><\/h3>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__role\">Developer intern (Bachelor&#039;s 3)<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"jcp-timeline__tagline\">First contact with the professional world \u2014 and a work-study offer at the end.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"jcp-chips\"><li class=\"jcp-chip\">Git \/ Forgejo<\/li><li class=\"jcp-chip\">Java<\/li><li class=\"jcp-chip\">JavaScript<\/li><li class=\"jcp-chip\">Jira \/ Scrum<\/li><li class=\"jcp-chip\">MongoDB<\/li><li class=\"jcp-chip jcp-chip--more\">+3<\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t<\/li>\n\t\t\t\t\t<\/ol>\n\t<\/div>\n\t<div class=\"jcp-timeline__nav\">\n\t\t<button type=\"button\" class=\"jcp-timeline__btn\" data-dir=\"-1\" aria-label=\"More recent\">\u2190<\/button>\n\t\t<span class=\"jcp-timeline__progress\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t<button type=\"button\" class=\"jcp-timeline__btn\" data-dir=\"1\" aria-label=\"Older\">\u2192<\/button>\n\t<\/div>\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull jcp-section has-global-padding is-layout-constrained wp-container-core-group-is-layout-868af94d wp-block-group-is-layout-constrained\" id=\"competences\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\">\n\t\n\t<div class=\"wp-block-group jcp-section__head alignwide is-layout-flow wp-block-group-is-layout-flow\">\n\t\t\n\t\t<p class=\"jcp-kicker wp-block-paragraph\">Skills<\/p>\n\t\t\n\t\t\n\t\t<h2 class=\"wp-block-heading jcp-split\">What I use, and how often<\/h2>\n\t\t\n\t\t\n\t\t<p class=\"jcp-lead wp-block-paragraph\">Each bar = the number of projects on this site using the technology.<\/p>\n\t\t\n\t<\/div>\n\t\n\n\t<div class=\"jcp-skills alignfull wp-block-jcp-skills\">\n\t\t\t<div class=\"jcp-marquee\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<ul class=\"jcp-marquee__track\">\n\t\t\t\t\t\t\t\t\t\t\t<li>Tests automatis\u00e9s<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Git \/ Forgejo<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>JavaScript<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Docker<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>TypeScript<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Python<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Java<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Vue 3<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Jira \/ Scrum<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>PHP<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>WordPress (FSE)<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>HTML \/ CSS<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Node.js<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>WP Multilang<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Flutter \/ Dart<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>MongoDB<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>C \/ C++<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>nginx<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>LLM (Ollama)<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>OpenStreetMap<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>MapLibre \/ Protomaps<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Prisma<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>PostgreSQL<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Android<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Bun<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Hono<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>NestJS<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>React<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Spring Boot<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Stripe<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Firebase<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Tailwind CSS<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>MCP<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>GTFS<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>RabbitMQ<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Angular<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Linux<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>WebSocket<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>k6<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Grafana<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Ansible<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Yocto<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>SQLite<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>SFML<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Chrome headless (CDP)<\/li>\n\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t\t<ul class=\"jcp-marquee__track\">\n\t\t\t\t\t\t\t\t\t\t\t<li>Tests automatis\u00e9s<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Git \/ Forgejo<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>JavaScript<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Docker<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>TypeScript<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Python<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Java<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Vue 3<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Jira \/ Scrum<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>PHP<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>WordPress (FSE)<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>HTML \/ CSS<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Node.js<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>WP Multilang<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Flutter \/ Dart<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>MongoDB<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>C \/ C++<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>nginx<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>LLM (Ollama)<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>OpenStreetMap<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>MapLibre \/ Protomaps<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Prisma<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>PostgreSQL<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Android<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Bun<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Hono<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>NestJS<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>React<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Spring Boot<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Stripe<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Firebase<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Tailwind CSS<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>MCP<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>GTFS<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>RabbitMQ<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Angular<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Linux<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>WebSocket<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>k6<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Grafana<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Ansible<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Yocto<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>SQLite<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>SFML<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li>Chrome headless (CDP)<\/li>\n\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t<\/div>\n\t\t<div class=\"jcp-skills__groups\">\n\t\t\t\t\t\t\t\t<section class=\"jcp-skills__group jcp-reveal\">\n\t\t\t\t<h3 class=\"jcp-skills__heading\">Web<\/h3>\n\t\t\t\t<ul class=\"jcp-skills__list\">\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.857\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/javascript\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">JavaScript<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">6 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.714\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/typescript\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">TypeScript<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">5 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.714\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/java\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Java<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">5 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.571\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/vue\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Vue 3<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">4 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.429\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/php\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">PHP<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">3 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.429\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/wordpress\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">WordPress (FSE)<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">3 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.429\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/html-css\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">HTML \/ CSS<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">3 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.429\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/nodejs\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Node.js<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">3 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.429\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/wp-multilang\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">WP Multilang<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">3 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.286\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/bun\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Bun<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">2 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.286\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/hono\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Hono<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">2 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.286\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/nestjs\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">NestJS<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">2 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.286\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/react\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">React<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">2 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.286\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/spring-boot\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Spring Boot<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">2 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/stripe\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Stripe<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/tailwind\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Tailwind CSS<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/angular\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Angular<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t<\/section>\n\t\t\t\t\t\t\t\t<section class=\"jcp-skills__group jcp-reveal\">\n\t\t\t\t<h3 class=\"jcp-skills__heading\">Mobile<\/h3>\n\t\t\t\t<ul class=\"jcp-skills__list\">\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.429\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/flutter\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Flutter \/ Dart<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">3 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.286\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/android\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Android<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">2 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/firebase\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Firebase<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t<\/section>\n\t\t\t\t\t\t\t\t<section class=\"jcp-skills__group jcp-reveal\">\n\t\t\t\t<h3 class=\"jcp-skills__heading\">Embedded<\/h3>\n\t\t\t\t<ul class=\"jcp-skills__list\">\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.429\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/cpp\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">C \/ C++<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">3 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/sfml\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">SFML<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t<\/section>\n\t\t\t\t\t\t\t\t<section class=\"jcp-skills__group jcp-reveal\">\n\t\t\t\t<h3 class=\"jcp-skills__heading\">Data &amp; real time<\/h3>\n\t\t\t\t<ul class=\"jcp-skills__list\">\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.714\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/python\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Python<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">5 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.429\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/mongodb\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">MongoDB<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">3 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.286\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/llm\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">LLM (Ollama)<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">2 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.286\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/openstreetmap\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">OpenStreetMap<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">2 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.286\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/maplibre\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">MapLibre \/ Protomaps<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">2 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.286\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/prisma\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Prisma<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">2 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.286\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/postgresql\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">PostgreSQL<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">2 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/mcp\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">MCP<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/gtfs\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">GTFS<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/rabbitmq\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">RabbitMQ<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/websocket\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">WebSocket<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/sqlite\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">SQLite<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t<\/section>\n\t\t\t\t\t\t\t\t<section class=\"jcp-skills__group jcp-reveal\">\n\t\t\t\t<h3 class=\"jcp-skills__heading\">Ops &amp; tooling<\/h3>\n\t\t\t\t<ul class=\"jcp-skills__list\">\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:1\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/tests\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Tests automatis\u00e9s<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">7 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:1\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/git\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Git \/ Forgejo<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">7 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.857\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/docker\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Docker<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">6 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.571\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/jira\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Jira \/ Scrum<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">4 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.286\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/nginx\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">nginx<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">2 <small>projects<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/linux\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Linux<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/k6\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">k6<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/grafana\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Grafana<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/ansible\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Ansible<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/yocto\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Yocto<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li class=\"jcp-skill\" style=\"--ratio:0.143\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/portfolio.cousseaujimmy.fr\/en\/stack\/headless-chrome\/\">\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__name\">Chrome headless (CDP)<\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__bar\" aria-hidden=\"true\"><span><\/span><\/span>\n\t\t\t\t\t\t\t\t<span class=\"jcp-skill__count\">1 <small>project<\/small><\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t<\/section>\n\t\t\t<\/div>\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull jcp-section jcp-section--contact has-global-padding is-layout-constrained wp-container-core-group-is-layout-868af94d wp-block-group-is-layout-constrained\" id=\"contact\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\">\n\t\n\t<div class=\"wp-block-group jcp-section__head alignwide is-layout-flow wp-block-group-is-layout-flow\">\n\t\t\n\t\t<p class=\"jcp-kicker wp-block-paragraph\">Contact<\/p>\n\t\t\n\t\t\n\t\t<h2 class=\"wp-block-heading jcp-split\">A position, a project, a question?<\/h2>\n\t\t\n\t\t\n\t\t<p class=\"jcp-lead wp-block-paragraph\">Full-stack and mobile developer, curious about embedded. I reply quickly.<\/p>\n\t\t\n\t<\/div>\n\t\n\n\t<div class=\"jcp-contact alignwide wp-block-jcp-contact\">\n\t\t\t<div class=\"jcp-contact__email\">\n\t\t\t<a class=\"jcp-contact__mail\" href=\"mailto:ecole.jimmy@gmail.com\" data-magnetic>ecole.jimmy@gmail.com<\/a>\n\t\t\t<button type=\"button\" class=\"jcp-contact__copy\" data-copy=\"ecole.jimmy@gmail.com\" aria-label=\"Copy the address\">\n\t\t\t\t<svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 9h10v11H9zM5 15V4h10\"\/><\/svg>\n\t\t\t<\/button>\n\t\t<\/div>\n\t\t\t\t<ul class=\"jcp-contact__links\">\n\t\t\t\t\t\t\t<li><a class=\"jcp-contact__link jcp-contact__link--linkedin\" href=\"https:\/\/www.linkedin.com\/in\/jimmycousseau\" rel=\"me noopener\" target=\"_blank\">LinkedIn <span aria-hidden=\"true\">\u2197<\/span><\/a><\/li>\n\t\t\t\t\t\t\t<li><a class=\"jcp-contact__link jcp-contact__link--github\" href=\"https:\/\/github.com\/JimmyCousseau\/\" rel=\"me noopener\" target=\"_blank\">GitHub <span aria-hidden=\"true\">\u2197<\/span><\/a><\/li>\n\t\t\t\t\t\t\t<li><a class=\"jcp-contact__link jcp-contact__link--forgejo\" href=\"https:\/\/forgejo.cousseaujimmy.fr\/Jimmyrtille\" rel=\"me noopener\" target=\"_blank\">Forgejo <span aria-hidden=\"true\">\u2197<\/span><\/a><\/li>\n\t\t\t\t\t<\/ul>\n\t<\/div>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Web, mobile &amp; embedded developer Jimmy Cousseau Complete products, from the interface to the server. Developer at CIBEST, creator of LamaQuest. Besan\u00e7on, France Vue \u00b7 TypeScript \u00b7 Bun \u00b7 PostgreSQL Flutter \u00b7 WordPress \u00b7 Docker Case studies Three projects that define my work A product in production, a job in industry, a client site online. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-landing","meta":{"footnotes":""},"class_list":["post-602","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/pages\/602","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/comments?post=602"}],"version-history":[{"count":4,"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/pages\/602\/revisions"}],"predecessor-version":[{"id":669,"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/pages\/602\/revisions\/669"}],"wp:attachment":[{"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/media?parent=602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}