# Zaki Gouizi

> Ingénieur et cofondateur d’Enka, je développe des applications, des automatisations et des outils autour des données. Je relie le besoin aux interfaces, au backend et au travail des personnes qui les utilisent.

## Ce que je peux apporter à un projet

Je travaille sur le logiciel, la data et l’automatisation. Ce qui m’intéresse, c’est de relier les différentes parties d’un problème : comprendre le besoin, définir le fonctionnement, développer l’application et faire circuler les bonnes informations entre les personnes et les outils.

- **Développer un produit côté interface et côté serveur.** Chez [Enka](https://zaki.somehow.engineer/read/fr/enka.md), je suis cofondateur et CTO. Je travaille sur la commande client, les outils des livreurs et l’administration. Mon [stage chez StudentBank](https://zaki.somehow.engineer/read/fr/studentbank.md) couvrait déjà les entretiens utilisateurs, la modélisation, les interfaces React et le développement backend.
- **Transformer une tâche répétitive en outil pratique.** [Murmur](https://zaki.somehow.engineer/read/fr/murmur.md), [Screen to Calendar](https://zaki.somehow.engineer/read/fr/screen-to-calendar.md) et mon [espace de prospection](https://zaki.somehow.engineer/read/fr/prospecting-workspace.md) répondent à des besoins concrets : dicter du texte, transférer des informations dans un calendrier, ou garder les recherches et les brouillons de messages organisés.
- **Intégrer la génération par IA dans un travail que l’on peut suivre et réviser.** [Flow Studio](https://zaki.somehow.engineer/read/fr/flow-studio.md) rassemble les prompts, les générations d’images et de vidéos, les versions et les retours. [Thinking Partner](https://zaki.somehow.engineer/read/fr/thinking-partner.md) explore une autre question : comment conserver les questions, les sources et les révisions au fil d’une recherche.
- **Étudier un problème de prévision ou de données.** Chez [Decathlon](https://zaki.somehow.engineer/read/fr/decathlon.md), j’ai travaillé sur des covariables de prévision comme la météo, les jours fériés et les événements. Mes [recherches sur les cryptomonnaies](https://zaki.somehow.engineer/read/fr/crypto-research.md) montrent aussi ma façon de creuser une question, de vérifier l’expérience et de revoir mes conclusions quand les résultats l’exigent.
- **Participer à un projet qui mêle technique et création.** Je suis aussi coprésident de [Recto Verso](https://zaki.somehow.engineer/read/fr/recto-verso.md), une association autour de l’art, de la photographie et des visuels. Je contribue au cadrage et aux idées sur les [films de mes amis](https://zaki.somehow.engineer/read/fr/filmmaking.md), et j’apprends à [fabriquer mes vêtements](https://zaki.somehow.engineer/read/fr/clothes.md).

Pour le freelance, je travaille avec une petite équipe de collaborateurs en automatisation, cybersécurité, marketing et création de contenu. Nous définissons les interventions selon le besoin du client et les spécialités de chacun.

## Le fil conducteur de mon travail

J’aime aller au-delà de la première idée. Avec Enka, il faut relier l’application au travail des restaurants et des livreurs. Chez StudentBank, il fallait relier les parcours utilisateurs aux interfaces et au modèle de données. Mes projets d’automatisation deviennent des outils que je peux reprendre et utiliser.

C’est ce que je souhaite continuer à faire : partir d’un besoin, rendre le fonctionnement clair, construire ce qui est utile et l’améliorer en l’utilisant. Je développe mon activité freelance et je recherche aussi des opportunités à Paris et à l’étranger.

## Salut, moi c’est Zaki.

> Un parcours d’ingénieur, des expériences en logiciel et en data, puis le freelance et une recherche d’opportunités à Paris et à l’étranger.

Bienvenue sur mon portfolio

Rubrique: Bienvenue

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#welcome/27>)

[English](<https://zaki.somehow.engineer/profile.en.md>)

### Quelques mots sur moi

Je m’appelle Zaki Gouizi. Je suis ingénieur, diplômé de JUNIA HEI à Lille avec une spécialisation informatique, après une prépa au lycée LaSalle.

J’ai travaillé sur la prévision chez Decathlon et le développement full-stack chez StudentBank. Je suis aussi cofondateur et CTO d’Enka.

Je développe mon activité freelance avec une petite équipe de collaborateurs : automatisation, cybersécurité, marketing, création de contenu et autres services selon les besoins de chaque client. Je recherche aussi des opportunités professionnelles à Paris et à l’étranger.

### À découvrir aussi

- [Mes études](<https://zaki.somehow.engineer/read/fr/engineering-studies.md>)
- [Decathlon](<https://zaki.somehow.engineer/read/fr/decathlon.md>)
- [StudentBank](<https://zaki.somehow.engineer/read/fr/studentbank.md>)
- [Enka](<https://zaki.somehow.engineer/read/fr/enka.md>)

## Ma façon de travailler

Je m’appelle Zaki. Je suis ingénieur et cofondateur d’Enka. Je développe des applications, des outils d’automatisation et des projets autour de l’IA, souvent à partir d’un besoin personnel ou d’un sujet que j’ai envie de comprendre.

Quand je rencontre un problème, je me demande assez vite si je pourrais fabriquer ma propre solution. C’est ce qui m’a attiré vers l’ingénierie : pouvoir essayer une idée par moi-même, comprendre comment elle fonctionne et la faire évoluer.

Je m’intéresse aussi au cinéma, à la cuisine et, plus récemment, à la couture. J’aime participer aux projets de mes amis, apprendre à leur contact et apporter mes idées. Passer d’un domaine à l’autre me donne souvent une autre façon d’aborder ce que je fais.

## Contact

- [Email me](<mailto:zakigouizi@gmail.com>)
- [Open LinkedIn](<https://www.linkedin.com/in/zaki-gouizi/>)
- [Open GitHub](<https://github.com/zakich4n>)


## Outils & recherche

### Murmur

> Murmur est une application de dictée pour macOS qui utilise une reconnaissance vocale locale. Elle permet de passer d’une parole en français ou en anglais à du texte, avec une étape de reformulation facultative, tout en exécutant le traitement sur l’ordinateur. Le projet a commencé par mesurer les capacités de la machine avant de devenir une application native dans la barre de menus.

Application personnelle · macOS · octobre 2026

Rubrique: Outils & recherche

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#built/0>)

[English](<https://zaki.somehow.engineer/read/en/murmur.md>)

#### Partir de la machine

Murmur est une application de dictée en français et en anglais fondée sur la reconnaissance vocale locale. J'ai commencé par mesurer ce qu'un Mac Intel pouvait faire tourner, puis construit une application native dans la barre de menus autour de l'enregistrement, de la transcription et d'une correction de texte facultative.

La machine de test disposait d'un Intel Core i7 à six cœurs et de 16 Go de mémoire. Lors des tests CPU enregistrés, le moteur de transcription a traité deux extraits synthétiques de 20 secondes, l'un en français et l'autre en anglais, en environ 3,74 secondes chacun. Ces mesures incluaient le démarrage et le chargement du modèle, mais pas l'enregistrement ni l'interface. Elles constituaient un point de départ, pas une mesure de précision sur la parole quotidienne.

#### Séparer la reconnaissance de la correction

Whisper produit la transcription brute. Une étape Qwen facultative permet de corriger le texte tout en conservant l'original. La détection de parole aide à gérer les silences, et une transcription vide ne déclenche pas de correction.

L'application intègre des moteurs et modèles existants avec whisper.cpp et llama.cpp. Mon travail portait sur l'application et la coordination de ces composants.

#### Soigner ce qui entoure le traitement

Une grande partie du travail concernait l'annulation, les erreurs, l'historique et l'insertion du texte. Annuler une tâche doit arrêter ses processus. Une correction qui échoue doit laisser le texte original récupérable. Si l'utilisateur change de fenêtre, l'application doit éviter d'insérer du texte au mauvais endroit.

L'application Swift gère ces états et propose l'insertion ou le passage par le presse-papiers. Le dispositif de benchmark Python reste séparé de son fonctionnement.

#### État actuel

Le projet a abouti à une application installée localement, avec des vérifications documentées des moteurs et de leur exécution. Les essais plus larges sur le bureau restent incomplets, notamment pour les raccourcis physiques, le microphone et l'insertion dans différentes applications. C'est une application personnelle en développement.

Murmur représente une partie de l'ingénierie que j'apprécie : prendre un modèle capable et construire ce qui lui permet de trouver sa place dans une tâche courante.


### Recherche crypto

> Plusieurs mois de modèles, d’analyse de portefeuilles et de trading simulé, jusqu’à remettre l’expérience elle-même en question.

Recherche personnelle · 2026

Rubrique: Outils & recherche

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#built/1>)

[English](<https://zaki.somehow.engineer/read/en/crypto-research.md>)

#### En bref

| Indicateur | Valeur |
| --- | --- |
| Mon rôle | Recherche et développement personnels |
| Période | 2026 · plusieurs mois |
| Données | Bougies de 15 minutes · 22 tokens |
| Trading | Simulation · suivi Telegram |

#### La question de départ

J'ai passé plusieurs mois à chercher si les données des marchés crypto pouvaient contenir un signal utile. Je voulais comprendre le problème par moi-même. J'ai donc construit des outils pour étudier le comportement de portefeuilles, entraîné des modèles sur les historiques de prix, exploré des textes de Reddit et fait tourner des bots de trading simulé suivis sur Telegram.

#### Construire les expériences

Le travail s'est développé sur plusieurs projets. L'analyse de portefeuilles passait par la collecte de transactions et la reconstitution de positions. Un pipeline de modélisation des prix utilisait des bougies de 15 minutes sur 22 tokens, avec environ 1,49 million de lignes enregistrées. Plus de 1 000 variables candidates ont été ramenées à 300 pour la modélisation.

Les expériences répondaient à des questions différentes. Prédire une direction future et reconnaître les conditions actuelles du marché sont deux tâches distinctes, même quand leurs scores apparaissent côte à côte. J'ai également étudié si les achats et ventes collectifs de gros portefeuilles apportaient un signal exploitable.

Python · Pandas / Parquet · LightGBM · Optuna · SQLite · Telegram

| Valeur | Indicateur |
| --- | --- |
| 22 | Tokens étudiés |
| ≈ 1,49 M | Lignes de bougies enregistrées |
| 300 | Variables sélectionnées |
| 4 h | Horizon de direction |

#### Le résultat qui a changé la suite

Certains premiers résultats semblaient très bons. La comparaison entre les calculs historiques et les informations disponibles pendant le trading simulé a révélé des données futures dans les variables. Des bougies horaires complètes étaient utilisées avant leur clôture, et une méthode de décomposition utilisait des données ultérieures pour calculer des valeurs passées.

La correction s'appuyait sur les dernières bougies réellement clôturées et sur des fenêtres glissantes limitées au passé. Dans l'expérience enregistrée après cette correction, la précision sur la direction est passée de 65,7 % à 43,3 %. Cela changeait ce que je pouvais conclure du modèle.

| Valeur | Indicateur |
| --- | --- |
| 65,7 % | Avant correction · invalidé |
| 43,3 % | Après correction |
| −22,4 points | Écart de précision |

> Le modèle de régime conservait environ 91,7 % de précision, mais il classait les conditions actuelles du marché. Il ne prédisait pas les prix futurs : son score ne se compare pas à celui du modèle de direction.

##### Images et médias

[La correction a réduit le score et changé l’interprétation de l’expérience. Le premier résultat est invalidé.](<https://zaki.somehow.engineer/content/assets/crypto/case-study/direction-correction.fr.png>)

Comparaison de précision : 65,7 % avant correction avec fuite de données, puis 43,3 %, soit une baisse de 22,4 points.

[SVG](<https://zaki.somehow.engineer/content/assets/crypto/case-study/direction-correction.fr.svg>)

Crédit: Graphique créé pour ce portfolio à partir de la décision de recherche du 21 mars 2026, consignée dans les notes de revue. Expériences non relancées.

[Exemple de la fuite temporelle corrigée : utiliser la dernière bougie réellement clôturée. Schéma explicatif, sans prix de marché.](<https://zaki.somehow.engineer/content/assets/crypto/case-study/completed-candle.fr.png>)

Schéma montrant qu’à 00:15, la bougie de 00:00 à 01:00 est encore incomplète ; la bougie précédente est disponible.

[SVG](<https://zaki.somehow.engineer/content/assets/crypto/case-study/completed-candle.fr.svg>)

Crédit: Graphique créé pour ce portfolio à partir de la méthode de correction documentée. Expériences non relancées.

#### Tester d’autres sources de signal

J’ai aussi étudié les flux collectifs de gros portefeuilles. Le rapport conservé examine 1 470 combinaisons de filtres de consensus ; aucune ne résiste à la correction statistique appliquée aux tests multiples. Le résultat concernait ce protocole, sans démontrer que tous les signaux de marché sont inutilisables.

Une autre piste utilisait des embeddings MiniLM de textes Reddit et une projection apprise. Le rapport d’apprentissage contrastif porte sur 268 975 posts d’entraînement et 18 748 posts de test, avec une précision de 50,5 % sur les posts de test. Sa conclusion était « NO SIGNAL ». Cette tâche était distincte de la classification des prix en trois directions.

##### Images et médias

[Les volumes et le résultat d’une expérience textuelle séparée, sans comparaison directe avec le modèle de prix.](<https://zaki.somehow.engineer/content/assets/crypto/case-study/reddit-experiment.fr.png>)

Tailles des partitions Reddit : 268 975 posts d’entraînement et 18 748 posts de test ; précision enregistrée de 50,5 % et conclusion sans signal.

[SVG](<https://zaki.somehow.engineer/content/assets/crypto/case-study/reddit-experiment.fr.svg>)

Crédit: Graphique créé pour ce portfolio à partir du rapport contrastif Reddit, consigné dans les notes de revue. Expériences non relancées.

#### Suivre les gros portefeuilles en trading simulé

J’ai construit un bot qui surveillait une sélection de gros portefeuilles et utilisait leur activité pour déclencher des positions simulées, avec un suivi sur Telegram. La recherche sur les portefeuilles devenait une expérience complète : détecter un signal, ouvrir une position simulée, la suivre et enregistrer sa clôture.

Le suivi du bot affichait environ +28 SOL de résultat simulé. L’audit ultérieur a reconstitué +27,63 unités étiquetées SOL sur la dernière période après remise à zéro, du 13 avril au 18 mai 2026 : 1 367 positions clôturées appariées, pour un capital initial simulé de 11,81 unités. Le filtre de suivi initial affichait +28,40 ; la normalisation des dates a réintégré des pertes supplémentaires.

C’était une étape encourageante après plusieurs mois de recherche : le système de suivi des gros portefeuilles tournait et produisait un résultat positif dans sa propre simulation. J’ai ensuite examiné ce que ce résultat devait aux hypothèses du simulateur et à quelques gains exceptionnels enregistrés.

Le journal crypto-follow complet contient 4 515 achats et 4 435 ventes du 2 avril au 18 mai 2026, tous marqués comme simulés. Ces 8 950 lignes comptent les achats et les ventes séparément et couvrent une période plus large que le résultat après remise à zéro. Le code les reliait à des alertes Telegram étiquetées [PAPER].

| Valeur | Indicateur |
| --- | --- |
| ≈ +28 | Résultat simulé · unités étiquetées SOL |
| 1 367 | Positions clôturées appariées · période finale |
| 11,81 | Capital initial simulé · unités SOL |

> Résultat historique du simulateur, pas un bénéfice vérifié en SOL. L’audit a relevé des limites de comptabilité, de conversion monétaire et de prix d’exécution ; la section suivante présente les tests de sensibilité.

##### Images et médias

[8 950 enregistrements ne signifient pas 8 950 positions clôturées. Ce graphique décrit l’activité enregistrée, pas sa rentabilité.](<https://zaki.somehow.engineer/content/assets/crypto/case-study/paper-records.fr.png>)

4 515 achats et 4 435 ventes, soit 8 950 enregistrements individuels de trading simulé.

[SVG](<https://zaki.somehow.engineer/content/assets/crypto/case-study/paper-records.fr.svg>)

Crédit: Graphique créé pour ce portfolio à partir des agrégats SQLite lus le 5 novembre 2026. Expériences non relancées.

#### Vérifier ce que mesure le simulateur

Un audit historique conservé a ensuite mis en évidence des limites de comptabilité, de conversion monétaire et de prix d’exécution simulés. Une simple correction du calcul de trésorerie ne suffisait pas à valider la stratégie : certains gains exceptionnels dominaient encore les résultats.

Dans un replay avec recalcul des mises, le résultat enregistré passe de +29,09 unités étiquetées SOL à +2,07 en excluant deux gains signalés comme suspects, puis à −6,30 sans les cinq plus gros gains. Ce sont des exclusions choisies après observation, sur des rendements dont les prix d’exécution restent non vérifiés. Elles servent à mesurer la sensibilité du résultat, pas à annoncer un bénéfice réel ou une stratégie corrigée.

J'ai ensuite adapté un framework existant de recherche automatisée pour organiser les essais autour d'un jeu de données fixe, de références de comparaison et de règles plus explicites. La fiabilité de l'expérience est devenue un sujet aussi important que le choix du modèle.

Le journal de cette adaptation contient 384 entrées : références, essais, échecs et restaurations de candidats. Ce n’est pas un décompte de 384 expériences indépendantes réussies. Les comparaisons doivent rester dans une même définition de cible.

> Les graphiques sont nouveaux, mais les valeurs viennent de rapports et d’analyses conservés. Aucun bot, entraînement ou replay de trading n’a été relancé pour les produire.

##### Images et médias

[Scénarios du replay historique du 14 octobre 2026. Les exclusions sont a posteriori ; ce graphique ne décrit pas des profits réels.](<https://zaki.somehow.engineer/content/assets/crypto/case-study/replay-sensitivity.fr.png>)

Sensibilité d’un replay simulé : +29,09 unités, +2,07 sans deux gains suspects, −6,30 sans les cinq plus gros gains ; prix d’exécution non vérifiés.

[SVG](<https://zaki.somehow.engineer/content/assets/crypto/case-study/replay-sensitivity.fr.svg>)

Crédit: Graphique créé pour ce portfolio à partir du replay de trésorerie historique du 14 octobre 2026. Expériences non relancées.

#### Ce que j'en retiens

Ce projet me ressemble particulièrement. J'ai suivi une question assez longtemps pour comprendre pourquoi certaines réponses prometteuses ne tenaient pas. J'y ai développé mes compétences en traitement des données, en modélisation et en débogage, tout en devenant plus attentif à ce qu'un résultat démontre réellement.

Les chiffres présentés proviennent des comptes rendus d'expériences conservés. Ils décrivent ces essais, pas une performance prédictive actuelle ni une stratégie de trading rentable.


### Flow Studio

> Un espace visuel pour garder les références, les consignes, les versions et les retours reliés autour de Google Flow.

Outils personnels · Automatisation créative

Rubrique: Outils & recherche

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#built/2>)

[English](<https://zaki.somehow.engineer/read/en/flow-studio.md>)

#### En bref

| Indicateur | Valeur |
| --- | --- |
| Mon rôle | Application et automatisation |
| Interface | Graphe · versions · revue |
| Génération | Google Flow |
| Exemple | Production existante Coco Romy |

#### Garder le fil de la création

Générer des images et des vidéos implique plus qu’une consigne. Les références, les résultats précédents et les demandes de modification doivent rester associés. J’ai construit Flow Studio pour garder ce travail dans un même espace visuel, avec un adaptateur navigateur pour Google Flow.

Les captures présentées ici viennent de Coco Romy, une production générée déjà présente dans mon espace de travail. Elles montrent un vrai projet avec ses images, ses consignes, ses versions et ses clips, sans recréer l’interface pour le portfolio.

##### Images et médias

[Le graphe conserve les liens entre les éléments ; le panneau de droite donne accès au contenu complet du nœud.](<https://zaki.somehow.engineer/content/assets/flow-studio/case-study/image-details.webp>)

Graphe Flow Studio reliant images, consignes et plans vidéo, avec le détail d’une image sélectionnée à droite.

Crédit: Flow Studio · projet existant Coco Romy. Capture du 9 novembre 2026.

#### Relier les consignes aux résultats

Le travail est organisé en nœuds : consignes, références, images, vidéos et étapes de revue. Une image conserve sa consigne et ses références ; le plan vidéo associé garde à son tour le contexte de l’image utilisée.

L’objectif est de pouvoir revenir sur une décision sans chercher quel fichier allait avec quelle version. Le graphe rend le parcours lisible, tandis que le stockage garde les identifiants, les paramètres et les fichiers récupérés.

TypeScript · React · React Flow / XYFlow · File-backed state · Google Flow

Du brief au plan généré

1. **Consigne** — Préciser la scène, les références et ce qui doit être préservé.
2. **Image** — Examiner le résultat et conserver ses versions.
3. **Vidéo** — Relier le plan à son image et à ses consignes d’animation.

Lecture simplifiée du processus visible dans le projet existant.

#### Faire évoluer une image sans perdre les versions

Dans cet exemple, la demande était précise : changer la position des deux personnages sur le scooter en préservant leurs identités, leurs vêtements et la lumière. La version approuvée place Coco au guidon et Romy derrière lui.

L’historique garde la première version, la révision produite par l’agent et l’état de validation. On peut consulter les anciennes consignes, comparer leur texte et restaurer une version sans effacer la suite du travail.

##### Images et médias

[Version 1, conservée dans l’historique.](<https://zaki.somehow.engineer/content/assets/flow-studio/case-study/coco-romy-keyframe-v1.webp>)

Première version générée : Romy est à l’avant du scooter et Coco derrière.

Crédit: Coco Romy · image générée avec Google Flow, archive du projet.

[Version 2 approuvée : les positions ont été changées en gardant la scène reconnaissable.](<https://zaki.somehow.engineer/content/assets/flow-studio/case-study/coco-romy-keyframe.webp>)

Version révisée : Coco conduit le scooter et Romy est assise derrière lui, dans la même rue à l’aube.

Crédit: Coco Romy · image générée avec Google Flow, archive du projet.

[L’ancienne version et ses consignes restent consultables depuis le même nœud.](<https://zaki.somehow.engineer/content/assets/flow-studio/case-study/version-history.webp>)

Onglet History affichant les deux versions de l’image et les anciennes consignes.

Crédit: Flow Studio · projet existant Coco Romy. Capture du 9 novembre 2026.

#### Transformer les retours en actions

La revue propose trois décisions : approuver, commenter ou demander des modifications. Un retour soumis est lié à la version concernée et devient une tâche que l’agent peut lire. Le résultat d’une révision revient comme une nouvelle version du même nœud.

Cela permet de préciser ce qui doit changer, mais aussi ce qui doit rester identique. Le suivi de la revue et l’accusé de traitement évitent que le commentaire et la révision deviennent deux éléments séparés.

##### Images et médias

[Un brouillon de démonstration saisi pour la capture, puis effacé. Aucun nouveau retour n’a été envoyé au projet existant.](<https://zaki.somehow.engineer/content/assets/flow-studio/case-study/review-controls.webp>)

Onglet Review avec un brouillon de retour marqué Portfolio demo et les actions Approve, Comment et Request changes.

Crédit: Flow Studio · projet existant Coco Romy. Capture du 9 novembre 2026.

#### Passer de l’image au plan vidéo

Le plan vidéo garde son image et sa consigne de mouvement à portée de main. Le panneau de détail permet de revoir la scène et de lire les contraintes de continuité avant de valider le résultat.

L’extrait ci-dessous provient d’un plan déjà généré pour Coco Romy. Il dure environ huit secondes, au format vertical 720 × 1280 à 24 images par seconde. Dans l’espace de travail, cette prise reste en attente de revue ; elle sert ici d’exemple concret de sortie, pas de film final validé.

##### Images et médias

[Le clip, sa consigne et son état Ready for review dans la même vue.](<https://zaki.somehow.engineer/content/assets/flow-studio/case-study/video-details.webp>)

Nœud vidéo sélectionné, lecteur arrêté à une seconde et consigne d’animation dans le panneau de détail.

Crédit: Flow Studio · projet existant Coco Romy. Capture du 9 novembre 2026.

[Extrait existant de Coco Romy, scène 13, seconde prise. Lecture à la demande.](<https://zaki.somehow.engineer/content/assets/flow-studio/case-study/coco-romy-scene13.mp4>)

Extrait généré montrant Coco et Romy sur un scooter dans une rue de la Riviera à l’aube.

Crédit: Généré avec Google Flow, 3 novembre 2026. Copie optimisée pour le portfolio ; contenu et son conservés.

#### Récupérer un résultat sans le régénérer

La génération et le téléchargement sont deux étapes séparées. Si la récupération du fichier échoue après la génération, le système garde les informations nécessaires pour retrouver l’asset existant avant de soumettre une nouvelle demande payante.

Cette partie est moins visible dans le graphe, mais elle compte dans un outil que l’on veut pouvoir reprendre après une interruption. Les états d’opération, les identifiants et les liens entre versions participent au même objectif : garder la trace de ce qui a réellement eu lieu.

#### Mon travail et les limites du projet

Mon travail est l’espace de production, le stockage, la revue et l’automatisation autour de Google Flow. Les modèles de génération et le service Google Flow sont des outils existants. Certaines combinaisons de génération restent partielles ou dépendent de l’interface et de l’état de connexion du compte.

Les captures ont été prises dans l’application le 9 novembre 2026, à partir d’une production existante. Elles illustrent le fonctionnement du projet sans annoncer un gain de temps mesuré ni une fiabilité universelle.


### Screen to Calendar

> Screen to Calendar est né d’une petite tâche répétitive : pourquoi ressaisir un événement dont les informations sont déjà à l’écran ? J’ai développé un outil dans la barre de menus de macOS qui exploite un texte copié ou une capture d’écran, extrait les informations avec un modèle local et aide à créer un événement dans Apple Calendar.

Application personnelle · Swift / macOS

Rubrique: Outils & recherche

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#built/3>)

[English](<https://zaki.somehow.engineer/read/en/screen-to-calendar.md>)

#### Le projet

Screen to Calendar est né d’une petite tâche répétitive : pourquoi ressaisir un événement dont les informations sont déjà à l’écran ? J’ai développé un outil dans la barre de menus de macOS qui exploite un texte copié ou une capture d’écran, extrait les informations avec un modèle local et aide à créer un événement dans Apple Calendar.

Une étape de relecture permet de vérifier et de modifier le titre, la date, l’heure et le lieu. Ce petit projet d’automatisation personnelle représente bien ma façon de travailler : repérer une friction, construire un outil pour la réduire et l’intégrer à un usage existant.

#### Liens

- [View on GitHub](<https://github.com/zakich4n/screen-to-calendar>)


### Outpainting vidéo

> Élargir le cadre d’une vidéo en générant les zones manquantes, avec un objectif de cohérence d’une image à l’autre.

Projet personnel · Outil expérimental

Rubrique: Outils & recherche

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#built/4>)

[English](<https://zaki.somehow.engineer/read/en/video-outpainting.md>)

#### En bref

| Indicateur | Valeur |
| --- | --- |
| Mon rôle | Prototype et intégration |
| Objectif | Adapter le format d’une vidéo |
| Difficulté | Cohérence dans le temps |
| État | Expérimentation |

#### Changer le format en gardant la scène

Le but était de pouvoir adapter une vidéo à un autre cadre en générant ce qui manque autour de l’image. Cela peut servir à élargir une vidéo 4:3 vers du 16:9, ou à préparer une composition verticale à partir d’un plan horizontal.

Mon prototype s’est d’abord concentré sur le second cas : placer la vidéo horizontale au centre d’un cadre vertical et générer les bandes au-dessus et en dessous. L’exemple 4:3 vers 16:9 ci-dessous explique le principe général ; il ne représente pas un résultat mesuré de mon code.

##### Images et médias

[À hauteur égale, l’image source occupe 75 % du cadre 16:9 et chaque bande ajoutée 12,5 %. Ces proportions décrivent la géométrie, pas la qualité d’un modèle.](<https://zaki.somehow.engineer/content/assets/outpainting/case-study/format-concept.fr.svg>)

Schéma d’un cadre source 4:3 conservé au centre d’un cadre 16:9, avec deux nouvelles bandes latérales.

Crédit: Schéma explicatif créé pour ce portfolio. Aucun pixel généré présenté comme résultat.

#### À quoi ressemble l’outpainting vidéo ?

Les visuels de Seen-to-Scene permettent de voir le principe sur de vraies séquences : le contenu observé reste reconnaissable tandis que le champ visible est prolongé. Les exemples ci-dessous viennent du projet de recherche d’InSeok Jeon et de ses coauteurs.

Ils illustrent le résultat que je cherchais à approcher, pas les sorties de mon prototype. Je n’ai pas implémenté ni entraîné Seen-to-Scene ; mon projet explore sa propre orchestration de diffusion et de propagation guidée par le mouvement.

##### Images et médias

[Illustration externe : séquences et résultats d’outpainting publiés par les auteurs de Seen-to-Scene. Ce ne sont pas mes résultats.](<https://zaki.somehow.engineer/content/assets/outpainting/case-study/seen-to-scene-teaser.webp>)

Montage Seen-to-Scene montrant des vidéos de chiens et de motocross, avec les zones source et les résultats élargis.

Crédit: [© 2026 InSeok Jeon et coauteurs · Seen-to-Scene · dépôt sous licence MIT.](<https://github.com/InSeokJeon/Seen_to_Scene/tree/2a9dfc9888e44c7fd00b08af41ef967ae46b6323>)

[Démonstration externe issue du GIF des auteurs, convertie en aperçu à lancer manuellement. Les 25 images sont présentées à 10 images par seconde.](<https://zaki.somehow.engineer/content/assets/outpainting/case-study/seen-to-scene-demo.mp4>)

Grille de huit exemples animés d’outpainting publiée par Seen-to-Scene.

Crédit: [InSeok Jeon et coauteurs · Seen-to-Scene, 2026. Source et méthode des auteurs.](<https://github.com/InSeokJeon/Seen_to_Scene>)

#### Le vrai problème : faire tenir le décor dans le temps

Une seule image élargie peut être convaincante. Dans une vidéo, les textures, les objets et la lumière doivent aussi rester cohérents pendant que la caméra ou les sujets bougent. Générer chaque image séparément peut produire un décor qui change ou scintille.

Le pipeline utilise le mouvement estimé pour transporter l’image générée précédente et initialiser le remplissage suivant. Il calcule aussi un état de bruit latent propagé, mais cette version ne le transmet pas encore à l’appel d’inpainting. Cette partie du mécanisme de continuité prévu reste donc à terminer.

#### Assembler un pipeline que je peux inspecter

Le code sépare l’extraction des images, la préparation du canevas et du masque, le calcul du mouvement, la propagation, le remplissage et la reconstruction du clip. Il prévoit aussi une étape de réduction du scintillement et la remise en place de l’audio.

La génération s’appuie sur une intégration Diffusers d’inpainting. Un mode de remplissage déterministe permet de tester la plomberie du pipeline sans lancer le modèle. Les étapes sont configurables afin de pouvoir isoler un problème ou remplacer une implémentation.

Python · Diffusers · Optical flow · Latent propagation · SSIM / optional LPIPS

Le parcours d’un clip dans le prototype

1. **Préparer** — Extraire les images, créer le canevas et définir les zones à remplir.
2. **Propager et générer** — Estimer le mouvement, transporter l’état précédent et remplir les zones manquantes.
3. **Inspecter et assembler** — Collecter les diagnostics, appliquer le post-traitement et reconstruire la vidéo.

Synthèse du code relu pour cette entrée. Ce schéma décrit mon prototype, pas l’architecture de Seen-to-Scene.

#### Ce que j’ai testé, et ce qu’il reste à atteindre

Un court essai conservé contient trois comparaisons entre images successives : une SSIM moyenne de 0,9239 et une erreur temporelle moyenne après transport de 3,5450. Ces valeurs servent à inspecter ce petit essai. Elles ne mesurent pas une qualité visuelle de « 92 % » et ne constituent pas une comparaison contrôlée avec une autre méthode.

L’objectif final reste un outil d’adaptation de format que je pourrais évaluer sur plusieurs scènes, avec le cadre source et les zones générées clairement identifiés. Il me faut encore des sorties représentatives sur des scènes variées pour juger le résultat visuel.

| Valeur | Indicateur |
| --- | --- |
| 3 | Comparaisons dans le court essai |
| 0,9239 | SSIM moyenne · essai local |
| 3,5450 | Erreur temporelle moyenne · échelle du code |

> Les diagnostics proviennent d’un fichier de résultats existant, relu le 9 novembre 2026. Aucun entraînement ni nouvelle génération n’a été lancé. La configuration exacte de cet essai et une référence de comparaison ne sont pas établies.

#### Liens

- [Seen-to-Scene · visual examples & source](<https://github.com/InSeokJeon/Seen_to_Scene>)
- [Seen-to-Scene · MIT license](<https://github.com/InSeokJeon/Seen_to_Scene/blob/2a9dfc9888e44c7fd00b08af41ef967ae46b6323/LICENSE>)


### Thinking Partner

> Un espace de recherche qui garde les questions, les sources et les révisions reliées, même quand je change de direction.

Projet personnel · Recherche assistée par IA

Rubrique: Outils & recherche

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#built/5>)

[English](<https://zaki.somehow.engineer/read/en/thinking-partner.md>)

#### En bref

| Indicateur | Valeur |
| --- | --- |
| Mon rôle | Conception du workflow et développement |
| Espace de travail | Markdown / Obsidian |
| Parcours | Explorer · Vérifier · Écrire · Relire |
| État | Version 1 expérimentale |

#### Garder le raisonnement, pas seulement la réponse

Une longue conversation peut contenir une bonne question, une source, un désaccord et un changement d’avis. Retrouver ensuite ce qui les relie devient un autre problème. J’ai construit Thinking Partner pour donner une place à ce travail en dehors de la conversation.

L’idée est de garder une question ouverte assez longtemps pour vraiment l’explorer. Les différentes pistes restent visibles, les affirmations restent liées à leurs sources et les révisions laissent une trace. C’est un outil pour approfondir un sujet avec l’aide de l’IA, en gardant une place pour mon propre jugement.

#### Choisir une piste, puis y revenir

Une exploration commence par la question et une carte des directions possibles. Je peux en sélectionner plusieurs, commenter une branche, proposer une autre interprétation ou garder une partie du travail pour plus tard. Une vérification indépendante des angles oubliés est prévue pour compléter la première carte.

Ces choix sont enregistrés. Mettre en pause, réorienter la recherche ou passer à la rédaction conserve les sources déjà réunies et les pistes sans réponse. Une nouvelle direction archive le cycle précédent et signale que l’ancienne synthèse est dépassée, pour éviter de la prendre pour la conclusion actuelle.

#### Pouvoir examiner une affirmation

Le registre des affirmations distingue les faits, les interprétations, les hypothèses et les jugements de valeur. Chaque source peut être reliée à ce qu’elle soutient, avec un repère précis, les conditions d’accès et une vérification enregistrée. Si seul le résumé d’un article a été lu, cette limite reste indiquée : cela ne devient pas une lecture du texte complet.

Les premières contributions peuvent être figées avant que les agents échangent leurs positions. Les désaccords, concessions et révisions restent ensuite visibles. Si une affirmation ou ses sources changent, la vérification précédente devient caduque et doit être reprise.

De la question au texte

1. **Explorer** — Noter la question, choisir des branches et garder visibles les pistes ouvertes.
2. **Vérifier** — Relier les affirmations aux sources, examiner leur appui et consigner les changements.
3. **Écrire** — Réutiliser les éléments vérifiés à jour, puis relire le raisonnement et ses limites.

Le cycle de recherche prévu. Le code enregistre et contrôle l’état du travail ; les agents doivent toujours consulter et interpréter les sources.

#### Écrire en gardant le lien avec les sources

Les quatre parcours couvrent l’exploration, la vérification des faits, la rédaction et la relecture. Un brouillon peut reprendre mot pour mot des passages factuels issus d’affirmations vérifiées, sous forme de segments verrouillés. Changer leur sens demande une nouvelle vérification. Les versions des textes et des rapports sont conservées avec la recherche.

Ce contrôle protège un passage précis, pas toutes les implications du texte qui l’entoure. La relecture distingue donc l’argumentation, les faits, le style, le public visé et le meilleur contre-argument. Les profils disponibles servent à choisir les regards utiles à la question, sans tous les lancer systématiquement.

#### Une implémentation que je peux examiner

Je suis resté proche des outils que j’utilise déjà : des scripts Node sans dépendances, un état structuré en JSON et des notes Markdown reliées. Les vues Home, Map, Claims, Evidence, Debate, Sources et Synthesis permettent de passer de la vue d’ensemble aux détails dans Obsidian, sans plugin spécifique.

La version 1 sauvegarde l’état d’un sujet existant avant d’ajouter ses nouveaux champs. Les requêtes répétées sont protégées contre les doublons et les modifications manuelles des notes générées sont signalées pour être réconciliées. Codex fournit les modèles et l’orchestration des agents ; Obsidian sert à consulter les notes. Mon travail porte sur le parcours, la persistance et les contrôles autour de ces outils.

Dans la vue graphe d’Obsidian, chaque point représente une note et chaque ligne un lien entre deux notes. Une petite carte rend ces relations faciles à suivre. Quand le coffre de notes grandit, le graphe peut faire apparaître des groupes de sujets et des passerelles entre eux. Le nombre de liens ne dit cependant pas grand-chose de la solidité des sources.

Le petit graphe présenté ici est un exemple externe d’Obsidian. L’image plus dense de MIT-IBM Paper Graph illustre un réseau plus large de relations entre travaux de recherche. Aucune des deux ne montre l’interface ou les sorties de Thinking Partner. Le prototype organise des explorations et leurs preuves ; il ne construit pas de graphe de connaissances global.

Node.js · Markdown · État JSON · Codex · Obsidian

##### Images et médias

[Le principe de base : chaque cercle représente une note et chaque ligne un lien interne. Un petit graphe rend les relations faciles à suivre.](<https://zaki.somehow.engineer/content/assets/thinking-partner/case-study/obsidian-basic.webp>)

Petit graphe Obsidian où des notes nommées sont reliées par des liens visibles.

Crédit: [XDA · Exemple externe de la vue graphe d’Obsidian.](<https://static0.xdaimages.com/wordpress/wp-content/uploads/wm/2024/07/how-to-use-obsidian-graph-view-1.jpg?q=49&fit=crop&w=825&dpr=2>)

[Un réseau de recherche plus vaste : articles, citations, auteurs et affiliations forment une carte dense. Il illustre la complexité possible de connaissances reliées ; ce n’est ni un graphe Obsidian ni un résultat de Thinking Partner.](<https://zaki.somehow.engineer/content/assets/thinking-partner/case-study/paper-graph-complex.webp>)

Interface Paper Graph du MIT-IBM Watson AI Lab, avec un réseau dense d’articles, citations, auteurs et affiliations.

Crédit: [MIT-IBM Watson AI Lab · Interface Paper Graph, partagée sur le forum de la communauté Obsidian.](<https://forum.obsidian.md/uploads/default/8f4c01b19341de85a2e849750bf76c0b33f87452>)

#### Ce qui est testé et ce qui reste à évaluer

Le compte rendu de la version 1 indique 31 tests déterministes réussis, sans échec. Ils portent sur le stockage et le déroulement du travail : pause et reprise, résultats périmés, accès aux sources, sauvegardes et protection des notes générées. Une démonstration synthétique distincte produit les notes reliées et l’historique de session.

Ces tests vérifient le fonctionnement des mécanismes. Ils ne prouvent ni la justesse de la recherche, ni l’indépendance réelle des points de vue, ni l’utilité du texte final. Un essai en conditions réelles sur deux sujets reste la prochaine étape d’évaluation. Je n’ai pas de gain de précision, de temps économisé ou de total fiable d’heures de développement à annoncer.

| Valeur | Indicateur |
| --- | --- |
| 31 | Tests réussis · compte rendu v1 |
| 0 | Échec · même exécution |

> Ces chiffres proviennent du compte rendu existant de la version 1 ; les tests n’ont pas été relancés pour le portfolio. Les démonstrations synthétiques ne sont pas des résultats de recherche. L’indépendance des contextes et la fidélité aux sources dépendent toujours de l’exécution du parcours.


### Pipeline de distribution vidéo

> D’une vidéo source aux clips prêts à être relus dans TikTok : un workflow qui conserve sa progression, suit les livraisons et me laisse la main sur la publication.

Projet personnel · Automatisation de workflow

Rubrique: Outils & recherche

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#built/6>)

[English](<https://zaki.somehow.engineer/read/en/video-distribution-pipeline.md>)

#### En bref

| Indicateur | Valeur |
| --- | --- |
| Mon rôle | Orchestration persistante et intégration |
| Technologies | Python · SQLite · FFmpeg |
| Commandes | Telegram et terminal |
| Traitement vidéo | 1 téléchargement + 1 encodage à la fois |
| Livraison | Boîte de réception TikTok par compte |
| Publication finale | Vérification et publication manuelles |

#### Automatiser les étapes entre la vidéo et sa publication

Préparer des clips, c’est enchaîner beaucoup de petites opérations : télécharger la source, découper les parties, produire une version verticale, choisir un compte, transférer les fichiers puis vérifier leur arrivée. À la main, il faut aussi se souvenir de ce qui a déjà été fait et de ce qui attend encore.

J’ai construit une couche d’orchestration persistante autour d’un outil de rendu vertical existant. Elle prend en charge la préparation et la livraison, avec une file que je peux consulter et piloter depuis Telegram. Les clips arrivent dans la boîte de réception TikTok pour être relus avant leur publication.

Une source, six étapes

1. **Ajouter une source** — Envoyer une URL YouTube dans Telegram ou l’ajouter au fichier d’entrée. L’identifiant vidéo évite les doublons dans la file.
2. **Télécharger et analyser** — Conserver la vidéo source, déterminer ses parties et lui attribuer un code court pour les commandes.
3. **Préparer les clips** — Utiliser le rendu vertical existant, qui tient compte des scènes. Garder les fichiers terminés pour la suite du traitement.
4. **Affecter et transférer** — Choisir un compte, y conserver toutes les parties et initialiser les envois dans leur ordre d’origine.
5. **Confirmer la livraison** — Suivre l’identifiant d’envoi jusqu’à la réception confirmée ou à l’échec. Gérer l’alerte Telegram différée séparément.
6. **Relire et publier** — Ouvrir TikTok, vérifier le clip et décider de sa publication. Cette décision reste manuelle.

Ce parcours décrit le fonctionnement implémenté. Aucun nouvel envoi réel n’a été effectué pour cette fiche.

#### Garder les bonnes vidéos sur le bon compte

Avec plusieurs comptes, l’ordonnancement ne se résume plus à prendre le prochain fichier d’un dossier. Le pipeline affecte les sources selon le travail restant, puis donne la priorité au rendu selon les clips déjà prêts pour chaque compte. Un téléchargement et un encodage s’exécutent à la fois ; chaque compte dispose de ses propres traitements d’envoi et de suivi.

Toutes les parties d’une même source restent liées au même compte. La suivante ne peut commencer son envoi que lorsque les précédentes ont atteint l’état de livraison requis. Si la première échoue ou reste dans un état incertain, la suite attend plutôt que de créer un trou dans la série.

Les comptes sont associés à des identifiants stables plutôt qu’à leur nom d’affichage. Une pause est conservée après redémarrage. Désactiver un compte bloque les nouveaux travaux, tout en maintenant les vérifications des envois déjà acceptés.

#### Reprendre sans deviner ce qui s’est passé

Le cas délicat, c’est une requête qui a peut-être réussi côté serveur juste avant l’arrêt du programme. La relancer automatiquement pourrait envoyer le même clip deux fois. J’ai donc séparé l’acceptation de l’envoi, le transfert des données, la réception dans TikTok, l’échec et la publication, au lieu de tout ranger dans un seul état « terminé ».

SQLite conserve la file, le découpage des clips, les tentatives d’envoi, les pauses des comptes et les notifications en attente. L’identifiant d’initialisation de l’envoi est enregistré avant le transfert. Après un redémarrage, le suivi reprend pour les identifiants connus ; une acceptation incertaine est mise en attente de vérification humaine.

Les téléchargements et rendus terminés sont conservés. Des transactions réservent les tâches, et un verrou empêche deux instances du service de traiter la même file. La migration conserve aussi l’ancien état et bloque les envois historiques ambigus pour examen.

> Pour les notifications, la garantie est différente : la livraison Telegram se fait « au moins une fois ». Un arrêt après l’acceptation d’une alerte par Telegram mais avant son enregistrement local peut encore provoquer un doublon.

#### Garder la main depuis Telegram

Telegram sert à la fois de point d’entrée et de télécommande. Après avoir associé une conversation privée au propriétaire, je peux ajouter une source, consulter la file et les comptes, mettre le traitement en pause, le reprendre, affecter une source dont l’envoi n’a pas commencé ou relancer un échec confirmé. Les codes courts évitent de recopier de longs identifiants.

Les alertes ont leur propre file : un problème de notification ne demande pas de refaire le transfert vidéo. Une alerte ne peut partir qu’après confirmation de la réception dans TikTok, et au moins 15 minutes après le transfert. Une pause laisse l’opération en cours se terminer ; les vérifications continuent pour les envois déjà acceptés.

> Par défaut, la règle locale autorise une initialisation d’envoi, réussie ou incertaine, par compte sur 24 heures glissantes. C’est un réglage prudent de planification, pas une mesure des quotas TikTok ni du débit réel.

#### Mon travail et les outils utilisés

Mon travail porte sur l’orchestration Python : état persistant, affectation des comptes, ordre des tâches, reprise après incident et commandes de contrôle. J’ai développé ce projet avec des agents de code IA, comme dans mon workflow habituel.

Le projet réutilise un outil de rendu vertical existant, qui tient compte des scènes. Il s’appuie sur FFmpeg/FFprobe pour le traitement vidéo, TikTok pour l’envoi et le suivi de réception, et Telegram pour les commandes et les alertes. Ce que je présente ici, c’est l’intégration et la conception de la file, sans m’attribuer l’ensemble des composants de traitement vidéo.

Python · SQLite · FFmpeg / FFprobe · API TikTok · Bot Telegram · File persistante

#### Ce qui est établi et ce qui reste à vérifier en conditions réelles

Le dépôt comprend des tests avec des bases SQLite temporaires et des appels réseau simulés : identité des comptes, affectation, limites séparées par compte, reprise après redémarrage, appairage, commandes rejouées, migration et nouvelles tentatives de notification. Ils n’ont pas été relancés pour cette revue du portfolio et ne prouvent pas, à eux seuls, la livraison d’un vrai clip.

Cette fiche ne s’appuie pas sur un déploiement complet vérifié, un gain de temps mesuré ou des chiffres de croissance d’audience. Le service documenté tourne sur macOS et s’arrête lorsque la machine est en veille ou éteinte. Déplacer un espace de travail existant vers une autre machine demande aussi d’adapter les chemins des médias enregistrés.

Ce projet montre la partie de l’automatisation qui m’intéresse le plus : déterminer ce que le système peut répéter, ce qu’il doit mémoriser et ce qui demande une décision humaine. Ici, l’objectif est de garder un workflow compréhensible même lorsqu’une étape échoue.

> Le temps de développement et le volume total de vidéos ne sont pas documentés. La concurrence, le délai d’alerte et la fenêtre de planification indiqués plus haut sont des réglages, pas des performances mesurées.


### Brainrot or Not

> Une interface expérimentale autour de TRIBE v2 de Meta : visualisations, scores personnalisés et une question sur leur utilité possible au montage.

Projet personnel · Expérience IA et médias

Rubrique: Outils & recherche

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#built/7>)

[English](<https://zaki.somehow.engineer/read/en/brainrot-or-not.md>)

#### En bref

| Indicateur | Valeur |
| --- | --- |
| Mon rôle | Interface et intégration du modèle |
| Modèle de recherche | Meta · TRIBE v2 |
| Entrées | Vidéo · Texte · Image |
| État | Prototype exploratoire |

#### Une question venue du montage

Est-ce qu’un modèle pourrait m’aider à regarder une vidéo autrement ? J’avais envie de repérer des passages qui mériteraient peut-être un autre montage, puis de comparer plusieurs versions. Brainrot or Not est né de cette question et de mon envie de tester moi-même de nouvelles recherches.

J’ai construit une interface expérimentale autour d’un modèle préentraîné de réponse cérébrale, avec plusieurs entrées médias, des visualisations et mes propres scores de synthèse. Le nom est un peu provocateur ; la question derrière reste de savoir ce que je peux réellement tirer de ces résultats.

#### La recherche sur laquelle je m’appuie

TRIBE v2 est le modèle multimodal de Meta qui prédit des réponses cérébrales en IRMf à partir de vidéos, de sons et de langage. Meta décrit un entraînement sur des enregistrements de plus de 700 volontaires. Les outils d’inférence publiés prédisent les réponses d’un sujet moyen sur une surface corticale ; ils ne mesurent pas la personne devant mon interface.

Cette recherche fournit le modèle préentraîné. Mon travail porte sur l’application autour : préparer les entrées, appeler le modèle et explorer la présentation de ses sorties. L’animation ci-dessous explique les travaux de Meta ; ce n’est pas une capture de mon prototype.

##### Images et médias

[Illustration de recherche externe : Meta explique le lien entre les stimuli médias et les réponses cérébrales prédites. Ce n’est pas une sortie de Brainrot or Not.](<https://zaki.somehow.engineer/content/assets/brainrot/case-study/meta-tribe-explainer.mp4>)

Animation de Meta reliant des contenus médias à une activité prédite sur une surface cérébrale.

Crédit: [Meta AI · Annonce de TRIBE v2, 26 mars 2026. Vidéo redimensionnée pour ce portfolio ; audio d’origine retiré.](<https://ai.meta.com/blog/tribe-v2-brain-predictive-foundation-model/>)

#### Rendre le modèle explorable

L’interface Gradio propose trois entrées : vidéo, texte et image. Le code de préparation découpe les vidéos et peut transformer une image fixe en représentation vidéo pour construire les événements attendus par le modèle.

L’application charge facebook/tribev2, construit ces événements puis appelle son interface de prédiction. Les outils de Nilearn permettent ensuite de représenter les tableaux obtenus sur des surfaces cérébrales et des atlas. J’ai séparé ces étapes pour pouvoir examiner la préparation des médias, la prédiction et l’interprétation.

Python · Gradio · TRIBE v2 · Nilearn · Préparation des médias

Du média à une visualisation exploratoire

1. **Préparer** — Recevoir une vidéo, un texte ou une image et construire les événements d’entrée.
2. **Prédire** — Appeler le modèle de recherche préentraîné pour obtenir les réponses cérébrales prédites.
3. **Explorer** — Afficher les cartes et calculer des résumés propres à l’application.

L’implémentation distingue la prédiction du modèle de mes choix de visualisation et de calcul des scores.

#### Résumer une sortie difficile à lire

Une carte cérébrale laisse beaucoup de place à l’interprétation. J’ai essayé quatre groupes de régions choisis manuellement, nommés attention, émotion, mémoire et récompense, pour faciliter l’exploration des sorties dans l’interface.

Pour chaque groupe, le calcul combine 40 % de l’activation absolue moyenne et 60 % du pic d’activation absolue, puis normalise le résultat par rapport aux statistiques du cerveau entier et le limite à une échelle de 0 à 100. Un score global rassemble les quatre groupes avec des poids respectifs de 30 %, 30 %, 20 % et 20 %.

| Valeur | Indicateur |
| --- | --- |
| 3 | Types d’entrée dans l’interface |
| 4 | Groupes régionaux personnalisés |
| 0–100 | Échelle d’affichage de l’application |

> Ces noms, poids et échelles sont mes choix d’exploration. Un score de 80 ne signifie pas 80 % d’attention, une probabilité d’apprécier le contenu ou une classification scientifique de « brainrot ».

#### Ce qui est construit et ce qui reste ouvert

Le code examiné contient la préparation des médias, l’intégration du modèle préentraîné, les outils de visualisation et le calcul des scores. Il me donne une base concrète pour étudier l’idée au-delà d’un service imaginé.

Je n’ai pas validé ces scores personnalisés comme mesures de l’attention, du plaisir ou de la rétention. Ils résument une activité prédite ; ce ne sont pas des mesures prises chez des spectateurs qui regardent l’extrait. Je n’ai ni mené d’étude auprès de spectateurs ni entraîné un nouveau modèle de neurosciences pour ce projet.

#### La prochaine question : est-ce utile au montage ?

La suite utile serait de comparer les sorties du modèle sur plusieurs versions contrôlées d’un même extrait, puis de vérifier si les différences correspondent à des observations indépendantes auprès de spectateurs. Cela aiderait à distinguer une visualisation intéressante d’un outil sur lequel appuyer une décision de montage.

Pour le moment, le projet relie deux choses que j’aime : explorer un sujet technique que je connais peu et chercher ce qu’il pourrait apporter à un travail créatif. La question encore ouverte fait partie de l’expérience.


### Outil de prospection

> De 1 907 profils LinkedIn trouvés à un corpus de recherche de 1 449 profils, avec les sources, des signaux d’activité et un espace de brouillons qui conserve mes modifications.

Projet personnel · Recherche et prospection · Octobre–novembre 2026

Rubrique: Outils & recherche

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#built/8>)

[English](<https://zaki.somehow.engineer/read/en/prospecting-workspace.md>)

#### En bref

| Indicateur | Valeur |
| --- | --- |
| Mon rôle | Workflow de recherche et développement |
| Périmètre initial | Réseau des Hauts-de-France |
| Stack principale | TypeScript · Python · Interface locale |
| Période | Octobre–novembre 2026 |

#### Rendre la recherche de prospects utilisable

En préparant mon activité freelance, la prospection est rapidement devenue un problème d’organisation. Profils, entreprises, coordonnées possibles, sources et brouillons de messages devaient rester reliés. J’ai construit un espace de travail qui associe recherche assistée dans le navigateur et file locale de brouillons.

Neuf recherches régionales par mots-clés ont donné 1 907 URL de profil distinctes. La sélection conservée a ajouté 1 444 profils déclarant un rôle pertinent de direction, d’entrepreneuriat ou de management. Avec les cinq profils déjà présents, le corpus atteint 1 449 personnes. Le compteur actuel d’Airtable confirme ce total ; trois lignes vides sont exclues.

| Valeur | Indicateur |
| --- | --- |
| 1 907 | Profils distincts trouvés |
| 1 449 | Profils dans le corpus de recherche |
| 9 | Recherches régionales par mots-clés |
| 174 | Fiches dans l’espace Draft desk séparé |

##### Images et médias

[La collecte, la sélection et le corpus conservé sont des compteurs distincts. La dernière barre inclut cinq profils préexistants ; 463 profils collectés n’ont pas été importés. Ce sont des fiches de recherche, pas des clients.](<https://zaki.somehow.engineer/content/assets/prospecting/case-study/research-corpus.fr.png>)

Chiffres de recherche : 1 907 profils trouvés, 1 444 ajoutés après sélection et 1 449 dans le corpus avec les cinq profils préexistants.

[SVG](<https://zaki.somehow.engineer/content/assets/prospecting/case-study/research-corpus.fr.svg>)

Crédit: Graphique créé à partir des recherches et imports conservés ; chiffres agrégés uniquement.

#### Garder les sources avec la personne

Un outil TypeScript et Node fonctionne avec une session BrowserOS authentifiée. Il extrait des informations structurées de la page observée et conserve l’URL du profil, le rôle déclaré, la localisation, le contexte et la profondeur de recherche. Une interface ambiguë ou non prise en charge produit une limite explicite.

Airtable conserve les fiches de recherche. L’examen d’une entreprise, une observation de site et l’interprétation d’un agent ont des champs distincts. Cela m’aide à séparer ce que j’ai observé d’une piste de conversation. Un nom similaire ou un titre de fondateur ne prouve pas à lui seul l’identité d’une entreprise, le pouvoir de décision ou un besoin auquel je pourrais répondre.

TypeScript / Node · BrowserOS · Airtable · Python · HTML / CSS / JavaScript

Une recherche qui reste reliée à ses sources

1. **Découvrir** — Recueillir les informations déclarées du profil et conserver leur source.
2. **Qualifier** — Examiner le rôle, le contexte de l’entreprise et la profondeur des éléments disponibles.
3. **Organiser** — Distinguer les signaux d’activité, les questions ouvertes et la prochaine étape.
4. **Préparer** — Utiliser ce contexte pour un brouillon que je peux relire et modifier.

Workflow de recherche et de préparation. Draft desk utilise des imports explicites ; il ne se synchronise pas automatiquement avec Airtable.

#### Laisser les inconnues visibles

La carte d’activité utilise des expressions explicites en français et en anglais dans les intitulés professionnels conservés, avec quelques ajustements appuyés sur des notes d’entreprise. Dans l’analyse du 27 octobre, 522 profils ont un signal d’activité et 927 n’ont pas assez d’éléments pour en recevoir un.

Cette couverture de 36 % aide à choisir les prochaines recherches. Ce n’est ni un indice de confiance ni un classement sectoriel vérifié. Le même état contient 33 revues d’agent, 16 notes d’examen d’entreprise et 13 sites enregistrés. Ces éléments correspondent à des profondeurs différentes : une revue d’agent peut porter sur une carte de résultat, sans lecture complète du profil.

| Valeur | Indicateur |
| --- | --- |
| 33 | Profils avec une revue d’agent |
| 16 | Profils avec une note d’examen d’entreprise |
| 13 | Profils avec un site enregistré |

##### Images et médias

[Une carte volontairement incomplète : une catégorie sans appui reste inconnue. Les chiffres de classement viennent de l’analyse du 27 octobre ; le total de 1 449 profils et les compteurs de couverture ont été vérifiés en lecture seule dans Airtable le 10 novembre.](<https://zaki.somehow.engineer/content/assets/prospecting/case-study/classification-coverage.fr.png>)

Sur 1 449 profils, 522 ont un signal d’activité, soit 36,0 %, et 927 manquent d’éléments suffisants, soit 64,0 %.

[SVG](<https://zaki.somehow.engineer/content/assets/prospecting/case-study/classification-coverage.fr.svg>)

Crédit: Graphique créé à partir des recherches et imports conservés ; chiffres agrégés uniquement.

#### Choisir une question utile à partir de la carte

Logiciel, services, création et métiers opérationnels peuvent conduire à des conversations différentes. La carte me permettait de former de petits groupes à étudier, puis de retrouver l’entreprise réelle, son offre et le contexte du profil avant de choisir une approche.

Les étiquettes se recoupent. Une personne qui développe un logiciel pour des commerçants peut avoir un signal logiciel et un signal commerce. Un terme financier peut décrire une fonction ou un marché client. Le graphique compte des personnes avec des indices, pas des entreprises distinctes ou une demande confirmée.

##### Images et médias

[Six catégories sur treize dans l’analyse conservée. Les comptes peuvent se recouper et ne forment pas une répartition à additionner. Ils aident à choisir la prochaine question, pas à déduire les besoins du prospect.](<https://zaki.somehow.engineer/content/assets/prospecting/case-study/activity-signals.fr.png>)

Six signaux d’activité non exclusifs : logiciel IT data IA 236, conseil et services 89, marketing médias création 75, immobilier construction 60, santé bien-être 42, RH recrutement formation 39.

[SVG](<https://zaki.somehow.engineer/content/assets/prospecting/case-study/activity-signals.fr.svg>)

Crédit: Graphique créé à partir des recherches et imports conservés ; chiffres agrégés uniquement.

#### Une personne, un brouillon partagé

Draft desk transforme les recherches de contact sélectionnées en file locale de revue. L’état local actuel contient 174 fiches de profil et 677 coordonnées candidates. Cet espace est plus petit que le corpus complet, et l’association de ces coordonnées aux personnes reste à vérifier.

Les fiches sont regroupées par URL de profil normalisée. Une personne a un objet et un message partagés, plusieurs moyens de contact possibles et son propre historique. Le nom seul ne fusionne pas deux personnes, et une boîte d’entreprise commune ne transforme pas deux profils en un seul. Je peux examiner les sources, retravailler le texte et choisir un canal.

Du brouillon au suivi manuel

1. **Relire et modifier** — Vérifier l’association du contact et adapter l’objet et le message.
2. **Envoyer manuellement** — Copier le texte relu dans Gmail et décider de l’envoi.
3. **Noter le canal utilisé** — Marquer la coordonnée utilisée, puis terminer ou rouvrir la fiche.

Contacted et Done sont des déclarations manuelles dans l’outil, pas des accusés de livraison du fournisseur email.

##### Images et médias

[L’interface de revue existante : contexte, moyens de contact candidats et brouillon partagé. Cette capture utilise trois profils fictifs et des textes de démonstration, pas la base réelle de prospects.](<https://zaki.somehow.engineer/content/assets/prospecting/case-study/draft-desk-context.webp>)

Vue de Draft desk avec le profil fictif Alex Démo, le contexte de son entreprise et deux adresses email candidates.

Crédit: Interface existante de Draft desk, affichée avec un jeu de données local fictif en lecture seule. Personnes, entreprises, coordonnées et brouillons présentés sont inventés.

#### Continuer pendant qu’un agent prépare la suite

Un agent peut exporter les fiches disponibles et préparer un lot pendant que je continue à modifier un message. Les nouveaux brouillons s’ajoutent à la file : l’exemple documenté passe de 3 / 10 à 3 / 15 sans changer la position ou le texte en cours. Les révisions, les modifications humaines et les statuts terminés empêchent un remplacement silencieux.

Un lot est validé dans son ensemble. Réutiliser le même identifiant avec le même contenu est sans effet supplémentaire ; une réutilisation contradictoire ou une révision dépassée est rejetée. Le stockage local utilise des écritures atomiques et des verrous, avec sauvegarde de migration et récupération des modifications dans le navigateur en cas d’échec d’enregistrement.

L’objet et le corps ont un délai de sauvegarde automatique de 600 ms, et l’interface vérifie l’arrivée de nouveaux brouillons toutes les trois secondes. Ce sont des réglages d’interface. Le but technique est de pouvoir relire un message sans le perdre quand les cinq suivants arrivent.

##### Images et médias

[L’éditeur garde la modification et la décision finale visibles. Affichage synthétique en lecture seule de l’interface existante ; cette capture ne montre ni un message envoyé ni un test de persistance du serveur.](<https://zaki.somehow.engineer/content/assets/prospecting/case-study/draft-desk-composer.webp>)

Éditeur de Draft desk affichant un objet et un message explicitement fictifs, le statut de sauvegarde locale et les commandes de suivi manuel.

Crédit: Interface existante de Draft desk, affichée avec un jeu de données local fictif en lecture seule. Personnes, entreprises, coordonnées et brouillons présentés sont inventés.

#### Ce que le projet m’apporte

La validation conservée de Draft desk comprend 38 vérifications Python et 59 vérifications JavaScript/TypeScript, avec des scénarios d’interface fictifs pour la continuité de la file, les modifications, la reprise et le suivi par coordonnée. Ces chiffres décrivent le compte rendu existant, pas une nouvelle exécution complète pour ce portfolio.

Le résultat est un espace auquel je peux revenir : les recherches restent examinables, les brouillons modifiables et chaque personne garde son contexte. Ces éléments ne permettent pas d’établir un taux de réponse, des clients acquis ou un temps économisé. Je peux en revanche montrer le workflow et les décisions qui le rendent utilisable.


### Recherche d’emploi à l’étranger

> 3 494 annonces dans cinq pays, ramenées à 178 annonces retenues. Une recherche personnelle devenue un workflow de données réutilisable.

Projet personnel · Recherche et filtrage · Septembre 2026

Rubrique: Outils & recherche

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#built/25>)

[English](<https://zaki.somehow.engineer/read/en/job-search-abroad.md>)

#### En bref

| Indicateur | Valeur |
| --- | --- |
| Mon rôle | Workflow, filtres et revue |
| Périmètre | Cinq pays d’Asie |
| Outils | JavaScript · CSV · Apps Script |
| Période | Septembre 2026 |

#### Donner une forme utile à une recherche vaste

Pour chercher un emploi à l’étranger, reconnaître un intitulé ne suffit pas. Un poste dans la data peut cacher une langue de travail obligatoire, des responsabilités senior ou un minimum d’expérience qui l’écarte. Je voulais comparer les exigences réelles à mon profil sans tout reprendre depuis le début à chaque annonce.

J’ai travaillé à partir d’exports LinkedIn collectés en Chine, au Japon, en Corée du Sud, en Thaïlande et au Vietnam. Les fichiers conservés contiennent 3 494 identifiants d’annonce distincts. Le filtrage et la revue aboutissent à 178 annonces : 75 prioritaires et 103 en seconde sélection. Cela représente 5,1 % des annonces collectées, pas un taux d’entretien ou d’embauche.

| Valeur | Indicateur |
| --- | --- |
| 3 494 | Annonces sources distinctes |
| 5 | Pays explorés |
| 178 | Annonces dans les listes finales |
| 5,1 % | Part retenue par annonce |

#### Vérifier ce qui a réellement été collecté

J’ai conservé les exports d’origine à part des sélections intermédiaires, des rejets et des listes finales. Les identifiants permettent de retrouver la source d’une décision et d’éviter de compter une nouvelle revue comme une nouvelle offre collectée.

L’archive Chine montre bien l’intérêt de cette séparation. Elle contient les mêmes 981 identifiants que l’export principal, mais préserve 913 descriptions absentes de celui-ci. Le rapprochement par identifiant récupère ces textes sans ajouter d’annonce. Sur les cinq pays, 3 301 enregistrements disposent d’une description conservée et 193 en sont encore dépourvus.

##### Images et médias

[Volume et couverture du jeu de données conservé. Les descriptions de l’archive Chine sont rapprochées par identifiant. Un texte présent peut rester incomplet ; ces échantillons ne mesurent pas le marché de l’emploi de chaque pays.](<https://zaki.somehow.engineer/content/assets/job-search/case-study/dataset-coverage.fr.png>)

Répartition des annonces : Chine 981, Japon 1 000, Corée du Sud 350, Thaïlande 569 et Vietnam 594, avec au total 3 301 descriptions disponibles et 193 manquantes.

[SVG](<https://zaki.somehow.engineer/content/assets/job-search/case-study/dataset-coverage.fr.svg>)

Crédit: Graphique créé à partir de mes exports et revues conservés de septembre 2026.

#### Filtrer selon un profil, pas selon un intitulé

La recherche s’appuyait sur un diplôme d’ingénieur, de l’expérience en Python et JavaScript, un anglais C1 et un profil junior évalué prudemment. J’étais ouvert aux métiers proches et à l’apprentissage d’une nouvelle stack, tout en devant comprendre si l’employeur pouvait accompagner un recrutement international.

Le workflow séparait trois questions : est-ce que je remplis les exigences écrites, est-ce que mon profil est crédible pour le travail, et est-ce que le recrutement est envisageable en pratique ? La langue, l’expérience obligatoire et les restrictions des programmes diplômés passaient avant une revue plus précise des compétences et du domaine. Une information absente restait inconnue.

JavaScript · Lecture de CSV · Filtres contextuels · Notes de justification · Google Apps Script

Des annonces collectées à une liste de candidatures

1. **Collecter et conserver** — Garder les champs et identifiants d’origine ; distinguer les sources des fichiers dérivés.
2. **Lire et filtrer** — Nettoyer les marqueurs de collecte et interpréter les exigences de langue, d’expérience et d’éligibilité.
3. **Relire et récupérer** — Examiner les pistes plausibles, les rejets suspects et les informations manquantes.
4. **Prioriser** — Conserver les raisons, les incertitudes et la prochaine action avec chaque opportunité.

Filtres JavaScript et tableaux de revue conservés, avec assistance de l’IA et relecture humaine. Il s’agit du workflow de sélection, pas de candidatures automatiques.

#### Chercher ce que le premier filtre a raté

Le plus intéressant était dans les exceptions. Des marqueurs de collecte pouvaient absorber le premier chiffre d’une plage d’expérience. « 0–2 ans » ressemblait alors à un minimum strict de deux ans. Le code conserve les plages, distingue les sections obligatoires des préférences et vérifie ce que le nombre décrit réellement.

Le vocabulaire demandait la même attention. Une annonce qui mentionne un collègue senior ne décrit pas forcément un poste senior. « Jeunes diplômés bienvenus » ne veut pas dire « réservé aux jeunes diplômés ». Au Vietnam, revenir sur cette distinction a récupéré trois annonces : une prioritaire et deux en seconde sélection. Le groupe à examiner est passé de 210 à 213 avant la revue détaillée.

##### Images et médias

[Une correction vérifiable dans les fichiers : trois annonces réintégrées dans la revue, toutes conservées dans les listes finales. Les 39 annonces retenues représentent 38 opportunités distinctes selon les clés conservées.](<https://zaki.somehow.engineer/content/assets/job-search/case-study/vietnam-recovery.fr.png>)

Étapes au Vietnam : 594 annonces collectées, 210 après la première sélection, 213 après correction du filtre diplômés et 39 annonces retenues au final.

[SVG](<https://zaki.somehow.engineer/content/assets/job-search/case-study/vietnam-recovery.fr.svg>)

Crédit: Graphique créé à partir de mes exports et revues conservés de septembre 2026.

#### Une sélection qui explique ses choix

Les listes finales gardent les éléments de preuve et la prochaine action à côté du poste. Prioritaire signifie que la revue conservée donnait une raison crédible de candidater. La seconde sélection garde une piste possible en signalant un écart technique, métier ou pratique. Les catégories Strong et Technical Stretch de Corée sont alignées sur ces deux groupes dans le graphique.

Les 178 identifiants correspondent à 175 opportunités après dédoublonnage au sein de chaque pays : 12 en Chine, 45 au Japon, 4 en Corée du Sud, 76 en Thaïlande et 38 au Vietnam. Plusieurs annonces peuvent pointer vers la même opportunité. La revue utilise les clés conservées lorsqu’elles existent et le couple entreprise/intitulé pour les listes plus simples de Chine et de Corée.

Ces résultats datent de septembre 2026. La couverture de collecte et la profondeur de revue varient selon le pays ; l’accompagnement du recrutement international ou l’ouverture actuelle du poste peuvent rester à vérifier. La sortie utile est un point de départ argumenté pour candidater, avec les questions restantes.

##### Images et médias

[75 annonces prioritaires et 103 en seconde sélection. Ce sont des catégories de revue conservées, pas une confirmation d’éligibilité, un intérêt de l’employeur ou une comparaison des conditions nationales d’embauche.](<https://zaki.somehow.engineer/content/assets/job-search/case-study/shortlists.fr.png>)

Annonces prioritaires et de seconde sélection : Chine 8 et 4 ; Japon 11 et 34 ; Corée du Sud 2 et 2 ; Thaïlande 37 et 41 ; Vietnam 17 et 22.

[SVG](<https://zaki.somehow.engineer/content/assets/job-search/case-study/shortlists.fr.svg>)

Crédit: Graphique créé à partir de mes exports et revues conservés de septembre 2026.

#### Garder le suivi relié à la recherche

Un outil Google Apps Script séparé traite le problème d’organisation suivant : les notifications LinkedIn reçues dans Gmail. Il importe les emails portant un libellé dans Google Sheets et utilise l’identifiant du message Gmail pour éviter les doublons.

La feuille conserve les métadonnées de notification, les liens de profil et de conversation, puis des champs pour l’entreprise, l’identifiant du poste, le statut et la prochaine action. Le rythme configuré est de quinze minutes. Quand l’email ne contient pas le message lui-même, le script enregistre la notification et laisse ouvrir la conversation manuellement. Les réponses et les candidatures restent ma décision.

#### Une recherche personnelle devenue une méthode

J’en ai tiré des listes par pays, des raisons que je peux examiner et un prompt de sélection réutilisable avec un autre profil ou un autre jeu de données. Le processus prévoit une seconde lecture des rejets comme des annonces retenues, pour qu’une règle pratique ne devienne pas une conclusion qu’on ne questionne plus.

Le résultat que je peux montrer est la recherche organisée : plusieurs milliers d’annonces ramenées à un ensemble de pistes gérable, en conservant les sources et les incertitudes. Les éléments disponibles ne permettent pas de dire combien de candidatures ont mené à un entretien ou une offre.


## Parcours

### Enka

> Enka est le projet de livraison de repas que j’ai cofondé à Montpellier. En tant que CTO, j’ai travaillé sur l’application et les outils qui l’entourent : données des restaurants, commandes, parcours des livreurs et interfaces entre ces différents usages. Il fallait faire fonctionner un produit pour les clients, les livreurs et l’équipe qui exploite le service.

Cofondateur et CTO · septembre 2024–aujourd’hui

Rubrique: Parcours

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#experience/9>)

[English](<https://zaki.somehow.engineer/read/en/enka.md>)

#### En bref

| Indicateur | Valeur |
| --- | --- |
| Mon rôle | Cofondateur et CTO |
| Implantation | Montpellier, France |
| Impliqué depuis | Septembre 2024 |
| Produit | Android et iOS |

#### Pourquoi j'ai rejoint le projet

Enka est parti de l'idée d'un ami. J'ai apporté mes compétences d'ingénieur pour aider à la concrétiser, et j'en partageais l'objectif : donner davantage de voix aux livreurs dans leur travail et construire un modèle plus juste pour eux comme pour les restaurants. Cela rejoignait ce qui m'avait donné envie de devenir ingénieur : pouvoir créer des solutions pour moi et pour les personnes autour de moi.

#### Du choix du repas à sa réception

Enka est disponible sur Android et iOS. Son offre actuelle porte sur la livraison de repas à Montpellier aux prix à emporter des restaurants, sans commission pour ces derniers. Le client choisit un restaurant, compose son panier, paie par carte ou choisit les espèces à la livraison, puis suit la préparation et l'acheminement de sa commande. L'application propose aussi la commande sans compte et une messagerie avec le livreur.

Derrière ces écrans, il y a des restaurants, des livreurs et une équipe qui fait fonctionner le service au quotidien. Mon travail d’ingénieur portait sur ce lien : faire correspondre les informations et les actions de chacun.

##### Images et médias

[La proposition de prix et la présentation d’un restaurant.](<https://zaki.somehow.engineer/content/assets/enka/enka1.webp>)

Visuel de présentation d’Enka montrant la proposition de prix et une page de restaurant.

Crédit: Visuels de présentation de l’application Enka.

[La recherche de restaurants et les modes de paiement.](<https://zaki.somehow.engineer/content/assets/enka/enka2.webp>)

Visuel Enka présentant la recherche de restaurants, les catégories et les modes de paiement.

Crédit: Visuels de présentation de l’application Enka.

[Le suivi de la préparation, de la livraison et du livreur.](<https://zaki.somehow.engineer/content/assets/enka/enka3.webp>)

Visuel Enka montrant les étapes de commande, l’heure d’arrivée et le suivi du livreur.

Crédit: Visuels de présentation de l’application Enka.

#### Une commande, trois interfaces reliées

En tant que CTO, j’ai travaillé sur l’application et ses bases techniques : informations des restaurants, commandes, parcours des livreurs et administration. Le client qui commande, le livreur qui récupère le repas et la personne qui gère un incident doivent partager une vision cohérente de la situation.

La documentation de l’application distingue trois rôles : client, livreur et administrateur. Mon travail reliait leurs interfaces aux données et aux changements d’état communs. La stack comprend Next.js/React, Supabase/Postgres et Mapbox.

Next.js / React · Supabase / Postgres · Mapbox

Une vue simplifiée des trois rôles de l’application

1. **Client** — Parcourir les restaurants, composer un panier, commander et suivre la livraison.
2. **Livreur** — Accepter une course, récupérer la commande et mettre à jour son avancement.
3. **Équipe opérationnelle** — Maintenir les informations des restaurants et traiter les incidents de commande.

Synthèse des parcours décrits dans la documentation de l’application, et non schéma de déploiement.

#### Rendre les informations des restaurants exploitables

En parallèle de l’application, j’ai développé des outils de collecte et de comparaison des cartes de restaurants. Un même plat peut avoir un nom différent, apparaître dans une autre rubrique ou utiliser un autre format de prix selon la source. Récupérer les pages ne résout donc qu’une partie du problème.

J’ai séparé la collecte, le rapprochement des plats et la comparaison. Cela permettait de revoir les correspondances approximatives en tenant compte des rubriques, puis de contrôler le résultat sans recommencer toute la collecte. Un benchmark documenté portait sur dix URL de restaurants aux structures différentes, avec un suivi des temps, des prix observés et des échecs. Il s’agissait aussi de comprendre les limites des données.

Des cartes sources à une comparaison vérifiable

1. **Collecter** — Récupérer la structure des cartes, les noms des plats et les prix de chaque source.
2. **Rapprocher** — Comparer les plats au sein de leurs rubriques malgré les différences de noms.
3. **Vérifier** — Relire la comparaison et revenir sur les correspondances ambiguës.

Travail complémentaire documenté dans UltimateScrapeV1 ; échantillon du benchmark : dix URL de restaurants.

#### Comprendre la livraison derrière l’application

Le business plan de l’équipe étudie un modèle de relais en vélo-cargo à Montpellier : récupérer les commandes dans le centre piéton, les regrouper à des points de collecte, puis confier la suite du trajet aux livreurs. Ce travail aide à comprendre les besoins de coordination auxquels le logiciel doit répondre.

Le document présente une simulation AnyLogic de cette organisation. Il indique une livraison plus rapide pour 60 % des commandes simulées, un temps équivalent pour 29 % et un retard pour 11 %. Parmi ces dernières, les retards supérieurs à cinq minutes représentent 5 % de l’ensemble des commandes simulées. Ces résultats font apparaître le bénéfice potentiel, mais aussi les situations qui restent à améliorer.

| Valeur | Indicateur |
| --- | --- |
| 60 % | Livraison plus rapide |
| 29 % | Temps équivalent |
| 6 % | Autres retards |
| 5 % | Retard supérieur à cinq minutes |

> Simulation historique de l’équipe, pas mesure des livraisons réelles. Le business plan fourni ne précise ni l’ensemble des paramètres d’exécution ni la taille de l’échantillon. La modélisation logistique est créditée à l’équipe Enka.

##### Images et médias

[Répartition des délais dans la simulation présentée par l’équipe.](<https://zaki.somehow.engineer/content/assets/enka/case-study/delivery-simulation.png>)

Simulation historique : 60 % plus rapides, 29 % équivalentes, 6 % de retard acceptable et 5 % de retard supérieur à cinq minutes.

Crédit: Équipe Enka · Enka Business Plan, p. 22–23. Simulation historique.

[La scène de simulation documentée rue Saint-Guilhem.](<https://zaki.somehow.engineer/content/assets/enka/case-study/montpellier-simulation.jpg>)

Capture de la simulation montrant les agents de livraison rue Saint-Guilhem, à Montpellier.

Crédit: Enka Business Plan, p. 19 · carte © contributeurs OpenStreetMap.

[Une comparaison des émissions modélisées dans l’étude logistique.](<https://zaki.somehow.engineer/content/assets/enka/case-study/emissions-simulation.jpg>)

Courbe issue du modèle comparant les émissions de composés organiques volatils avec et sans vélos-cargos.

Crédit: Équipe Enka · Enka Business Plan, p. 23. Sortie de modèle, sans mesure des émissions dans la rue.

#### Travailler avec l’équipe visuelle

J’ai également contribué à l’UX/UI de l’application et participé aux échanges visuels : proposer des idées, demander des révisions et réfléchir au lien entre l’application et sa présentation. Le design était un travail collectif. Amandine Basset a contribué à l’UX/UI, et Rouge Studio a travaillé sur l’identité visuelle et la communication.

Les documents du studio explorent trois pistes : l’emboîtement, la culture du vélo et le mouvement. Cette dernière relie la personne qui livre, les roues du vélo et les relations entre les acteurs du service. Le dossier stratégique prolonge cette idée dans le brief créatif : rendre visibles les personnes derrière une livraison, tout en gardant une expérience simple.

##### Images et médias

[Le raisonnement derrière la piste « Mouvement ».](<https://zaki.somehow.engineer/content/assets/enka/case-study/brand-movement.jpg>)

La piste Mouvement de Rouge Studio relie le livreur, les roues de vélo et les relations au sein d’Enka.

Crédit: Rouge Studio — Luna Martin, Yasmine Bourhan et Maxine Mulot. Understanding Empathy ENKA, p. 19.

[Des applications de l’identité sur des maquettes de produits et de sacs de livraison.](<https://zaki.somehow.engineer/content/assets/enka/case-study/brand-applications.jpg>)

Propositions d’identité Enka appliquées à une gourde et à des sacs de livraison.

Crédit: Rouge Studio — Luna Martin, Yasmine Bourhan et Maxine Mulot. Understanding Empathy ENKA, p. 23. Maquettes de concept.

[Des propositions de communication qui remettent le livreur au premier plan.](<https://zaki.somehow.engineer/content/assets/enka/case-study/brand-campaign.jpg>)

Propositions de communication Enka avec un portrait de livreur et un sac de repas.

Crédit: Rouge Studio — Luna Martin, Yasmine Bourhan et Maxine Mulot. Understanding Empathy ENKA, p. 24. Maquettes de concept.

#### Où en est le projet, et ce que j’en retiens

L'application est disponible publiquement. L'équipe cherche à développer la traction nécessaire à un premier financement en pré-seed. Je reste impliqué, avec moins de développement au quotidien pendant cette phase.

Enka a élargi le périmètre de mon travail d'ingénieur. Un écran, un statut de commande et la prochaine action d'un livreur doivent être cohérents entre eux. Construire le produit, c'était réfléchir à ces liens et travailler avec des personnes qui apportaient d'autres compétences que les miennes.

#### Liens

- [Visit Enka](<https://enkalivre.fr/>)
- [Android](<https://play.google.com/store/apps/details?id=com.enka.client>)
- [iOS](<https://apps.apple.com/fr/app/id6803603934>)


### Decathlon

> Étudier ce que les jours fériés, la météo et les événements peuvent apporter aux prévisions de vente, à travers les covariables et la création de variables.

Data Scientist & ML Engineer · mars 2024–février 2025

Rubrique: Parcours

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#experience/10>)

[English](<https://zaki.somehow.engineer/read/en/decathlon.md>)

#### En bref

| Indicateur | Valeur |
| --- | --- |
| Mon rôle | Data Scientist & ML Engineer |
| Lieu | Croix / Lille, France |
| Période chez Decathlon | Mars 2024–février 2025 |
| Modèle étudié | Temporal Fusion Transformer |

#### Mon travail chez Decathlon

Chez Decathlon Digital, j’ai principalement travaillé sur les covariables de prévision : des informations comme les jours fériés, les vacances scolaires, la météo et les événements, qui peuvent aider à expliquer les variations de la demande. Mon travail portait sur la préparation de données externes, la création de variables et l’évaluation de leur intérêt pour les prévisions de vente.

J’ai commencé par un stage de mars à septembre 2024, puis continué à travailler chez Decathlon jusqu’en février 2025.

L’exemple présenté ci-dessous vient de mon rapport de stage et porte sur les variables de calendrier dans un modèle de prévision Temporal Fusion Transformer existant. Le périmètre détaillé de mon travail après le stage reste confidentiel. La plateforme de prévision relevait d’un travail d’équipe.

##### Images et médias

[La place de la prévision dans la chaîne d’approvisionnement.](<https://zaki.somehow.engineer/content/assets/decathlon/case-study/planning-context.jpg>)

Schéma de l’entreprise situant la planification parmi les processus industriels, la production, le transport, la logistique et la vente.

Crédit: Decathlon · Supply & Material Planning, p. 7. Contexte de l’entreprise.

#### Construire des données de calendrier exploitables

Avant d’entraîner un modèle, il fallait trouver des sources de calendrier avec assez d’historique, des dates futures, le détail régional et un suivi des mises à jour. Avec l’aide de data stewards, j’ai comparé les données gouvernementales, Date Holidays, Workalendar et Open Holiday API.

J’ai ensuite rapproché les dates de calendrier des ventes hebdomadaires : nom du jour férié, date et position dans la semaine. La couverture des vacances scolaires variait selon les sources ; j’ai commencé cette partie de l’analyse avec la France et ses trois zones scolaires. Préparer des données comparables représentait une part importante du travail.

Python / Pandas · PySpark · Databricks · MLflow · Nixtla / TFT · Matplotlib / Seaborn

Des dates externes aux variables de prévision

1. **Sourcer** — Vérifier la période couverte, le détail régional, la fiabilité et la maintenance.
2. **Aligner** — Relier les dates à l’index des ventes hebdomadaires et à la zone concernée.
3. **Encoder** — Transformer les jours fériés et les vacances en entrées du modèle.

Synthèse de la préparation des données décrite dans le rapport, p. 17–20 et 33–34.

##### Images et médias

[Les critères utilisés pour comparer les sources de calendrier.](<https://zaki.somehow.engineer/content/assets/decathlon/case-study/source-selection.jpg>)

Diapositive présentant la période couverte, le contenu, la fiabilité et la maintenance comme critères de sélection.

Crédit: Zaki Gouizi · Rapport de stage Decathlon, 2024, p. physique 17. Visuel de présentation original.

#### Vérifier l’analyse avant d’enrichir le modèle

Un événement récurrent peut déjà être partiellement représenté par la saisonnalité. J’ai décomposé les ventes en tendance, composante saisonnière et résidus pour chercher l’information supplémentaire que pourraient apporter les variables de calendrier.

J’ai aussi dû revenir sur de premiers résultats. Un décalage apparent avant un jour férié a disparu après correction de l’implémentation. J’ai relancé les analyses et comparé des produits moins saisonniers ainsi que les ventes agrégées. Cette correction comptait : une explication séduisante du comportement d’achat ne suffisait pas à rendre une variable utile.

##### Images et médias

[Séparer la structure saisonnière des variations résiduelles étudiées.](<https://zaki.somehow.engineer/content/assets/decathlon/case-study/decomposition.jpg>)

Présentation de la série observée, de sa tendance, de sa composante saisonnière et de ses résidus.

Crédit: Zaki Gouizi · Rapport de stage Decathlon, 2024, p. physique 25. Visuel de présentation original.

[Le recalcul a modifié le décalage apparent autour des jours fériés ; le premier graphique sert de comparaison.](<https://zaki.somehow.engineer/content/assets/decathlon/case-study/analysis-correction.jpg>)

Anciennes et nouvelles distributions des ventes autour des jours fériés en semaine et le samedi.

Crédit: Zaki Gouizi · Rapport de stage Decathlon, 2024, p. physique 29. Visuel de présentation original.

#### Transformer les dates en variables

J’ai exploré les indicateurs de jours fériés, les longs week-ends et un compte à rebours jusqu’au prochain jour férié. Un Day Counter représentait la proximité du jour férié avec le week-end par une valeur de 0 à 3. Les expériences portaient aussi sur la semaine, le mois et les vacances scolaires françaises.

La manière de représenter l’information est devenue une expérience à part entière. Après les retours de l’équipe, j’ai comparé un encodage scalaire et un encodage one-hot, appliqué une normalisation MinMax au compte à rebours et testé des représentations sinus/cosinus de la semaine et du mois. Le modèle pouvait ainsi recevoir une même information sous plusieurs formes.

##### Images et médias

[Représenter simplement la position du jour férié par rapport au week-end.](<https://zaki.somehow.engineer/content/assets/decathlon/case-study/calendar-encoding.jpg>)

Schéma du Day Counter : zéro le samedi et le dimanche, un le lundi et le vendredi, deux le mardi et le jeudi, trois le mercredi.

Crédit: Zaki Gouizi · Rapport de stage Decathlon, 2024, p. physique 32. Visuel de présentation original.

[Les combinaisons de variables comparées dans la seconde série de tests.](<https://zaki.somehow.engineer/content/assets/decathlon/case-study/feature-combinations.jpg>)

Matrice des expériences combinant longs week-ends, compte à rebours et représentations de la semaine et du mois.

Crédit: Zaki Gouizi · Rapport de stage Decathlon, 2024, p. physique 41. Visuel de présentation original.

#### Évaluer, puis regarder ce que cache le score

J’ai comparé les variantes au modèle de référence utilisé en production, dans une évaluation hors ligne. Le rapport décrit un horizon de prévision de 52 semaines et cinq dates de coupure : les semaines 37 et 47 de 2022, puis les semaines 5, 15 et 25 de 2023. Ces découpages permettaient d’examiner plusieurs périodes de l’année.

La première comparaison agrégée n’améliorait pas la référence, alors que l’analyse du Top 400 produits était plus prometteuse. J’ai ensuite revu les encodages et lancé un nouveau benchmark. Le rapport indique environ trois à quatre heures par entraînement : il fallait donc choisir et documenter les expériences avec soin.

Le déroulement de l’évaluation des variantes

1. **Comparer** — Conserver le modèle de référence et l’horizon d’évaluation documentés.
2. **Décomposer** — Examiner les dates de coupure, les groupes de produits et le Top 400.
3. **Revoir** — Utiliser les résultats et les retours de l’équipe pour choisir le prochain encodage.

Méthode décrite dans le rapport, p. 36–43. La durée est celle rapportée approximativement pour un entraînement.

#### Un gain modeste, et un classement qui change

Le second benchmark global rapporte une WAPE de référence de 41,20, avec deux variantes à 40,91 et 40,83. Dans cette évaluation, une WAPE plus basse correspond à une erreur de prévision plus faible. Le meilleur résultat global affiché est donc inférieur d’environ 0,37 sur l’échelle de WAPE utilisée.

Ce résultat ne se retrouvait pas uniformément. La meilleure variante globale n’était pas la meilleure sur le Top 400 produits, où un autre encodage obtenait un meilleur score. C’était le point utile à retenir : une variable doit être évaluée en fonction des produits et des périodes auxquels elle est destinée.

| Valeur | Indicateur |
| --- | --- |
| 41,20 | WAPE de référence |
| 40,83 | Meilleure WAPE globale rapportée |
| 0,37 | De moins sur l’échelle de WAPE |
| 52 semaines | Horizon de prévision |

> Évaluation hors ligne documentée dans le rapport de 2024. Les scores sont arrondis à deux décimales ; le tableau source indique 41,2016 et 40,8329. Le rapport n’établit ni déploiement de ces variantes en production ni économies réalisées.

##### Images et médias

[Le second benchmark global. Le terme « global » désigne l’agrégation de cette évaluation, pas toutes les séries en production.](<https://zaki.somehow.engineer/content/assets/decathlon/case-study/benchmark-global.jpg>)

Tableau global avec une WAPE de référence de 41,2016 et une meilleure variante affichée à 40,8329, sur cinq dates de coupure.

Crédit: Zaki Gouizi · Rapport de stage Decathlon, 2024, p. physique 42. Visuel de présentation original.

[Les mêmes variantes sur un sous-ensemble de produits : le classement change.](<https://zaki.somehow.engineer/content/assets/decathlon/case-study/benchmark-top400.jpg>)

Tableau du Top 400 avec une WAPE de référence de 19,2801 et un classement différent des variantes.

Crédit: Zaki Gouizi · Rapport de stage Decathlon, 2024, p. physique 42. Visuel de présentation original.

#### Interpréter pour choisir la suite

J’ai examiné l’importance des variables pour comprendre les entrées utilisées par le TFT. Le compte à rebours jusqu’au prochain jour férié se plaçait haut, avec les ventes de la saison précédente. C’était un indicateur utile pour comprendre le modèle ; l’évaluation des prévisions restait nécessaire, car un score d’importance ne démontre pas à lui seul un effet causal.

J’ai documenté le travail dans Confluence, suivi le fonctionnement de l’équipe sur Jira et présenté les résultats en anglais à une équipe internationale. Les retours ont directement orienté les essais d’encodage suivants. J’en retiens une façon plus rigoureuse de construire : formuler la question, vérifier les données et le code, mener la comparaison, puis expliquer dans quels cas le résultat tient.

##### Images et médias

[Comprendre les entrées utilisées par le modèle, en complément du benchmark.](<https://zaki.somehow.engineer/content/assets/decathlon/case-study/feature-importance.jpg>)

Graphique d’importance des variables du TFT, avec le compte à rebours du prochain jour férié et les ventes de la saison passée en tête.

Crédit: Zaki Gouizi · Rapport de stage Decathlon, 2024, p. physique 43. Visuel de présentation original.


### StudentBank

> Des besoins étudiants aux diagrammes produit, aux interfaces React et au backend Node.js/MongoDB.

Stage full-stack JavaScript · juillet–septembre 2022

Rubrique: Parcours

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#experience/11>)

[English](<https://zaki.somehow.engineer/read/en/studentbank.md>)

#### En bref

| Indicateur | Valeur |
| --- | --- |
| Mon rôle | Stagiaire full-stack JavaScript |
| Période | Juillet–septembre 2022 |
| Frontend | React · Chakra UI · Figma |
| Backend | Node.js · MongoDB |

#### Un produit autour de la vie étudiante

StudentBank réunissait plusieurs services destinés aux étudiants : finance, logement et mobilité internationale. Pendant mon stage full-stack JavaScript, j’ai travaillé sur les entretiens utilisateurs, la conception des interfaces et le développement, jusqu’à l’API et l’authentification.

Ce qui m’intéressait, c’était de suivre un même besoin à travers ces différentes étapes : ce que l’étudiant veut faire, ce que l’interface doit afficher et ce que le système doit gérer derrière.

##### Images et médias

[Trois volets du produit réunis sur la page d’accueil. Extrait ; ouvrir pour voir la maquette complète.](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/home-introduction.webp>)

Accueil sur ordinateur présentant la banque, le logement et la mobilité en trois panneaux illustrés.

[SVG](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/home-light-full.webp>)

Crédit: Archives du projet StudentBank · export d’interface fourni, 2022.

#### Partir des personnes qui vont l’utiliser

J’ai mené des entretiens utilisateurs, puis traduit les besoins en diagrammes UML. Pour le logement, il ne s’agissait pas seulement de consulter des annonces : les étudiants devaient candidater, transmettre des documents et suivre leurs demandes. Les propriétaires et les administrateurs avaient aussi leurs propres actions et responsabilités.

Les diagrammes de cas d’utilisation conservés montrent cette répartition. Ils décrivent le fonctionnement prévu du produit et permettaient de rendre le périmètre concret avant de le développer.

Du besoin au fonctionnement du produit

1. **Écouter** — Recueillir les besoins lors des entretiens utilisateurs.
2. **Décrire** — Identifier les acteurs, leurs actions et leurs interactions.
3. **Préciser** — Formaliser le comportement des fonctionnalités avec des diagrammes.

Synthèse de ma démarche à partir du récit du stage et des documents UML originaux.

##### Images et médias

[Le logement côté étudiant : trouver une offre, candidater, échanger des documents et gérer sa location.](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/student-housing.webp>)

Diagramme de cas d’utilisation reliant étudiant et administrateur à la recherche, aux candidatures, aux documents et à la gestion du logement.

Crédit: Archives du projet StudentBank · export UML original, 2022.

[L’autre côté du service : ce qu’un propriétaire peut publier, modifier et suivre.](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/landlord-housing.webp>)

Cas d’utilisation du propriétaire et de l’administrateur pour créer, modifier, retirer et suivre une annonce.

Crédit: Archives du projet StudentBank · export UML original, 2022.

#### Donner une structure aux données

Ce travail concernait aussi la mobilité internationale : choisir un pays, explorer les écoles et les formations, déposer une candidature et suivre la réponse. La modélisation servait à relier ces parcours aux informations nécessaires dans l’application.

Le diagramme de classes rassemble utilisateurs, fichiers, établissements, logements, baux et candidatures. Il faisait le lien entre une série d’écrans et un produit avec des données liées, plusieurs acteurs et des actions à prendre en charge.

##### Images et médias

[La mobilité internationale prolonge le parcours vers les écoles, les formations et le suivi des candidatures.](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/international-mobility.webp>)

Diagramme de mobilité internationale avec pays, écoles, formations, candidatures, documents et actions administrateur.

Crédit: Archives du projet StudentBank · export UML original, 2022.

[Un modèle reliant personnes, documents, lieux et demandes. C’est un document de conception, pas un export du schéma de base de données.](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/domain-model.webp>)

Diagramme de classes reliant utilisateurs, étudiants, administrateurs, fichiers, établissements, écoles, logements, candidatures et baux.

Crédit: Archives du projet StudentBank · export UML original, 2022.

#### Passer des maquettes aux interfaces

J’ai travaillé sur les prototypes Figma et développé les interfaces en React avec Chakra UI. Dans le code du site conservé, la navigation et le pied de page sont partagés entre les pages, avec des routes pour l’accueil, l’application, la mission, l’équipe et le contact.

Les versions claire et sombre se retrouvent aussi dans le code : les hooks de couleur de Chakra changent les couleurs, les fonds et certains visuels. Les exports ci-dessous montrent la direction des maquettes ; la branche MobileTest conservée n’en contient qu’une partie de l’implémentation.

React 18 · Chakra UI 2 · React Router 6 · Figma

##### Images et médias

[Version claire : présentation du compte et des cartes. Ouvrir pour voir la page entière.](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/desktop-light.webp>)

Extrait de la maquette claire sur ordinateur avec écran de compte sur téléphone et présentation des cartes.

[SVG](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/home-light-full.webp>)

Crédit: Archives du projet StudentBank · export d’interface fourni, 2022.

[Version sombre : le même contenu, avec d’autres fonds et visuels.](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/desktop-dark.webp>)

Extrait de la maquette sombre sur ordinateur avec écran de compte et cartes bancaires.

[SVG](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/home-dark-full.webp>)

Crédit: Archives du projet StudentBank · export d’interface fourni, 2022.

#### Adapter le parcours au téléphone

La version mobile réorganise le contenu dans une page étroite : une navigation compacte, une introduction, puis les différents services. Le code distingue les navigations pour ordinateur et téléphone, avec un menu mobile qui occupe tout l’écran.

J’ai aussi travaillé sur des dispositions distinctes pour la section bancaire. Les archives gardent la trace de cette adaptation en cours, plutôt qu’un état terminé de tous les écrans sur toutes les tailles d’appareil.

##### Images et médias

[Mobile, partie 1 : navigation, introduction et cartes.](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/mobile-introduction.webp>)

Haut de la maquette mobile : navigation compacte, aperçu du compte, introduction et cartes.

[SVG](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/mobile-full.webp>)

Crédit: Archives du projet StudentBank · export d’interface fourni, 2022.

[Mobile, partie 2 : logement et avantages étudiants.](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/mobile-housing.webp>)

Milieu de la maquette mobile : logement et avantages étudiants.

[SVG](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/mobile-full.webp>)

Crédit: Archives du projet StudentBank · export d’interface fourni, 2022.

[Mobile, partie 3 : mobilité internationale et pied de page. Chaque extrait ouvre la maquette entière.](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/mobile-international.webp>)

Bas de la maquette mobile : mobilité internationale et pied de page légal.

[SVG](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/mobile-full.webp>)

Crédit: Archives du projet StudentBank · export d’interface fourni, 2022.

#### Relier les interfaces au backend

Mon travail full-stack comprenait la conception et l’implémentation d’une API REST en Node.js avec MongoDB. J’ai travaillé sur l’organisation du code en modules, les requêtes, les réponses, les erreurs et l’authentification. Le développement allait donc au-delà de ce qui apparaissait à l’écran.

L’authentification mobilisait JSON Web Tokens, bcrypt, crypto-js et des intégrations de connexion OAuth 2.0. Ce volet backend est documenté dans mon CV et mon récit du stage ; le dépôt public du site conserve la partie frontend.

Node.js · MongoDB · API REST · JWT · bcrypt · OAuth 2.0

Les différentes couches de mon travail full-stack

1. **Interface** — Composants React et interactions côté utilisateur.
2. **API** — Routes Node.js, requêtes, réponses et gestion des erreurs.
3. **Données et identité** — Données MongoDB et parcours d’authentification.

Vue d’ensemble de mes responsabilités pendant le stage, pas un schéma de déploiement retrouvé.

#### Ce que j’en ai retiré

C’était une première occasion de parcourir toute la chaîne : discuter d’un besoin, le formaliser, construire son interface et développer le backend associé. J’y ai mieux compris pourquoi ces parties doivent avancer ensemble.

Les documents qui restent montrent les différentes facettes du travail : diagrammes produit, maquettes pour ordinateur et téléphone, et code React. C’est aujourd’hui la trace la plus concrète que j’ai de ces trois mois de stage.

> Ces visuels sont des exports historiques du projet et contiennent du texte provisoire. Ils montrent les interfaces prévues, sans établir que tous les services financiers présentés ou toutes les fonctionnalités ont été lancés.

##### Images et médias

[Maquette de prise de rendez-vous. La branche archivée contient l’interface du formulaire ; elle ne permet pas d’établir qu’un service de réservation fonctionnait.](<https://zaki.somehow.engineer/content/assets/studentbank/case-study/appointment.webp>)

Maquette sombre de prise de rendez-vous avec date, motif, coordonnées et bouton de validation.

Crédit: Archives du projet StudentBank · export d’interface fourni, 2022.

#### Liens

- [Source · MobileTest](<https://github.com/zakich4n/StudentBank-website/tree/MobileTest>)


### Études d’ingénieur

> Une formation généraliste, une spécialisation en informatique et les outils pour commencer à construire mes propres solutions.

Lille · Prépa et diplôme d’ingénieur · 2018–2023

Rubrique: Parcours

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#experience/12>)

[English](<https://zaki.somehow.engineer/read/en/engineering-studies.md>)

#### En bref

| Indicateur | Valeur |
| --- | --- |
| École d’ingénieur | JUNIA HEI · 2020–2023 |
| Spécialisation | Informatique |
| Classes préparatoires | Lycée LaSalle · 2018–2020 |
| Lieu | Lille, France |

#### Pourquoi cette voie

J’ai choisi de devenir ingénieur pour pouvoir construire mes propres solutions. Quand je rencontre un problème, je me demande souvent : « Est-ce que ce serait plus rapide de le faire moi-même ? » Je voulais acquérir les connaissances et l’autonomie pour aller au bout de cette idée.

C’est encore ce qui relie beaucoup de mes projets : quelque chose me gêne, j’essaie de comprendre comment ça fonctionne, puis de fabriquer une solution qui correspond à mon usage.

#### LaSalle · Les bases scientifiques

De 2018 à 2020, j’ai suivi les classes préparatoires du lycée LaSalle à Lille. Le programme associait mathématiques, physique, chimie et sciences de l’ingénieur pour préparer l’entrée en école.

En maths, j’ai étudié l’analyse, l’algèbre linéaire, la géométrie et les probabilités. En physique : mécanique, thermodynamique, électromagnétisme, optique et ondes. Les sciences de l’ingénieur apportaient aussi une introduction aux systèmes mécaniques et électroniques et à la programmation appliquée. J’y ai appris à décomposer un problème, à raisonner avec rigueur et à utiliser des modèles pour comprendre un fonctionnement.

#### HEI · Généraliste, avec une spécialisation en informatique

J’ai poursuivi à JUNIA HEI à Lille, de 2020 à 2023, jusqu’au diplôme d’ingénieur avec une spécialisation en informatique. La formation conservait un socle généraliste, notamment en mathématiques, probabilités, statistiques et modélisation, tout en me permettant d’approfondir le développement.

La partie informatique abordait l’intelligence artificielle, l’Internet des objets et le développement web, avec notamment Python, JavaScript et des frameworks web. On passait de la collecte et du traitement de données aux algorithmes et aux applications : comprendre un problème, puis avoir les moyens de mettre une idée en pratique.

Mathématiques et statistiques · Modélisation · Python · JavaScript · Intelligence artificielle · IoT · Développement web

#### Travailler au-delà du code

La formation comprenait aussi la gestion de projet, le leadership, la prise de décision et les enjeux éthiques et sociaux de la technologie. Ce côté généraliste me parle : une solution technique doit avoir du sens pour les personnes qui vont l’utiliser et pour celles qui la construisent ensemble.

J’aime passer d’un point de vue à l’autre : comprendre un algorithme, réfléchir à une interface ou discuter de ce qu’un produit doit vraiment permettre de faire. La formation m’a laissé de la place pour développer ces différents intérêts.

#### Passer à la pratique

Pendant mes études, j’ai rejoint StudentBank en stage full-stack JavaScript, de juillet à septembre 2022. J’y ai travaillé des entretiens utilisateurs et des diagrammes UML jusqu’aux interfaces React et au backend. C’était l’occasion de suivre un même besoin à travers plusieurs parties d’une application.

Par la suite, j’ai utilisé ces bases pour travailler sur les prévisions chez Decathlon, puis construire le socle technique d’Enka. Ces expériences ont leurs propres pages ici : elles montrent ce que j’ai fait des outils que j’ai commencé à acquérir pendant mes études.

#### À découvrir aussi

- [StudentBank · Stage full-stack](<https://zaki.somehow.engineer/read/fr/studentbank.md>)
- [Decathlon · Prévisions](<https://zaki.somehow.engineer/read/fr/decathlon.md>)
- [Enka · Construire une plateforme](<https://zaki.somehow.engineer/read/fr/enka.md>)


## Création

### Faire des films avec des amis

> Tenir la caméra avec mon téléphone, proposer des idées pour une scène et aider mes amis à donner forme à leurs projets.

Cinéma · Collaboration créative

Rubrique: Création

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#art/13>)

[English](<https://zaki.somehow.engineer/read/en/filmmaking.md>)

#### Trouver ma place sur un tournage

Sur un film avec un ami, j’ai tenu la caméra avec mon téléphone et proposé des idées de placement et de cadrage. Il avait écrit le scénario et s’est occupé du montage.

J’aime travailler avec des personnes qui connaissent leur métier. Quand une de mes idées apporte quelque chose à une scène, ça me donne confiance dans ce que je peux proposer. Le cinéma me permet aussi de montrer ma façon de voir les choses et de créer quelque chose que j’ai envie de partager avec mes proches.

#### Des clips avec Tatsumi

Tatsumi est un ami qui fait du rap. J’ai donné un coup de main sur deux de ses clips, 1er AOÛT et SALE HIVER. Mon nom apparaît dans les remerciements des deux vidéos.

##### Images et médias

[TATSUMI — 1er AOÛT](<https://www.youtube.com/watch?v=fnPCnR6Q85o>)

Miniature officielle du clip 1er AOÛT de Tatsumi.

Sorti en août 2025. Ma participation figure dans les remerciements.

Crédit: Tatsumi · Caméra : kotoblade & giola. Montage : kotoblade & coton. Étalonnage : kotoblade.

[TATSUMI — SALE HIVER](<https://www.youtube.com/watch?v=zZhRBmiOj4I>)

Miniature officielle du clip SALE HIVER de Tatsumi.

Sorti en août 2025. Ma participation figure dans les remerciements.

Crédit: Tatsumi · Caméra : kotoblade & giola. Montage : kotoblade & coton. Production : Planar Films.

#### Autour de la caméra

Le clip terminé ne montre qu’une partie du tournage. Le making-of de Coton Production suit les coulisses des vidéos, et le reel de Tatsumi donne un autre aperçu du projet.

##### Images et médias

[COMMENT on a tourné 5 CLIPS en 4 jours (Ep 1)](<https://www.youtube.com/watch?v=o8klq8y6okE>)

Miniature officielle du making-of de Coton Production.

Un making-of partagé par Coton Production, lié au tournage de SALE HIVER.

Crédit: COTON PRODUCTION · Filmé par COTON.

[Tatsumi — 23](<https://www.instagram.com/reel/DMspX5OM62_/>)

Aperçu vertical officiel du reel Instagram de Tatsumi.

Un court reel partagé par Tatsumi autour de la sortie de 23.

Crédit: @23.tatsumi · Clips : kotoblade, coton.production, aloigiola et planar.films.

#### D’autres images des tournages

J’ai aussi quelques extraits et photos de tournages, dont une bande-annonce Enka. Ces emplacements gardent leurs proportions d’origine, le temps de trouver où héberger les fichiers.

- Pas encore publié: Extrait horizontal 01 · hébergement à venir.
- Pas encore publié: Extrait horizontal 02 · hébergement à venir.
- Pas encore publié: Extrait vertical 01 · hébergement à venir.
- Pas encore publié: Extrait vertical 02 · hébergement à venir.
- Pas encore publié: Extrait vertical 03 · hébergement à venir.
- Pas encore publié: Bande-annonce Enka · hébergement à venir.
- Pas encore publié: Image horizontale · visuel à venir.
- Pas encore publié: Photographie verticale · visuel à venir.


### La cuisine

> Environ deux ans à apprendre à cuisiner, du sucré vers le salé. Mes cuisines préférées sont méditerranéenne et chinoise, avec un faible pour le Kung Pao.

Pratique créative personnelle

Rubrique: Création

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#art/14>)

[English](<https://zaki.somehow.engineer/read/en/cooking.md>)

#### Un point de départ très concret

J’ai commencé à vraiment cuisiner il y a environ deux ans, en vivant seul avec un budget serré. Je voulais bien manger et faire durer mon budget plus longtemps qu’en mangeant dehors.

J’ai commencé par le sucré et les desserts, puis je suis progressivement passé au salé. Les photos ici montrent quelques-unes de mes préparations.

##### Images et médias

[Tarte au chocolat.](<https://zaki.somehow.engineer/content/assets/cooking/chocolate-tart.webp>)

Tarte au chocolat maison avec une part découpée.

Crédit: Photos de ma cuisine.

[Tarte aux fraises.](<https://zaki.somehow.engineer/content/assets/cooking/strawberry-tart.webp>)

Tarte aux fraises maison dans une assiette.

Crédit: Photos de ma cuisine.

#### Suivre la recette, puis adapter

Pendant la première année, je suivais les recettes de près pour apprendre les bases. Maintenant que je comprends un peu mieux, je suis plus à l’aise pour les adapter.

Quand j’essaie quelque chose de nouveau, je préfère encore rester proche de la recette. J’aime avoir ce point de départ avant de décider ce que je vais changer.

##### Images et médias

[Cinnamon rolls, avant cuisson.](<https://zaki.somehow.engineer/content/assets/cooking/cinnamon-rolls.webp>)

Cinnamon rolls façonnés dans un plat, avant cuisson.

Crédit: Photos de ma cuisine.

[Cookies au chocolat et aux morceaux de chocolat blanc.](<https://zaki.somehow.engineer/content/assets/cooking/chocolate-cookies.webp>)

Cookies au chocolat et aux morceaux de chocolat blanc sur du papier cuisson.

Crédit: Photos de ma cuisine.

[Cheesecake au spéculoos. Un petit extrait de mes vidéos de cuisine, avec le texte d’origine à l’écran.](<https://zaki.somehow.engineer/content/assets/cooking/speculoos-cheesecake.mp4>)

Courte vidéo personnelle d’une part de cheesecake maison au spéculoos.

Crédit: Vidéo personnelle · 1,83 seconde · sans son.

#### Du sucré au salé

Les cuisines méditerranéenne et chinoise sont celles qui m’attirent le plus. En sortant des desserts, les plats salés ont pris leur place parmi les choses que j’aime préparer.

##### Images et médias

[Dinde, quartiers de pommes de terre et ratatouille, avec un bol de couscous au potiron.](<https://zaki.somehow.engineer/content/assets/cooking/savoury-meal.webp>)

Assiette de dinde, quartiers de pommes de terre et ratatouille, à côté d’un bol de couscous au potiron.

Crédit: Photos de ma cuisine.

#### Le Kung Pao, avec les cacahuètes grillées

Mon plat préféré reste le Kung Pao. Je me souviens d’une belle assiette à environ 2 € pendant mon premier voyage en Chine avec Recto Verso. L’équilibre entre le sucré, le salé et l’umami était tellement bon que ça m’est resté.

C’est aussi l’un des plats que je préfère faire chez moi. Les cacahuètes grillées sont indispensables : sans elles, je préfère préparer autre chose.


### Apprendre à faire mes vêtements

> Raccourcir mes pantalons, puis essayer de fabriquer mes propres pièces : une housse de sac Enka en prototype, un pantalon noir à coudre et une veste prévue ensuite.

Couture · Apprentissage en cours

Rubrique: Création

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#art/15>)

[English](<https://zaki.somehow.engineer/read/en/clothes.md>)

#### Commencer par des vêtements à ma taille

J’ai toujours aimé la mode, mais le budget et le manque de confiance me freinaient pour porter les pièces plus particulières qui me plaisaient. Mes pantalons avaient aussi souvent besoin d’être raccourcis, alors je passais par des retouches.

Cela finissait également par coûter cher. J’ai commencé à raccourcir mes pantalons moi-même il y a longtemps, puis à ajuster des vêtements trop grands. En avril 2026, j’ai eu envie d’essayer de fabriquer des pièces complètes.

#### Une housse pour les sacs de livraison Enka

J’ai fabriqué une première housse pour des sacs de livraison Deliveroo et Uber Eats existants, aux couleurs et au nom d’Enka. Elle donne au sac une identité Enka sans remplacer le sac lui-même.

Rayan, le CEO d’Enka, utilise ce prototype pour ses livraisons quotidiennes. Nous aimerions en fabriquer pour toute l’équipe de livraison quand Enka se développera. Pour le moment, cela reste un prototype utilisé au quotidien.

##### Images et médias

[Installation et fixation du prototype de housse Enka sur un sac de livraison existant.](<https://zaki.somehow.engineer/content/assets/clothes/enka-bag-cover.mp4>)

Une housse Enka rouge est placée sur un sac de livraison existant, attachée puis portée.

Crédit: Vidéo du prototype Enka fournie par Zaki · court extrait sans son.

#### Une autre version, avec mes détails

Mon projet actuel est une autre version d’un pantalon noir « tri-fold » acheté en Chine. Je n’ai pas réussi à retrouver la marque en ligne. J’aimerais ajouter deux poches et quelques détails personnels.

J’envisage des boutons-pression argentés au niveau des plis, avec des gravures. La couture reste à faire. Les images ci-dessous donnent des références pour la silhouette et les détails que j’ai en tête.

##### Images et médias

[Un exemple de silhouette à plis. C’est une référence de style ; mon pantalon d’origine a été acheté en Chine et la version que je souhaite faire est noire.](<https://zaki.somehow.engineer/content/assets/clothes/pleated-trouser-reference.webp>)

Photo produit externe de Beaulares montrant un pantalon ample à plis gris foncé porté par un modèle.

Crédit: [Beaulares · SILVANO TROUSER, GRAY. Image produit externe.](<https://beaulares.com/collections/bottoms/products/tri-fold-trouser-2-0>)

[Une inspiration externe pour les détails envisagés sur le pantalon. Référence produit A&A.](<https://zaki.somehow.engineer/content/assets/clothes/metal-fastener-reference.webp>)

Référence produit externe montrant plusieurs finitions de boutons-pression métalliques et leurs composants.

Crédit: [A&A · Référence de boutons-pression fournie par Zaki. Image produit d’origine.](<https://www.a-et-a.com/media/catalog/product/q/u/qupre0p390aaa-2.jpg>)

#### Continuer à apprendre, pièce par pièce

Les projets informatiques et la vie quotidienne ont mis la couture en pause. Quand je commencerai, j’aimerais me réserver deux ou trois jours d’affilée pour rester dedans et ne pas perdre le fil.

Une veste serait la prochaine pièce à essayer après le pantalon. J’en suis encore au début, mais je me vois continuer de temps en temps, en gardant une place pour la couture à côté de mes autres projets.


### Recto Verso

> Art, photographie et projets visuels au sein d’un collectif créatif.

Association · Coprésident avec Luna Martin · Depuis 2025

Rubrique: Création

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#art/24>)

[English](<https://zaki.somehow.engineer/read/en/recto-verso.md>)

#### En bref

| Indicateur | Valeur |
| --- | --- |
| Mon rôle | Coprésident |
| Depuis | 2025 |
| Avec | Luna Martin |
| Domaines | Art · Photographie · Image |

#### Une association pour l’art et l’image

Depuis 2025, je suis coprésident de Recto Verso avec Luna Martin. L’association réunit nos envies autour de l’art, de la photographie et des projets visuels. C’est aussi une façon pour moi de travailler avec des créatifs en dehors du logiciel.

Luna fait également partie des personnes avec qui j’ai travaillé sur la direction visuelle d’Enka. Recto Verso donne un espace à part à cet intérêt commun pour l’image et la création.

##### Images et médias

[L’identité visuelle de Recto Verso.](<https://zaki.somehow.engineer/content/assets/recto-verso/logo-with-text.png>)

Logo Recto Verso : deux formes géométriques entrelacées en noir, blanc et gris, avec le nom de l’association au-dessus et en dessous.

Crédit: Recto Verso · logo fourni de l’association.

#### Créer avec d’autres personnes

Plusieurs personnes ont participé à l’association au fil du temps. J’y suis coprésident et participant, avec l’envie d’apporter mes idées et d’apprendre auprès de personnes qui ont chacune leur pratique créative.

#### Un voyage en Chine

Nous sommes partis en Chine dans le cadre de Recto Verso. Le projet de mission portait sur les pratiques de design traditionnelles et contemporaines, pour découvrir d’autres approches que celles enseignées en France.

Porté par Luna, le projet prévoyait de passer par Pékin, Xianyang et Shanghai. Photos, vidéos, esquisses et entretiens faisaient partie des moyens envisagés pour documenter la recherche, avec des visites de studios et des ateliers. Ce sont les intentions du voyage ; les documents disponibles ne permettent pas de détailler chaque activité réalisée.

#### Où nous en sommes

Nous n’avons pas encore été publiés ni organisé d’exposition. Le groupe a évolué avec les arrivées et les départs, mais le voyage en Chine fait partie de ce que nous avons concrètement réalisé ensemble.

Recto Verso a sa place ici parce que la création collective fait aussi partie de ma vie : travailler sur des images, échanger des idées et explorer quelque chose à plusieurs.


## Hors travail

### Les jeux vidéo

> De Pokémon sur Game Boy Advance aux RPG, avec une PSP au passage.

Jeux vidéo · Consoles portables, PC et RPG

Rubrique: Hors travail

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#life/16>)

[English](<https://zaki.somehow.engineer/read/en/games.md>)

#### Grandir avec une console entre les mains

Ma première console était une Game Boy Advance. J’y jouais à Pokémon et Yoshi’s Island, puis j’ai eu une Nintendo DS et une PSP — la référence derrière ce portfolio. La PS2 et la Xbox 360 sont arrivées ensuite.

Il y avait aussi l’ordinateur familial. Je jouais à Minecraft et je passais beaucoup de temps en ligne sur Dofus, avant de me mettre à League of Legends.

#### Des jeux différents selon les périodes

J’étais surtout attiré par les jeux d’action : Assassin’s Creed et Call of Duty, mais aussi les jeux de course comme Need for Speed: Underground 2 et Most Wanted.

#### Jouer enfin dans ces mondes que je regardais

Avant de pouvoir jouer moi-même à des RPG comme Skyrim, je regardais les autres y jouer. J’ai passé beaucoup de temps sur les vidéos de Bob Lennon, à suivre le monde et ses histoires.

Divinity: Original Sin 2 a été le premier jeu de ce genre auquel j’ai eu l’occasion de jouer moi-même. J’ai adoré toute la richesse de son univers. Après avoir longtemps découvert ces mondes à travers l’écran de quelqu’un d’autre, je pouvais enfin en explorer un à ma façon. Baldur’s Gate 3 sera le prochain, quand je trouverai le temps.

#### Pourquoi Breath of the Wild m’a marqué

Les mondes ouverts peuvent me perdre quand je dois sans cesse me demander quoi faire ensuite ou aller chercher un guide. Avec Breath of the Wild, c’était différent. Je pouvais suivre ma curiosité et trouver naturellement mon chemin.

La musique, l’ambiance et le soin apporté aux détails me donnaient envie de revenir. Les combats me demandaient des efforts sans me donner envie d’abandonner. Tout fonctionnait si bien ensemble que je pouvais simplement profiter du jeu.

#### Toujours une raison d’y revenir

Je joue encore à League of Legends quelques fois par an. C’est la stratégie qui continue de m’intéresser, et c’est aussi ce qui m’a amené à suivre l’esport.


### L’esport

> Suivre la Karmine Corp depuis ses débuts et regarder League of Legends pour ces matchs qui donnent des frissons.

Esport · League of Legends

Rubrique: Hors travail

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#life/17>)

[English](<https://zaki.somehow.engineer/read/en/esports.md>)

#### Suivre la Karmine Corp

Je me suis mis à suivre l’esport sur League of Legends autour des débuts de la Karmine Corp. Je regardais déjà Kameto et Prime sur YouTube et Twitch, et je jouais moi-même à League. Soutenir leur équipe s’est fait naturellement.

Les premières victoires aux European Masters et toute l’ambiance autour de l’équipe m’ont accroché. Aujourd’hui, je supporte toujours la KC.

#### Ce que j’aime regarder

À côté de la KC, j’aime aussi regarder T1, notamment des joueurs comme Zeus et Keria. Ce qui m’intéresse, c’est la précision du jeu : les décisions individuelles, la coordination et la manière dont une équipe se déplace sur la carte.

#### T1–Gen.G, Worlds 2024

La demi-finale des Worlds 2024 contre Gen.G fait partie des matchs auxquels je repense encore. T1 a gagné 3–1, mais la quatrième manche a bien basculé : Gen.G a éliminé toute l’équipe de T1 et réduit l’écart en or, avant que T1 réussisse à conclure la série.

Sur cette série, Zeus a joué Gragas, Maokai et Jax. Keria est passé de Renata Glasc et Braum à Pyke pour la manche décisive. Un doublé de Zeus sur Jax a aidé T1 à prendre de l’avance, tandis que Keria apportait avec Pyke un choix de support beaucoup plus agressif pour cette dernière partie.

C’est ce que j’aime regarder : des joueurs capables d’apporter des choses différentes à une équipe, et un match qui reste tendu même quand un camp prend l’avantage. Celui-là m’a donné des frissons.

#### Spectateur, et un peu joueur aussi

Je n’ai jamais fait de compétition en esport. Mon meilleur classement sur League est Gold. Je tenterai peut-être Diamond un jour, mais pour l’instant je prends surtout plaisir à suivre la scène et à jouer de temps en temps.

#### Liens

- [T1–Gen.G · Game 4 highlights](<https://www.youtube.com/watch?v=yLj0KQFJTY0>)


### Les anime

> D’abord les BD et les mangas, puis Death Note m’a fait découvrir ce qu’une histoire animée pouvait me faire ressentir.

Anime · Histoires et autres univers

Rubrique: Hors travail

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#life/26>)

[English](<https://zaki.somehow.engineer/read/en/anime.md>)

#### Des mangas à une histoire suivie dans l’ordre

En grandissant, la lecture était surtout liée à l’école pour moi. Je préférais les BD et les mangas. Je regardais aussi Naruto à la télévision, mais les épisodes passaient dans le désordre et j’avais du mal à suivre l’histoire.

Découvrir les anime en ligne a changé ça. Je pouvais commencer au début et vraiment suivre une histoire d’un épisode à l’autre.

#### Le déclic avec Death Note

Death Note m’a vraiment marqué. Je ne m’attendais pas à être autant pris par une série animée : la façon de construire l’histoire, la musique, la tension et les émotions.

Jusque-là, mes références en animation étaient surtout des films comme Toy Story et des dessins animés comme Bob l’éponge. Death Note m’a montré une autre facette de l’animation, et les anime ont pris une grande place dans ce que je regardais.

#### Mes cinq préférés

Mon top cinq : Hunter × Hunter, Jujutsu Kaisen, Frieren: Beyond Journey’s End, JoJo’s Bizarre Adventure et L’Attaque des Titans.

#### Laisser une chance à Haikyu!!

Je pensais que les anime de sport n’étaient pas pour moi. Puis l’ami qui m’a fait découvrir le volley chez Decathlon m’a conseillé Haikyu!!.

J’ai essayé, et c’est devenu mon anime de sport préféré. Ça m’a donné encore plus envie de jouer, à une période où l’on commençait aussi à se retrouver pour du volley en dehors du travail.


### Le volley

> Une invitation sur la pause déjeuner chez Decathlon, puis du volley à Lille et à Montpellier.

Volley · De la pause déjeuner à une équipe

Rubrique: Hors travail

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#life/18>)

[English](<https://zaki.somehow.engineer/read/en/volleyball.md>)

#### Tout a commencé sur la pause déjeuner

Chez Decathlon, la pause du midi laissait souvent le temps de faire une heure de sport avant de manger. Quelques mois après mon arrivée, un ami du même étage m’a proposé de jouer au volley avec ses collègues. C’était ma première fois, et j’ai tout de suite aimé.

J’ai continué une à deux fois par semaine pendant le reste de mon passage chez Decathlon. Ce même ami m’a conseillé Haikyu!!, qui m’a donné encore plus envie de jouer. On a acheté un filet et commencé à retrouver des amis pour jouer sur l’herbe pendant l’été.

#### Continuer à Montpellier

En partant à Montpellier pour Enka, j’ai continué le volley. Il y avait les séances avec un club, et nous avions aussi monté notre équipe : Les Bouftous, en référence au Bouftou de Dofus. Entre les deux, je jouais environ deux fois par semaine.

Avec l’équipe, c’était plus compétitif. On avait fait un bon parcours, jusqu’à ce qu’une blessure à la cheville et le départ d’un coéquipier à Paris compliquent la suite.

#### Réceptionner, et trouver une autre façon d’attaquer

En match, je jouais surtout en réception. Je ne suis ni le plus grand ni celui qui saute le plus haut, alors quand j’attaque, j’essaie de placer le ballon là où les autres ne l’attendent pas plutôt que de frapper le plus fort possible.

#### Retrouver un terrain

Je ne joue pas en ce moment. Le travail et d’autres choses ont pris la priorité, mais j’ai envie de trouver un endroit pour reprendre. C’est un sport que j’aime vraiment, et j’aimerais lui refaire une place.


### La salle de sport

> Après plusieurs sports de combat, j’ai trouvé une pratique qui s’adapte à mes horaires. Aujourd’hui, je travaille surtout la régularité et la force.

Musculation · Régularité et force

Rubrique: Hors travail

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#life/19>)

[English](<https://zaki.somehow.engineer/read/en/gym.md>)

#### Des sports de combat à la salle

Plus jeune, j’ai fait deux ans de taekwondo, un an de kung-fu et deux ans de MMA. Après une pause dans les sports de combat, j’avais envie de retrouver une activité pour rester en forme.

J’ai commencé la salle après le bac, à une période où plusieurs amis s’y mettaient aussi. J’aimais pouvoir y aller quand ça m’arrangeait, sans horaire de cours imposé.

#### En faire une habitude

Pendant longtemps, je m’entraînais deux ou trois mois, puis je m’arrêtais quelques mois. Depuis environ un an, je suis beaucoup plus régulier. Maintenant, j’ai envie de garder ce rythme et de progresser en force.

#### Ce que je vise

J’aimerais réussir une traction lestée à 30 kg, cinq muscle-ups, un développé couché à 100 kg et un squat à 150 kg. Ce sont les objectifs vers lesquels j’avance.

Ensuite, je serais content de m’entraîner pour maintenir ce que j’aurai construit. J’aimerais aussi reprendre un sport de combat un jour.


### La suite

> Le freelance et Enka, une expérience à l’étranger et davantage de place pour créer avec les gens qui m’entourent.

Envies · Travail, voyages et création

Rubrique: Hors travail

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#life/20>)

[English](<https://zaki.somehow.engineer/read/en/whats-next.md>)

#### Pour le moment

Je me concentre sur le freelance et sur une activité de conseil que je développe avec des amis. Mon domaine principal est l’IA et l’automatisation, tout en travaillant ensemble sur nos différentes spécialités.

Je reste impliqué dans Enka et j’aimerais y reprendre un rôle plus actif quand les financements avanceront.

En parallèle, je recherche des opportunités professionnelles à Paris et à l’étranger.

#### Vivre un temps à l’étranger

J’aimerais vivre six mois ou plus à l’étranger, surtout en Chine. Mes voyages là-bas m’ont donné envie de connaître davantage le pays, au-delà d’un séjour. Le Japon, la Corée, le Vietnam et la Thaïlande m’intéressent aussi.

#### Faire des pièces pour mes proches

Un jour, j’aimerais avoir ma propre marque de vêtements. J’ai envie de fabriquer des pièces que j’aime porter et de pouvoir dire que je les ai faites quand quelqu’un me demande d’où elles viennent.

J’aimerais aussi faire des pièces particulières pour mes amis et ma famille, notamment pour Tatsumi et d’autres amis qui partagent leur travail publiquement. Être la personne vers qui ils se tournent pour leurs vêtements, c’est une idée qui me plaît.

#### Faire un court-métrage

J’aimerais progresser en cinéma et finir par faire un ou deux courts-métrages. Participer au Nikon Film Festival, et peut-être y gagner un prix, fait partie des choses que j’aimerais tenter un jour.

#### Garder de la place pour d’autres choses

J’ai envie de voir davantage du monde et d’essayer plus de choses. Quand je regarderai en arrière, j’aimerais avoir eu une vie bien remplie, même si tout ce que j’ai tenté n’a pas forcément été une réussite.


## Contact

### Échangeons

> Un projet, une collaboration ou une question sur quelque chose que j’ai créé : écrivez-moi.

zakigouizi@gmail.com

Rubrique: Contact

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#contact/21>)

[English](<https://zaki.somehow.engineer/read/en/email.md>)

#### Quelques mots

L’email est un moyen direct de discuter d’une idée ou d’une mission freelance.

#### Liens

- [Email me](<mailto:zakigouizi@gmail.com>)


### Sur LinkedIn

> Pour échanger et garder le contact.

Zaki Gouizi

Rubrique: Contact

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#contact/22>)

[English](<https://zaki.somehow.engineer/read/en/linkedin.md>)

#### Quelques mots

Vous pouvez me retrouver sur LinkedIn pour des échanges professionnels.

#### Liens

- [Open LinkedIn](<https://www.linkedin.com/in/zaki-gouizi/>)


### Sur GitHub

> Le côté public de mes projets et de mes expériences.

@zakich4n

Rubrique: Contact

[Ouvrir dans le portfolio interactif](<https://zaki.somehow.engineer/#contact/23>)

[English](<https://zaki.somehow.engineer/read/en/github.md>)

#### Quelques mots

Mes dépôts publics regroupent des outils personnels, des expériences et des forks de projets existants. Le portfolio précise le contexte et ma contribution.

#### Liens

- [Open GitHub](<https://github.com/zakich4n>)
