Hedi Bannour

Hedi Bannour · KI-Produktentwickler und Gründer

Ich baue KI-Produkte. Diese Website ist eins davon.

Der Roboter rechts ist Player 2. Er hat angefangen, Tischtennis zu lernen, als du diese Seite geöffnet hast, und er beantwortet Fragen über mich. Spiel gegen ihn oder frag ihn.Der Roboter unten ist Player 2. Er hat angefangen, Tischtennis zu lernen, als du diese Seite geöffnet hast, und er beantwortet Fragen über mich. Spiel gegen ihn oder frag ihn.

  • JetztSoftwaretechnik an der Epitech, Frankreich, Abschlussjahrgang 2028. Praktikum bei SN Perfect.
  • Als NächstesCal State San Marcos, Kalifornien: 18. Januar bis 13. August 2027
  • ZielGründer und Engineering-Teams kennenlernen, die mit KI bauen
Player 2 fragen

Spiel gegen Player 2, meine KI

Autopilot 0 : 0 Player 2

Beweg die Maus über den Tisch, um zu spielen

Player 2 ist 00:00 alt. Können: Neuling

Player 2 kam zur Welt, als du diese Seite geöffnet hast. Niemand hat ihm das Spiel beigebracht: Er lernt, indem er allein übt, bisher 0 Bälle. Am Anfang ist er schlecht. Gib ihm 20 Sekunden. Wer zuerst 3 Punkte hat, gewinnt.

Player 2 ist ein neuronales Netz mit 57 Gewichten: 5 Eingänge, 8 tanh-Neuronen, 1 Ausgang für die Schlägergeschwindigkeit. Es trainiert in deinem Browser mit der Cross-Entropy-Methode: 16 Kandidaten pro Generation, die besten 4 bestimmen die nächste. Kein Datensatz, kein Server.

Generation
0
Rückschläge in Folge
0.0 / 20
Übungsbälle
0

Reduzierte Bewegung ist aktiv, deshalb warten die Spiele auf dich: Klick oder tippe auf einen Bildschirm, um zu starten.

3gegründete UnternehmenGründer-Logbuch55Arztpraxen vor Ort befragt, für eines davonTabeebi5Praktika, zwei davon im KI-BereichErfahrung33Projekte, 14 davon auf dieser Seite spielbarProjekte

Frag Player 2 über mich

Er antwortet nur auf Grundlage der Faktenkarten auf dieser Website und zeigt, welche Karte er benutzt hat. Keine Quelle, keine Antwort.

Gerade aktiv: Kartensuche, ohne Sprachmodell.

Hallo. Ich weiß, was Hedi gegründet hat, wo er gearbeitet hat, was er gebaut hat und wann er in Kalifornien ist. Den Rest rate ich nicht.

Gründer-Logbuch

Jedes Unternehmen, das ich gegründet habe, mit seinem Status. Zwei wurden eingestellt, und eines habe ich verlassen.

  1. Aug. – Okt. 2026Ausgestiegen

    Nearchon

    Mitgründer und CTO

    Ein KI-Lernsystem für AP Physics C: Mechanics. Es verfolgt den Lösungsweg der Schüler Schritt für Schritt, statt nur das Endergebnis zu prüfen.

    • Produkt und Architektur
    • Das System rund um das Sprachmodell: Kontext, Tools, Evaluation
    • Customer Discovery, Suche nach Tutoren, erste Tests mit Schülern

    Warum ich ausgestiegen bin Ich bin ausgestiegen, nachdem ich das Team mitgegründet und geholfen hatte, die erste Version des KI-Tutors zu bauen und zu testen. Das Team ist weiterhin aktiv; wo das Produkt heute steht, weiß ich nicht.

  2. Apr. – Aug. 2026Eingestellt

    Tabeebi

    Gründer

    Praxisverwaltungssoftware für niedergelassene Ärzte in Tunesien.

    • 55 Arztpraxen vor Ort befragt
    • Das Produkt fast fertig gebaut: Next.js, Supabase, Hintergrundjobs, die Claude API

    Warum eingestellt Ich habe fast die ganze Arbeit getragen. Nach viel Zeit und Geld, ohne dass sich an der Aufteilung der Arbeit etwas änderte, habe ich beschlossen aufzuhören, bevor wir versucht haben, es zu verkaufen.

  3. Nov. 2025 – Apr. 2026Eingestellt

    Émile

    Gründer

    Eine Preis-Engine, ein CRM und ein Operations-Dashboard für Agenturen für Kurzzeitvermietung.

    • Komplett gebaut und deployt: FastAPI, Supabase
    • Viele Agenturen für Kurzzeitvermietung angerufen, um die Idee zu testen

    Warum eingestellt Keine der Agenturen, die wir angerufen haben, wollte weitermachen, und als unsere Praktika begannen, hatten wir keine Zeit mehr dafür. Danach kam Tabeebi.

  4. 2024 – 2025

    Frühere Experimente

    Onlineshops auf Shopify, die ich aufgebaut und betrieben habe: Produktseiten, Checkout, Akquise-Kampagnen. Und ein Voice-Agent für Telefonate, der Anrufer qualifiziert und auf Einwände eingeht, gebaut mit Rasa, Spracherkennung und Sprachsynthese.

Weiter?9Drei Durchläufe sind zu Ende. Ich habe jedes Mal auf Weiter gedrückt.

Erfahrung

Fünf Praktika und freiberufliche Arbeit, so beschrieben wie in meinem öffentlichen LinkedIn-Profil.

  1. Sept. 2026 – heute

    SN Perfect

    Praktikant Softwareentwicklung

    Ich baue das interne ERP des Unternehmens, eines Reinigungsdienstleisters mit mehreren Standorten: Personal und Verträge, Kundenstandorte, ein mobiler Bereich für Objektleiter vor Ort, Monatsabschluss. Basierend auf Frappe, ERPNext und Frappe HR. Als Nächstes: KI-Funktionen.

    FrappeERPNextPython

  2. Apr. – Aug. 2026

    Meosis

    Praktikant Softwareentwicklung · Horbourg-Wihr, Frankreich

    Ich habe ein Tool gebaut, das mit KI Website-Mockups erzeugt und in Terminen mit Interessenten eingesetzt wird, und einen KI-gestützten Weg vom Kundenbriefing zur WordPress-Seite aufgesetzt. Außerdem: Fixes am hauseigenen CRM und ERP in PHP, WordPress-Multisite, Servermigrationen.

    LLM promptingFigma MakeWordPressPHP

  3. Sept. 2025 – Jan. 2026

    DataScale AI

    Praktikant KI-Engineering · Start-up, Dreierteam

    Echtzeit-Tracking dessen, was Käufer in einem Onlineshop tun (Seiten, Klicks, Warenkorb), ein Kaufabsicht-Score von heiß bis kalt, ein Scraper, der den Katalog des Kunden strukturiert, und ein Chatbot, der sich an den Besucher anpasst.

    PythonLangFlowDocker

  4. Sept. – Dez. 2024

    Infolog

    Praktikant .NET-Entwicklung

    Ein industrielles CRM in .NET Core und C# für einen Hersteller von Wundverbänden: das Datenmodell und die Geschäftslogik der Produktionskette, vom Wareneingang bis zur Qualitätskontrolle.

    .NET CoreC#Entity Framework

  5. Juli – Sept. 2024

    SN Perfect

    Praktikant interne Tools · Paris

    Tools, die Daten aus Bildern auslesen und nach Excel exportieren, und automatisches Ausfüllen von Formularen, um die manuelle Eingabe zu ersetzen.

  6. 2023 – heute

    Freiberuflich

    Selbstständiger Entwickler

    WordPress-Websites und Web-Tools für Privatkunden und kleine Unternehmen: Funktionen, Integrationen, Automatisierungen.

Projekte

Ein Produkt außerhalb der Schule, dann die Epitech: eine fünfjährige französische Ingenieurschule, an der man durch Bauen lernt. Ich habe 33 Projekte ausgewählt. 14 sind hier spielbar.

Produkt · außerhalb der Schule gebaut

ZooPass

Ein Handy-Guide für den Zoo Mulhouse. Er plant deinen Besuch, zeichnet die Route auf der Karte, und ein Chatbot beantwortet deine Fragen und zeigt, woher jede Antwort stammt.

Eine PWA in React und TypeScript auf Cloudflare Pages. Der Chatbot ist eine RAG-Pipeline: Vektorsuche in Astra DB plus Stichwortsuche, ein Ähnlichkeitsschwellenwert von 0,70 und die Quellen zu jeder Antwort.

TypeScriptTeam aus 22025–26

Die Antworten von Player 2 auf dieser Website folgen derselben Idee.

Was ich gebaut habe

  • Projekt angelegt und online gestellt
  • Das Gehirn des Chatbots: wie er sucht und wie er antwortet
  • Die Seite des Chatbots überarbeitet
  • Projekt angelegt und auf Cloudflare Pages deployt
  • Die Chat-Funktion und der Großteil des RAG: Astra DB, der Ähnlichkeitsschwellenwert, die System-Prompts
  • Kontextbezogene Aktionen und Schnellvorschläge in der API, und eine überarbeitete KI-Seite

Probier einen Mini-GuideEin erfundener Plan, nicht der echte Zooplan.

Weg–Zu Fuß–Gesperrte Wege0

Dijkstra auf dem Wegegraphen · Antwort nur, wenn die Wortübereinstimmung 0,50 erreicht

Frag den GuideEr antwortet nur aus seinen Karten und zeigt, welche er benutzt.

    Die Karten des Guides
    • SprachenZooPass spricht vier Sprachen: Französisch, Englisch, Deutsch und Spanisch.
    • Dein BesuchsplanZooPass schlägt einen Besuchsplan vor, passend zu deinem Profil und der Zeit, die du hast.
    • Weg auf dem PlanDer Plan zeichnet deinen Weg entlang der Zoowege und wählt den kürzesten.
    • VeranstaltungenEine Seite zeigt die Veranstaltungen des Tages.
    • QuellenJede Antwort des Chatbots kommt mit den Dokumenten, aus denen sie geschrieben wurde.
    • Dieser Demo-PlanDer Plan auf dieser Seite ist erfunden: ein Eingang und die Zonen A bis F. Es ist nicht der echte Zooplan.

    So wird gespielt

    1. Wähl Start und Ziel auf dem Plan oder in den Listen. Der kürzeste Weg wird eingezeichnet.
    2. Tipp einen Weg an, um ihn zu sperren. Die Route führt drumherum.
    3. Stell dem Guide eine Frage. Unter der Übereinstimmungsschwelle sagt er, dass er es nicht weiß.

    Im Browser nachgebaut, mit einem erfundenen Plan. Bei ZooPass hat mein Teamkollege den Plan und den Routenplaner gebaut; mein Teil war der Chatbot. Er durchsucht die offiziellen Dokumente und behält nur Passagen mit einer Ähnlichkeit von 0,70 oder mehr. Dieses Feld vergleicht nur Wörter mit sechs Karten.

    Schulprojekt · spielbar

    R-Type

    Ein Weltraum-Shooter für mehrere Spieler, gebaut von einem Fünferteam. Ich habe den Level-Editor gebaut: das Tool, das festlegt, wo die Gegner auftauchen.

    Ein Netzwerk-Remake des Arcade-Shooters in C++20, von einem Fünferteam: eigene ECS-Engine, ein autoritativer Spielserver, ein binäres UDP-Protokoll.

    C++Team aus 5Epitech, 2025–26

    Du0Player 20Welle01

    Level-EditorZeichne hier Gegner. Sie fliegen oben ein, von rechts nach links.

    wave.json0 Gegner, vereinfachtes Format

    So wird gespielt

    1. Fahr mit der Maus über den Bildschirm, um das weiße Schiff zu steuern.
    2. Player 2 in Orange gibt dir Deckung.
    3. Zeichne Gegner ins Raster: Sie kommen in genau dieser Form.

    Was ich gebaut habe

    • Der Level-Editor und das Laden seiner Levels im Spiel
    • Automatische Prüfungen bei jeder Codeänderung im Team
    • Die schriftliche Anleitung, wie Spieler mit dem Server kommunizieren
    • Der Map-Editor in Python, mit JSON-Export
    • Laden der JSON-Levels im Spiel und auf dem Server
    • Die CI-Pipeline auf GitHub Actions
    • Dokumentation von Protokoll und Editor, und der serverseitige Speed-Boost

    Das Raster ist eine Browser-Version des Editors, den ich geschrieben habe. Das Original ist ein Desktop-Tool.

    Schulprojekt · spielbar

    Arcade

    Eine Spielkonsole als Software. Dasselbe Spiel kann während des Spielens sein Aussehen wechseln. Ich habe das Snake-Spiel und seine drei Looks geschrieben.

    Eine Retro-Spieleplattform in C++17. Spiele und Grafik-Backends sind Shared Libraries, die zur Laufzeit mit dlopen geladen werden.

    C++Team aus 2Epitech, 2024–25

    Gezeichnet mit SFML
    Äpfel0Rekord0

    So wird gespielt

    1. Klick auf einen Look: Glatt, Pixel oder Text. Das Spiel läuft weiter.
    2. Player 2 spielt. Drück eine Pfeiltaste, um zu übernehmen.
    3. Auf dem Handy wischst du über den Bildschirm.

    Was ich gebaut habe

    • Das Snake-Spiel
    • Die erste Version seiner drei Looks
    • Die Grafiken und die Anleitung für andere Entwickler
    • Snake: Tastatursteuerung, durchlässige Ränder, Punktestand
    • Die erste Version aller drei Renderer: SFML, SDL2, ncurses
    • Sprites für SFML und SDL2, und die Schnittstellendokumentation

    Die gepunktete Linie ist der Weg, den Player 2 zum Apfel geplant hat.Für den Browser neu gezeichnet: ein Spielzustand, drei Renderer. Player 2 plant seinen Weg mit einer Breitensuche.

    Schulprojekt · spielbar

    Jetpack

    Ein Rennen für zwei Spieler über das Netzwerk. Ich habe den Schiedsrichter geschrieben: den Server, der weiß, wo jeder Spieler ist, wer welche Münze genommen hat und wer wo angestoßen ist.

    Ein Multiplayer-Runner. Ein TCP-Server in C führt das Spiel mit poll() aus, und ein grafischer Client in C++ zeigt es an.

    CTeam aus 3Epitech, 2024–25

    Münzen0Geschaffte Levels0

    Was der Schiedsrichter gerade weiß

    Position
    0, 0
    Münzen
    0
    Status
    Im Flug

    Map-Dateie = Hindernis, c = Münze

    Server-Logein Tick alle 100 ms

    So wird gespielt

    1. Halt die Maustaste auf dem Bildschirm oder die Leertaste gedrückt, um zu steigen.
    2. Loslassen zum Sinken.
    3. Schnapp dir die Münzen, weich den Lasern aus.

    Was ich gebaut habe

    • Der Server und seine Verbindungen zu den Spielern
    • Das Einlesen der Level-Datei
    • Münzen, Hindernisse und Kollisionen
    • Die Entscheidung, wer gewinnt und wer verliert
    • Der Server: Verbindungen und Spieler, mit poll()
    • Laden der ASCII-Map und Skalierung auf 1920 × 1080
    • Münzen, Hindernisse, Kollisionen und Scrolling
    • Sieg- und Niederlagebedingungen

    Der Kasten unter dem Spiel zeigt die Zahlen des Schiedsrichters live.Die Panels unter dem Spiel zeigen die Serverseite. Die Nachrichtennamen sind echt; die Werte werden hier berechnet.

    Schulprojekt · spielbar

    Zappy

    Ein Netzwerkspiel: KI-Spieler laufen über eine kleine runde Welt, sammeln Nahrung und reden miteinander. Jeder Zug ist ein Textbefehl an einen einzigen Server.

    Ein TCP-Server in C mit einer poll()-Schleife, KI-Clients in C++ und ein 3D-Client mit raylib. Jeder Client hat eine Warteschlange mit bis zu 10 Befehlen; jeder läuft nach einer Verzögerung, die die Frequenz (-f) festlegt.

    CTeam aus 5Epitech, 2024–25

    ServeransichtEine Warteschlange pro Client, 10 Plätze. Der erste Befehl läuft, wenn sein Balken voll ist.

    Servertempo
    Deine Nahrung0Nahrung von Player 20Zeiteinheiten0

    Server-Log← von einem Client · → an einen Client · GUI = Zeile für die 3D-Ansicht

    So wird gespielt

    1. Drück eine Pfeiltaste oder einen Button: Dein Befehl kommt in die blaue Warteschlange.
    2. Der Server führt ihn aus, wenn seine Zeit um ist. Lauf zur goldenen Nahrung und heb sie auf.
    3. Schick mehr als 10 Befehle auf einmal, und der Server antwortet ko.

    Was ich gebaut habe

    • Der Server, mit dem sich alle KI-Spieler und die 3D-Ansicht verbinden.
    • Die Warteschlange der Befehle jedes Spielers, mit ihrem Timing.
    • Vorwärtsgehen und eine Nachricht an alle anderen Spieler senden.
    • Serverstrukturen, Socket und poll()-Schleife, Client-Verbindung und Team-Prüfung, Argument-Parsing.
    • Befehle des Grafikprotokolls: msz, tna, bct, mct, ppo, pnw.
    • Die verzögerte Befehlswarteschlange jedes Clients: 10 Plätze, Laufzeit aus der Frequenz.
    • Forward, Broadcast und Connect_nbr, Behebung von Speicherlecks und eine Netzwerkklasse im 3D-Client.

    Für den Browser nachgebaut: Eine vereinfachte Kopie der Serverregeln läuft auf dieser Seite. Der echte Server ist ein C-Programm, das per TCP mit seinen Clients spricht.

    Schulprojekt · spielbar

    Corewar

    Zwei kleine Programme, Champions genannt, teilen sich einen Speicherblock und versuchen, länger durchzuhalten als das andere. Ein Programm, das nicht mehr „live“ sagt, scheidet aus.

    Eine virtuelle Maschine in C: Sie lädt kompilierte Champions (.cor), setzt sie in eine gemeinsame, ringförmige Arena und führt ihre Befehle Zyklus für Zyklus aus, mit einer Verzögerung pro Befehl und einer regelmäßigen live-Prüfung.

    CTeam aus 2Epitech, 2023–24

    Dein Champion

    Befehl unter deinem ersten Prozess

    Adresse
    -
    Bytes
    -

    -

    Zyklus0Zyklen bis zum Aus0Prozesse0Letztes live-

    Speicher rund um deinen Prozess

    So wird gespielt

    1. Wähl einen Champion. Player 2 nimmt den anderen.
    2. Sieh zu, wie beide in den gemeinsamen Speicher schreiben. Ein Programm, das nicht mehr live sagt, fliegt raus.
    3. Drück Pause, dann Schritt, um den Befehl zu lesen, den dein Programm als Nächstes ausführt.

    Was ich gebaut habe

    • Jeden Champion aus seiner Datei laden und in den gemeinsamen Speicher setzen.
    • Jeden Befehl aus den Bytes lesen und nach seiner Verzögerung ausführen.
    • Festhalten, wer live gesagt hat, um zu wissen, wer noch im Spiel ist.
    • Einlesen der .cor-Champions und Umrechnung zwischen Dezimal und Hexadezimal.
    • Erstellen der Arena und Platzieren der Champions.
    • Dekodieren der Befehle, Speichern jedes live, und die Befehle and, or, xor und aff.
    • Befehlsverzögerungen und Fehlerbehandlung.

    Für den Browser nachgebaut, mit kleinerem Befehlssatz und drei für diese Seite geschriebenen Champions. Die echte Maschine ist in C geschrieben und führt kompilierte .cor-Dateien aus.

    Schulprojekt · spielbar

    Whanos

    Eine Maschine, die Apps von selbst baut. Push deinen Code: Sie erkennt die Sprache, baut ein Docker-Image und speichert es, startbereit.

    Ein CI/CD-Setup: Jenkins erkennt bei jedem neuen Commit die Sprache eines Repositorys, baut ein Image aus einem Base- oder Standalone-Dockerfile und pusht es in eine private Registry. Ansible installiert Jenkins und die Registry.

    DockerJenkinsTeam aus 2Epitech, 2025–26

    Images0Gestoppt0

    Dein RepositoryWähl eine Sprache oder hak selbst Dateien an.

    Dateien im Repository

    Jenkins-Log

    So wird gespielt

    1. Wähl eine Sprache oder hak die Dateien deines Repositorys an.
    2. Push einen Commit und verfolge jeden Schritt im Jenkins-Log.
    3. Probier zwei Sprachen auf einmal, keine Sprachdatei oder zweimal denselben Commit.

    Was ich gebaut habe

    • Die zehn Docker-Images: ein Base- und ein Standalone-Image für jede der fünf Sprachen
    • Das Befunge-Image, das seinen eigenen Interpreter aus dem Quellcode baut
    • Die Anleitung, wie man die Images baut und benutzt
    • Zehn Dockerfiles, Dockerfile.base und Dockerfile.standalone, für C, Java, JavaScript, Python und Befunge
    • Multi-Stage-Builds: in einem Image kompilieren, in einem kleineren ausführen; cfunge für Befunge mit cmake gebaut
    • docs/docker_image.md: Build-Befehle, Regeln für jedes Image, Aufbau des Repositorys

    In deinem Browser nachgespielt: Nichts wird wirklich gebaut. Die Erkennungsregeln, die Wahl des Builds und die Dockerfile-Schritte stammen aus dem Projekt. Der Kubernetes-Deployment-Schritt fehlt, weil er nicht fertig wurde.

    Schulprojekt · spielbar

    Raytracer

    Ein Programm, das 3D-Bilder zeichnet, indem es Lichtstrahlen folgt. Du beschreibst eine Szene in einer Textdatei; es liest sie und malt das Bild Pixel für Pixel.

    Ein Raytracer in C++20. Eine libconfig++-Szenendatei (Kamera, Primitive, Lichter) wird in eine Scene eingelesen; jedes Pixel schickt einen Strahl, findet das nächste Objekt und beleuchtet es mit Umgebungslicht und gerichtetem Licht. Die Ausgabe ist ein PPM-Bild.

    C++20libconfig++Team aus 4Epitech, 2024–25

    Durchgang1/4Strahlen0

    scene.cfgBearbeite sie: Das Bild folgt.

    So wird gespielt

    1. Ändere eine Zahl in der Szenendatei. Das Bild wird neu gezeichnet, erst grob, dann scharf.
    2. Mach die Datei absichtlich kaputt: Der Fehler zeigt die Zeile und was falsch ist.
    3. Player 2 bewegt das Licht, eine Kugel und die Kamera, bis du anfängst zu tippen.

    Was ich gebaut habe

    • Der Teil, der die Szenendatei liest: Kamera, Kugeln, Ebenen und Lichter
    • Die Scene-Klasse, die Kamera, Formen und Lichter enthält
    • Szenen-Parsing mit libconfig++: Kamera (Auflösung, Position, Rotation, Sichtfeld), Kugeln, Ebenen, Umgebungslicht und gerichtete Lichter
    • Die Scene-Klasse: ein Container für Kamera, Primitive und Lichter
    • Formen, erzeugt über den PrimitiveBuilder des Teams

    Im Browser nachgebaut. Das Szenenformat folgt dem Parser des Projekts. Die zusätzlichen Prüfungen und der kleine Renderer, der das Bild zeichnet, wurden für diese Seite geschrieben, mit Schatten, die das Original nicht hatte.

    Schulprojekt · spielbar

    Minishell

    Eine Kommandozeilen-Shell wie in einem Terminal. Gib einen Befehl ein: Die Shell findet das Programm, führt es aus und zeigt das Ergebnis.

    Eine tcsh-ähnliche Shell in C: eine Prompt-Schleife mit getline, Programme, die über PATH gefunden und mit fork, execve und waitpid gestartet werden, Built-ins, Umleitungen und eine Pipe mit dup2.

    CAlleinEpitech, 2023–24

    Tab ergänzt · ↑ ↓ Verlauf · Strg+L leert

    Eingebaute Befehlecd · env · setenv · unsetenv · exit

    Programme in /binls · cat · echo · pwd · grep · wc · head · sort · clear

    So wird gespielt

    1. Klick ins Terminal, gib einen Befehl ein und drück Enter.
    2. Leite die Ausgabe mit > oder >> in eine Datei oder mit | an einen anderen Befehl.
    3. Tipp cat << END, ein paar Zeilen, dann END: Die Shell liest sie als Eingabe.

    Was ich gebaut habe

    • Die Prompt-Schleife: eine Zeile lesen, ausführen, den Prompt wieder anzeigen.
    • Programme in den Ordnern von PATH finden und starten.
    • Die eingebauten Befehle: cd, env, setenv, unsetenv, exit.
    • Ausgaben in Dateien schreiben, nach << getippten Text lesen und die Ausgabe eines Befehls an den nächsten weitergeben.
    • Prompt „$> “ mit getline gelesen; fork, execve und waitpid; eine Meldung, wenn das Programm abstürzt (Segmentation fault, Floating exception).
    • cd mit Pfad, ohne Argument (HOME) und cd -, mit Aktualisierung von PWD und OLDPWD; setenv mit Namensprüfung, unsetenv, env, exit.
    • Umleitungen > und >> und das Heredoc << mit dup2 und pipe; das Trennzeichen ;.
    • Eine Pipe zwischen zwei Befehlen und meine eigene printf-Bibliothek.

    Für den Browser nachgebaut: Eine kleine Kopie der Shell-Regeln läuft auf dieser Seite, mit einem simulierten Dateisystem und ein paar Programmen. Die echten Shells sind C-Programme, die echte Programme starten.

    Schulprojekt · spielbar

    Wolfram

    Eine Reihe von Zellen, in der jede Zelle je nach ihren beiden Nachbarn lebt oder stirbt. Eine einzige Zahl, die Regel, entscheidet alles, und einfache Regeln zeichnen überraschende Muster.

    Ein elementarer zellulärer Automat in Haskell: Kommandozeilenoptionen (--rule, --start, --lines, --window, --move), die nächste Generation nach jeder Regel und eine zentrierte Ausgabe mit „*“.

    HaskellAlleinEpitech, 2024–25

    Regel30

    Die Regel, Zelle für ZelleFür jede Gruppe aus drei Zellen lebt die Zelle darunter oder nicht. Klick eine an, um sie umzuschalten.

    Probier

    Was das Terminal ausgibt (erste Zeilen)

    So wird gespielt

    1. Beweg den Schieberegler oder wähl eine Regel: 30 wirkt zufällig, 90 zeichnet Dreiecke, 110 lässt Strukturen wachsen.
    2. Klick die kleinen Kästchen an, um einen Teil der Regel umzuschalten.
    3. Oder tipp den Befehl selbst, mit denselben Optionen wie das echte Programm.

    Was ich gebaut habe

    • Die Optionen nach dem Programmnamen einlesen und falsche ablehnen.
    • Jede neue Zellenzeile aus der Zeile darüber berechnen.
    • Die Zeilen zentriert im Fenster ausgeben, mit Sternchen.
    • Argument-Parsing: --rule (Pflicht), --start, --lines, --window (Standard 80), --move; Exit-Code 84 bei einem falschen Argument.
    • Die nächste Generation für die Regeln 30, 90 und 110.
    • Die Ausgabeschleife und das Setup des Stack-Projekts.

    Für den Browser nachgebaut. Das ursprüngliche Haskell-Programm akzeptiert die Regeln 30, 90 und 110; diese Seite führt jede Regel von 0 bis 255 aus.

    Schulprojekt · spielbar

    myPaint

    Ein kleines Malprogramm, zu zweit gebaut. Du zeichnest mit einem Stift auf einer dunklen Tafel, wählst Farbe und Größe, radierst, öffnest die Hilfe und speicherst die Zeichnung als Bild.

    C mit CSFML. Ein Fenster mit 1920 × 1080 und einer Werkzeugleiste. Der Stift stapelt Kreise, solange die Taste gedrückt ist; der Radierer malt in der Tafelfarbe. Die Tafel wird als Bilddatei gespeichert.

    CCSFMLTeam aus 2Epitech, 2023–24

    Striche0

    So wird gespielt

    1. Zeichne auf die Tafel: Player 2 tritt zur Seite.
    2. Wechsle in der Werkzeugleiste Farbe oder Größe, oder nimm den Radierer.
    3. Speichere als PNG, um deine Zeichnung zu behalten.

    Was ich gebaut habe

    • Das Fenster und die Buttons der Werkzeugleiste
    • Die Auswahl von Farbe und Stiftgröße, und der Radierer
    • Der Hilfebildschirm und das Speichern der Zeichnung als Bild
    • CSFML-Fenster und Werkzeugleiste: ein Sprite pro Button, Hit-Test beim Klick
    • Acht Farben, drei Stiftradien (5, 18, 35 px), ein Radierer, der rgb(22, 22, 22) malt
    • Hilfe-Overlay ein- und ausblendbar, Tafel aus dem Fenster in eine Bilddatei kopiert

    Für den Browser in TypeScript nach der C-Version nachgebaut: gleiche Farben, Größen und Radierer. Hier füllt der Stift die Lücken zwischen den Kreisen, und die Datei ist ein datiertes PNG statt test.jpg.

    Schulprojekt · spielbar

    Cryptography

    Ein Kommandozeilen-Tool in C, das Text mit drei Algorithmen ver- und entschlüsselt, zu dritt gebaut. Mein Teil: XOR, die Hex-Umwandlungen und der Einstiegspunkt, der den Algorithmus wählt.

    my_pgp in C liest die Standardeingabe. Ich habe XOR im Block- und Stream-Modus mit Little-Endian-Bytereihenfolge geschrieben, die Umwandlung von Hex in Bytes und zurück, den Eingabeleser und main, das an XOR, AES oder RSA weiterleitet.

    CTeam aus 3Epitech, 2025–26

    Byte für Byte: Nachrichtenbyte (in seinem Block umgedreht) XOR Schlüsselbyte

      Verschlüsselt (Hex)

      —

      So wird gespielt

      1. Gib eine Nachricht und einen Schlüssel ein.
      2. Wechsle zwischen Block- und Stream-Modus und sieh zu, wie sich jedes Byte ändert.
      3. Entschlüssle es: XOR mit demselben Schlüssel ergibt wieder die Nachricht.

      Was ich gebaut habe

      • Die XOR-Verschlüsselung, im Block- und im Stream-Modus
      • Text in Hexadezimal umwandeln und zurück
      • Der Einstiegspunkt, der jeden Befehl an den richtigen Algorithmus schickt
      • xor_block und xor_stream: Bytes pro Block umgedreht (Little Endian), dann XOR mit dem Schlüssel
      • Der Stream-Modus füllt den letzten Block mit Nullen auf und entfernt sie beim Entschlüsseln
      • hex_to_bytes und print_hex, ein dynamischer stdin-Leser, main mit Weiterleitung an xor, aes und rsa

      Für den Browser nach der C-Version nachgebaut, nur XOR. XOR mit einem kurzen, wiederholten Schlüssel ist eine Lehrbuch-Chiffre: Sie schützt keine echten Geheimnisse.

      Hackathon · spielbar

      Nuit de l'Info

      Eine Hackathon-Nacht im Achterteam: ein Webspiel über den Ozean und den menschlichen Körper. Ich habe die Morse-Eingabe des Login-Bildschirms gebaut, absichtlich ein bisschen nervig.

      Angular 19, Standalone-Komponenten. In der Login-Komponente habe ich die Morse-Eingabe geschrieben: Die Zeitpunkte von Drücken und Loslassen der Taste ergeben einen Punkt, einen Strich oder eine Buchstabenpause, live mit einer Morsetabelle dekodiert. Außerdem habe ich die Route eingebunden.

      AngularTypeScriptTeam aus 82024–25

      Spielzeug-Login (nichts wird gesendet oder gespeichert)

      Name, in Morse

      Halt die Taste gedrückt, um zu tippen

      Morsetabelle

      • A·–
      • B–···
      • C–·–·
      • D–··
      • E·
      • F··–·
      • G––·
      • H····
      • I··
      • J·–––
      • K–·–
      • L·–··
      • M––
      • N–·
      • O–––
      • P·––·
      • Q––·–
      • R·–·
      • S···
      • T–
      • U··–
      • V···–
      • W·––
      • X–··–
      • Y–·––
      • Z––··

      So wird gespielt

      1. Halt die Taste gedrückt: kurz für einen Punkt, länger für einen Strich.
      2. Halt sie eine Sekunde oder länger, um den Buchstaben abzuschließen.
      3. Lies deinen Namen im Feld und melde dich dann an (es ist ein Spielzeug).

      Was ich gebaut habe

      • Die Morse-Eingabe auf dem Login-Bildschirm
      • Kurz drücken für einen Punkt, lang für einen Strich, sehr lang für den nächsten Buchstaben
      • Die Live-Übersetzung in Buchstaben und die Rücktaste, um einen Fehler zu korrigieren
      • keydown und keyup auf der Leertaste messen den Druck: unter 200 ms ein Punkt, unter 800 ms ein Strich, ab 1 s eine Buchstabenpause
      • Eine Morsetabelle, umgedreht zur Nachschlagetabelle, die bei jedem Druck Buchstabe für Buchstabe dekodiert
      • Template und Style der Komponente sowie die Route, später auf provideRouter umgestellt

      Für den Browser nach der Angular-Version nachgebaut, mit denselben Zeiten. Die Buttons Punkt, Strich und Nächster Buchstabe gibt es nur auf dieser Seite. Es gibt kein Konto und kein Passwort.

      Alle 33 Projekte

      Was jedes ist und welchen Teil ich geschrieben habe.

        Hedi Bannour

        Über mich

        Ich mag den ganzen Weg: das Problem finden, die Lösung bauen und sie Menschen in die Hand geben.

        Ich habe Mathematik und Informatik an der Universität Straßburg studiert und bin 2023 an die Epitech gewechselt, um durch Bauen zu lernen. Seitdem: 33 Projekte, fünf Praktika, freiberufliche Arbeit und drei gegründete Unternehmen. Ich spreche Französisch, Arabisch und Englisch.

        Vor dem Code In der Schulzeit am Lycée Pierre Mendès France in Tunis habe ich einen kleinen Onlineshop betrieben: Bestellungen über Facebook, Lieferung von Hand, Produkte auf Anfrage über mein Netzwerk beschafft. Nach meinem naturwissenschaftlichen Abitur 2020 habe ich mit Mathematik und Informatik an der Universität Straßburg begonnen.

        1. 2016–20Lycée Pierre Mendès France, Tunis, und ein erster Onlineshop
        2. 2020–23Universität Straßburg, Mathematik und Informatik
        3. 2023–Epitech, Softwaretechnik, Abschlussjahrgang 2028
        4. 2023–Freiberuflicher Entwickler
        5. 2024–26Fünf Praktika: SN Perfect, Infolog, DataScale AI, Meosis, dann wieder SN Perfect
        6. 2025–26Gründer: Émile, dann Tabeebi; Mitgründer von Nearchon
        7. 2027Austausch an der Cal State San Marcos, Kalifornien
        StackTypeScript, Python, C, C++, C#, Haskell, SQL. Next.js und React, FastAPI, Supabase und PostgreSQL, Cloudflare, Docker, GitHub Actions.
        KIDas System rund um das Modell: Retrieval mit Quellen (RAG), Agenten und Tools, Kontextmanagement, Evaluation.
        SicherheitSechs Sicherheitsmodule an der Epitech, darunter zwei Sicherheitsprojekte allein (ein CTF und TryHackMe-Rooms). HackTheBox Season 9: Silver-Stufe, 3 Maschinen vollständig kompromittiert.

        Lass uns reden.

        Vom 18. Januar bis 13. August 2027 bin ich an der Cal State San Marcos, nördlich von San Diego. Erzähl mir, was du baust.

        Die 60-Sekunden-Version

        Hedi Bannour

        KI-Produktentwickler und Gründer. Ich bringe ein KI-Produkt von der Idee zu einem funktionierenden System: die Oberfläche, das Backend und alles rund um das Sprachmodell.

        Gründer

        Erfahrung

        Projekte

        Stack

        TypeScript, Python, C, C++, C#, Haskell, SQL. Next.js und React, FastAPI, Supabase und PostgreSQL, Cloudflare, Docker, GitHub Actions. RAG, Agenten und Tools, Evaluation. Französisch, Arabisch, Englisch.

        Schreib mir auf LinkedIn
        Player 2