#set page( paper: "a4", footer: grid( columns: (1fr, 1fr), align: (left, right), [_Thomas FORGIONE, #link("mailto:thomas@polymny.studio")[thomas\@polymny.studio]_], [_page #context[#here().page()] / 2_] ) ) #show heading.where(level: 1): name => { rect( fill: gray.darken(30%), width: 100%, align(center, { set text(fill: white) upper(name) }) ) } #show bibliography: none #bibliography("bib.bib") #let birthdate = datetime( year: 1992, month: 10, day: 12, ) #let today = datetime.today() #let age = today - birthdate #let age_years = calc.floor(age.days() / 365.25) #grid( columns: (1fr, 1fr), [ *Thomas FORGIONE* \ *9 boulevard de la gare* \ *31500 Toulouse* \ 06 71 22 05 84 \ #link("mailto:thomas@polymny.studio")[thomas\@polymny.studio] ], align(right, [ Né le 12 octobre 1992 (#age_years ans) \ Nationalité française ] ), ) #v(0.6cm) #align(center, rect( stroke: black, width: 100%, inset: 1em, { set text(size: 1.5em) [ *Ingénieur en informatique et mathématiques appliquées* \ *Docteur en informatique et télécommunication* ] } ) ) #v(0.6cm) = Formation #grid( gutter: 1em, columns: (auto, 1fr), [2019], [ *Doctorat de l'Institut National Polytechnique de Toulouse*\ Transmission adaptative de modèles 3D massifs \ École doctorale MITT, Informatique et Télécommunication ], [2015], [ *Diplôme d'ingénieur ENSEEIHT*, Toulouse \ Informatique et mathématiques appliquées, spécialité multimédia ] ) = Expérience professionnelle #grid( gutter: 1em, columns: (auto, 1fr), [2022 -- ], [ *CTO Polymny Studio, Toulouse* - *Développement de #link("https://ergol-rs.github.io")[Ergol], ORM asynchrone en Rust pour Postgresql* - *Adaptation Polymny Studio pour Kubernetes* - Séparation entre partie web et partie applicative de Polymny Studio - Création des images Docker associées - Communication via RabbitMQ - Support pour stockage block storage NFS ou via bucket S3 - Authentification locale ou via OpenID possible - *Déploiement Polymny Studio double instance* - instance gratuite hébergée chez Tetaneutral, FAI associatif - instance payante hébergée sur cluster Kubernetes chez OVH - *Développement de PAF : Polymny -- Aspie-Friendly* - Lecteur vidéo pédagogique customisable - Choix de l'orateur, avatar virtuel, émotion de l'avatar, scène de fond ], [2019 -- 2022], [ *Post-doc R&D Institut National Polytechnique de Toulouse* - Lancement de Polymny Studio, outil de création de vidéos pédagogiques sur le web - Back-end en Rust, front-end en Elm, production vidéo via FFmpeg - Déploiement d'une instance Polymny Studio chez Tetaneutral, FAI associatif - Co-création et présidence de l'Association Polymny Studio ], [2016 -- 2019], [ *Doctorat Institut National Polytechnique de Toulouse* - Mise en place d'une architecture de streaming 3D via serveur statique) - Préparation du contenu 3D ($k$-d tree, encodage multi-résolution des textures)) - Détermination par le client du contenu à télécharger via des métriques d'utilité - Développement d'une interface mobile de navigation : joystick virtuel et gyroscope ) - Optimisation de la transmission lors des clics sur marque-pages ], [2015 -- 2016], [ *Ingénieur R&D, Institut National Polytechnique de Toulouse* - Mise en place d'une étude utilisateur permettant de mettre en évidence la facilitation de la navigation dans une scène par l'introduction de marque-pages - Mesure de l'impact des marque-pages sur la transmission (qualité de service) - Mise en place de politiques de chargement exploitant les marque-pages - Mesure de la performance de ces politiques - Travaux publiés à la conférence scientifique (papier long) ACM MMSys 2016 ], [2015], [ *Projet de fin d'études ENSEEIHT, Toulouse* - Développement d'une interface de navigation dans une scène 3D - Architecture de streaming 3D client / serveur - Détermination côté serveur des faces visibles basées sur la position de la caméra - Envoi de la partie visible de la scène en priorité - Marque-pages 3D facilitant la navigation dans la scène ] ) = Compétences informatiques #grid( gutter: (1em), columns: (auto, 1fr), [*Dev*], [Rust, Elm, JavaScript, C++, Python, Shell], [*Ops*], [Docker, Docker Compose, Kubernetes, Nginx, RabbitMQ, S3], [*OS*], [Debian, Ubuntu, ArchLinux, Rasberry Pi OS], [*Self-hosted*], [Rasberry Pi 5, Registry Docker privé, Gitea, NextCloud, Replay Twitch (VOD)], ) = Publications #cite(form: "full", ) #cite(form: "full", ) #cite(form: "full", ) #cite(form: "full", ) = Langues #grid( columns: (auto, 1fr), gutter: 1em, [*Français*], [Langue maternelle], [*Anglais*], [Niveau C1], ) = Divers #grid( columns: (auto, 1fr), gutter: 1em, [*Sport*], [Jiu-jitsu brésilien, depuis 2020, ceinture bleue], [*Moto*], [permis A2 depuis 2016, permis A depuis 2018], [*Musique*], [Guitare depuis 2010, basse depuis 2018], )