Bachelor en informatique, HE-Arc

Yanis Amani

Du pixel au registre.

Je construis chaque couche de la pile : sites web, produits complets, langages de programmation, un moteur JavaScript et un émulateur Windows pour Apple Silicon.

À propos

Je m'appelle Yanis Amani. Je prépare un Bachelor en informatique, spécialisation génie logiciel, à la HE-Arc à Neuchâtel, en Suisse.

En 2023, j'ai écrit JadeFlow, mon premier langage de programmation, simplement pour comprendre comment marchent les langages. Comprendre une couche révélait la suivante, alors j'ai continué à creuser : compilateurs, machines virtuelles, un moteur JavaScript, puis les instructions elles-mêmes.

Je me soucie des trucs ennuyeux. La gestion d'erreurs propre, des interfaces claires, du code qui se relit encore six mois après. J'ai assez cassé de choses en production pour savoir que « ça marche sur ma machine » n'est pas une stratégie de test. Maintenant je préfère aller lentement mais bien faire les choses.

En bref

Basé à
Neuchâtel, Suisse
Études
Bachelor en informatique, spécialisation génie logiciel, HE-Arc
Outils principaux
Rust, TypeScript
Priorités
Fiabilité, performance, sécurité

Stack

Les langages et outils que j'utilise, les plus solides d'abord.

Langages
Rust, TypeScript, Python, C / C++, Java & C#, PHP
Frontend
React, Next.js, Astro, Solid.js
Backend
Node.js, Docker, Kubernetes
Données & Stockage
Supabase / PostgreSQL, SQLite
Système
Systems Programming, Concurrency / Multithreading, Compiler Design

Produit

Des applications complètes : comptes, données, tâches de fond.

Application Web

MangaReader

Une bibliothèque de manga auto-hébergée en Rust. Elle synchronise les chapitres de plusieurs sources, les fusionne en une série, et sert un lecteur rapide avec comptes et progression synchronisée. Tourne sur un Raspberry Pi 4.

1 + 1
un conteneur Docker, un fichier SQLite
Marketplace Full-Stack

Ghaiari

Une marketplace de pièces auto pour la Libye, en ligne sur ghaiari.com. App mobile React Native pour les acheteurs, portail web Astro pour les vendeurs et administrateurs. Backend Supabase avec compatibilité véhicule, paiement par portefeuille, gestion des commandes et notifications push.

Langage

Comment le code prend du sens. Tout a commencé ici en 2023, et je n'ai jamais arrêté.

Compilateurs & Runtimes

YatsuScript

Mon propre langage de script et la VM à registres qui l'exécute, avec NaN-boxing, GC générationnel, closures, pattern matching et async/await. Il a un serveur de langage et un playground WebAssembly à essayer dans le navigateur.

Cinq langages depuis 2023

  1. 2023 JadeFlow Le premier, pour comprendre comment marchent les langages.
  2. 2023 ComfyScript Un langage pensé pour être agréable à écrire.
  3. 2024 Aspen Un langage de script simple.
  4. 2025 Lira Un langage accessible qui montre comment le code prend du sens.
  5. 2026 YatsuScript VM à registres, GC générationnel, async/await, son propre serveur de langage.

Runtime

Ce qui exécute ce sens : bytecode, objets, ramasse-miettes, JIT.

Compilateurs & Runtimes

v12

Un moteur JavaScript intégrable pour applications Rust, sans V8 ni QuickJS en dessous. Le runtime est le mien : bytecode à registres, NaN-boxing, classes cachées avec inline caches, GC mark-sweep et JIT Cranelift. Le crate oxc s'occupe du parsing.

1,414
tests réussis, mesuré le 6 oct. 2026
77.6%
de la suite Test262 language réussie

Machine

Le fond. Des instructions x86-64 réécrites en ARM64 pendant que le programme tourne.

Émulation & Systèmes · Co-développeur, WIE Project

WIE

Un émulateur x86-64 en mode utilisateur qui exécute des programmes Windows 64 bits sur macOS Apple Silicon. Un JIT Cranelift par blocs traduit le code, des handlers Rust répondent à l'API Win32, et les applications graphiques ouvrent de vraies fenêtres Cocoa. Avec un moteur de rendu logiciel Direct3D 9.

Notepad
vrai binaire Windows, avec menus et impression
7-Zip
crée et extrait de vraies archives .7z
0
Wine, machine virtuelle ou Windows nécessaire

00 Le fond de la pile

Fin de la descente. Dites bonjour.

Un projet, une idée, ou un problème bas niveau à discuter ? Je suis là.