Hedi Bannour

Hedi Bannour · ingeniero de producto de IA y fundador

Creo productos de IA. Este sitio es uno.

El robot de la derecha es Player 2. Empezó a aprender tenis de mesa cuando abriste esta página, y responde preguntas sobre mí. Juega contra él o pregúntale.El robot de abajo es Player 2. Empezó a aprender tenis de mesa cuando abriste esta página, y responde preguntas sobre mí. Juega contra él o pregúntale.

  • AhoraIngeniería de software en Epitech, Francia, promoción 2028. Prácticas en SN Perfect.
  • DespuésCal State San Marcos, California: del 18 de enero al 13 de agosto de 2027
  • ObjetivoConocer a fundadores y equipos de ingeniería que construyen con IA
Pregunta a Player 2

Juega contra Player 2, mi IA

Piloto automático 0 : 0 Player 2

Mueve el ratón sobre la mesa para jugar

Player 2 tiene 00:00. Nivel: recién nacido

Player 2 nació cuando abriste esta página. Nadie le enseñó a jugar: aprende practicando solo, 0 pelotas hasta ahora. Empieza fatal. Dale 20 segundos. Gana el primero que llegue a 3.

Player 2 es una red neuronal de 57 pesos: 5 entradas, 8 unidades tanh y 1 salida para la velocidad de la pala. Se entrena en tu navegador con el método de entropía cruzada: 16 candidatos por generación, los 4 mejores definen la siguiente. Sin conjunto de datos, sin servidor.

Generación
0
Devoluciones seguidas
0.0 / 20
Pelotas de práctica
0

Tienes activado el movimiento reducido, así que los juegos te esperan: haz clic o toca una pantalla para empezar.

3empresas fundadasBitácora de fundador55consultorios encuestados sobre el terreno para una de ellasTabeebi5prácticas, dos de ellas en IAExperiencia33proyectos, 14 jugables en esta páginaProyectos

Pregúntale a Player 2 sobre mí

Solo responde a partir de las fichas de este sitio y muestra qué ficha usó. Sin fuente, no hay respuesta.

Ahora mismo: búsqueda en las fichas, sin modelo de lenguaje.

Hola. Sé qué fundó Hedi, dónde trabajó, qué construyó y cuándo está en California. El resto no lo adivino.

Bitácora de fundador

Todas las empresas que he fundado, con su estado. Dos se detuvieron y de una me fui.

  1. ago. – oct. 2026Me fui

    Nearchon

    Cofundador y CTO

    Un sistema de aprendizaje con IA para AP Physics C: Mechanics. Sigue el razonamiento del estudiante paso a paso en lugar de comprobar solo la respuesta final.

    • Producto y arquitectura
    • El sistema en torno al modelo de lenguaje: contexto, herramientas, evaluación
    • Descubrimiento de clientes, búsqueda de tutores, primeras pruebas con estudiantes

    Por qué me fui Me fui después de cofundar el equipo y ayudar a construir y probar la primera versión del tutor de IA. El equipo sigue activo; no sé en qué punto está el producto hoy.

  2. abr. – ago. 2026Detenida

    Tabeebi

    Fundador

    Software de gestión de consultorios para médicos privados en Túnez.

    • Encuesta sobre el terreno a 55 consultorios
    • Producto construido casi por completo: Next.js, Supabase, tareas en segundo plano, la API de Claude

    Por qué se detuvo Yo cargaba con casi todo el trabajo. Tras mucho tiempo y dinero, y sin cambios en el reparto del trabajo, decidí parar antes de intentar venderlo.

  3. nov. 2025 – abr. 2026Detenida

    Émile

    Fundador

    Un motor de precios, un CRM y un panel de operaciones para agencias de alquiler de corta estancia.

    • Construido y desplegado de principio a fin: FastAPI, Supabase
    • Llamadas a muchas agencias de alquiler de corta estancia para validar la idea

    Por qué se detuvo Ninguna de las agencias a las que llamamos quiso ir más allá, y cuando empezaron nuestras prácticas ya no teníamos tiempo para seguir. Después vino Tabeebi.

  4. 2024 – 2025

    Experimentos anteriores

    Tiendas online en Shopify que monté y gestioné: páginas de producto, pago, campañas de captación. Y un agente de voz para llamadas telefónicas que cualifica a quien llama y responde objeciones, hecho con Rasa, reconocimiento de voz y síntesis de voz.

¿Continuar?9Tres partidas terminadas. Pulsé Continuar cada vez.

Experiencia

Cinco prácticas y trabajo freelance, descritos como en mi perfil público de LinkedIn.

  1. sept. 2026 – actualidad

    SN Perfect

    Ingeniero de software en prácticas

    Estoy construyendo el ERP interno de la empresa, una compañía de limpieza con varias sedes: personal y contratos, sitios de clientes, un espacio móvil para los supervisores de campo, cierre mensual. Sobre Frappe, ERPNext y Frappe HR. Lo siguiente: funciones de IA.

    FrappeERPNextPython

  2. abr. – ago. 2026

    Meosis

    Ingeniero de software en prácticas · Horbourg-Wihr, Francia

    Construí una herramienta que genera maquetas de sitios web con IA, usada en reuniones con clientes potenciales, y monté un flujo asistido por IA que va del brief del cliente al sitio WordPress. Además: correcciones en el CRM y el ERP propios en PHP, WordPress multisitio, migraciones de servidores.

    LLM promptingFigma MakeWordPressPHP

  3. sept. 2025 – ene. 2026

    DataScale AI

    Ingeniero de IA en prácticas · startup, equipo de tres

    Seguimiento en tiempo real de lo que hacen los compradores en una tienda online (páginas, clics, carrito), una puntuación de intención caliente o fría, un scraper que estructura el catálogo del cliente y un chatbot que se adapta al visitante.

    PythonLangFlowDocker

  4. sept. – dic. 2024

    Infolog

    Desarrollador .NET en prácticas

    Un CRM industrial en .NET Core y C# para un fabricante de apósitos médicos: el modelo de datos y la lógica de negocio de la cadena de producción, desde la recepción hasta el control de calidad.

    .NET CoreC#Entity Framework

  5. jul. – sept. 2024

    SN Perfect

    Prácticas en herramientas internas · París

    Herramientas que extraen datos de imágenes y los exportan a Excel, y relleno automático de formularios, para sustituir la entrada manual de datos.

  6. 2023 – actualidad

    Freelance

    Desarrollador independiente

    Sitios WordPress y herramientas web para particulares y pequeñas empresas: funcionalidades, integraciones, automatizaciones.

Proyectos

Un producto hecho fuera de la escuela y, después, Epitech: una escuela de ingeniería francesa de cinco años donde se aprende construyendo. Elegí 33 proyectos. 14 se pueden jugar aquí.

Producto · hecho fuera de la escuela

ZooPass

Una guía en el móvil para el zoo de Mulhouse. Planifica tu visita, dibuja la ruta en el mapa y un chatbot responde a tus preguntas mostrando de dónde sale cada respuesta.

Una PWA en React y TypeScript sobre Cloudflare Pages. El chatbot es un pipeline RAG: búsqueda vectorial en Astra DB más búsqueda por palabras clave, un umbral de similitud de 0,70 y las fuentes devueltas con cada respuesta.

TypeScriptEquipo de 22025–26

Las respuestas de Player 2 en este sitio siguen la misma idea.

Lo que construí

  • Creación del proyecto y puesta en línea
  • El cerebro del chatbot: cómo busca y cómo responde
  • Rediseño de la página del chatbot
  • Creación del proyecto y despliegue en Cloudflare Pages
  • La función de chat y la mayor parte del RAG: Astra DB, el umbral de similitud, los prompts de sistema
  • Acciones contextuales y sugerencias rápidas en la API, y una página de IA rediseñada

Prueba una miniguíaUn mapa inventado, no el plano real del zoo.

Recorrido–A pie–Caminos cerrados0

Dijkstra sobre el grafo de caminos · solo responde si la coincidencia de palabras llega a 0,50

Pregunta a la guíaSolo responde a partir de sus fichas y muestra cuál usó.

    Las fichas de la guía
    • IdiomasZooPass habla cuatro idiomas: francés, inglés, alemán y español.
    • Tu plan de visitaZooPass propone un plan de visita según tu perfil y el tiempo que puedes quedarte.
    • Recorrido en el mapaEl mapa dibuja tu recorrido por los caminos del zoo y elige el más corto.
    • EventosUna página muestra los eventos del día.
    • FuentesCada respuesta del chatbot incluye los documentos en los que se basa.
    • Este mapa de demostraciónEl mapa de esta página es inventado: una entrada y zonas de la A a la F. No es el plano real del zoo.

    Cómo jugar

    1. Elige un origen y un destino en el mapa o en las listas. Se dibuja el recorrido más corto.
    2. Toca un camino para cerrarlo. El recorrido lo rodea.
    3. Hazle una pregunta a la guía. Por debajo del umbral de coincidencia, dice que no lo sabe.

    Recreado en el navegador con un mapa inventado. En ZooPass, mi compañero construyó el mapa y el planificador de rutas; mi parte fue el chatbot. Busca en los documentos oficiales y solo conserva los pasajes con una similitud de 0,70 o más. Este cuadro solo compara palabras con seis fichas.

    Proyecto de escuela · jugable

    R-Type

    Un juego de naves espaciales multijugador, hecho por un equipo de cinco. Yo construí el editor de niveles: la herramienta que decide dónde aparecen los enemigos.

    Un remake en red del shoot 'em up de arcade, en C++20, por un equipo de cinco: motor ECS propio, un servidor con autoridad sobre la partida y un protocolo UDP binario.

    C++Equipo de 5Epitech, 2025–26

    Tú0Player 20Oleada01

    Editor de nivelesDibuja enemigos aquí. Entran arriba, de derecha a izquierda.

    wave.json0 enemigos, formato simplificado

    Cómo jugar

    1. Pasa el cursor por la pantalla para pilotar la nave blanca.
    2. Player 2, en naranja, te cubre.
    3. Dibuja enemigos en la cuadrícula: llegan con esa forma.

    Lo que construí

    • El editor de niveles y la carga de sus niveles en el juego
    • Comprobaciones automáticas cada vez que el equipo cambiaba el código
    • La guía escrita de cómo se comunican los jugadores con el servidor
    • El editor de mapas en Python, con exportación a JSON
    • La carga de niveles JSON en el juego y en el servidor
    • El pipeline de CI en GitHub Actions
    • La documentación del protocolo y del editor, y el aumento de velocidad en el servidor

    La cuadrícula es una versión para navegador del editor que escribí. El original es una herramienta de escritorio.

    Proyecto de escuela · jugable

    Arcade

    Una consola de videojuegos hecha en software. El mismo juego puede cambiar de aspecto mientras juegas. Escribí el juego Snake y sus tres aspectos.

    Una plataforma de juegos retro en C++17. Los juegos y los motores gráficos son bibliotecas compartidas que se cargan con dlopen mientras el programa se ejecuta.

    C++Equipo de 2Epitech, 2024–25

    Dibujado con SFML
    Manzanas0Récord0

    Cómo jugar

    1. Haz clic en un aspecto: Suave, Píxel o Texto. El juego no se detiene.
    2. Juega Player 2. Pulsa una flecha para tomar el control.
    3. En el móvil, desliza el dedo por la pantalla.

    Lo que construí

    • El juego Snake
    • La primera versión de sus tres aspectos
    • Los gráficos y la guía para otros desarrolladores
    • Snake: control por teclado, bordes que dan la vuelta, puntuación
    • La primera versión de los tres renderizadores: SFML, SDL2, ncurses
    • Sprites para SFML y SDL2, y la documentación de la interfaz

    La línea de puntos es la ruta que Player 2 ha planeado hasta la manzana.Redibujado para el navegador: un solo estado de juego, tres renderizadores. Player 2 planifica su ruta con una búsqueda en anchura.

    Proyecto de escuela · jugable

    Jetpack

    Una carrera para dos jugadores en red. Escribí el árbitro: el servidor que sabe dónde está cada jugador, quién cogió cada moneda y quién chocó con qué.

    Un runner multijugador. Un servidor TCP en C ejecuta la partida con poll(), y un cliente gráfico en C++ la muestra.

    CEquipo de 3Epitech, 2024–25

    Monedas0Niveles superados0

    Lo que sabe el árbitro ahora mismo

    Posición
    0, 0
    Monedas
    0
    Estado
    Volando

    Archivo del mapae = obstáculo, c = moneda

    Registro del servidorun tick cada 100 ms

    Cómo jugar

    1. Mantén pulsado el botón del ratón sobre la pantalla, o la barra espaciadora, para subir.
    2. Suelta para bajar.
    3. Coge las monedas, esquiva los láseres.

    Lo que construí

    • El servidor y sus conexiones con los jugadores
    • La lectura del archivo de nivel
    • Monedas, obstáculos y colisiones
    • Decidir quién gana y quién pierde
    • El servidor: conexiones y jugadores, con poll()
    • La carga del mapa ASCII y su escalado a 1920 por 1080
    • Monedas, obstáculos, colisiones y desplazamiento
    • Condiciones de victoria y derrota

    El recuadro bajo el juego muestra los números del árbitro, en directo.Los paneles bajo el juego son el lado del servidor. Los nombres de los mensajes son los reales; los valores se calculan aquí.

    Proyecto de escuela · jugable

    Zappy

    Un juego en red: jugadores de IA caminan por un pequeño mundo redondo, recogen comida y hablan entre ellos. Cada movimiento es un comando de texto enviado a un único servidor.

    Un servidor TCP en C con un bucle poll(), clientes de IA en C++ y un cliente 3D con raylib. Cada cliente tiene una cola de hasta 10 comandos, y cada uno se ejecuta tras un retardo fijado por la frecuencia (-f).

    CEquipo de 5Epitech, 2024–25

    Vista del servidorUna cola por cliente, 10 plazas. El primer comando se ejecuta cuando su barra se llena.

    Velocidad del servidor
    Tu comida0Comida de Player 20Unidades de tiempo0

    Registro del servidor← de un cliente · → a un cliente · GUI = línea para la vista 3D

    Cómo jugar

    1. Pulsa una flecha o un botón: tu comando entra en la cola azul.
    2. El servidor lo ejecuta cuando se cumple su tiempo. Camina hasta la comida dorada y recógela.
    3. Envía más de 10 comandos de golpe y el servidor responde ko.

    Lo que construí

    • El servidor al que se conectan todos los jugadores de IA y la vista 3D.
    • La cola de comandos de cada jugador, con sus tiempos.
    • Avanzar y enviar un mensaje a todos los demás jugadores.
    • Estructuras del servidor, el socket y el bucle poll(), conexión de clientes y comprobación de equipos, análisis de argumentos.
    • Comandos del protocolo gráfico: msz, tna, bct, mct, ppo, pnw.
    • La cola de comandos diferidos de cada cliente: 10 plazas, tiempo de ejecución según la frecuencia.
    • Forward, Broadcast y Connect_nbr, corrección de fugas de memoria y una clase de red en el cliente 3D.

    Recreado para el navegador: una copia simplificada de las reglas del servidor se ejecuta en esta página. El servidor real es un programa en C que habla con sus clientes por TCP.

    Proyecto de escuela · jugable

    Corewar

    Dos pequeños programas, llamados campeones, comparten un mismo bloque de memoria e intentan sobrevivir al otro. El programa que deja de decir «live» queda fuera.

    Una máquina virtual en C: carga los campeones compilados (.cor), los coloca en una arena circular compartida y ejecuta sus instrucciones ciclo a ciclo, con un retardo por instrucción y una comprobación periódica de los live.

    CEquipo de 2Epitech, 2023–24

    Tu campeón

    Instrucción bajo tu primer proceso

    Dirección
    -
    Bytes
    -

    -

    Ciclo0Ciclos hasta la eliminación0Procesos0Último live-

    Memoria alrededor de tu proceso

    Cómo jugar

    1. Elige un campeón. Player 2 se queda con el otro.
    2. Mira cómo los dos escriben en la memoria compartida. El programa que deja de decir live queda eliminado.
    3. Pulsa Pausa y luego Paso para leer la instrucción que tu programa ejecutará a continuación.

    Lo que construí

    • Cargar cada campeón desde su archivo y colocarlo en la memoria compartida.
    • Leer cada instrucción a partir de los bytes y ejecutarla después de su retardo.
    • Llevar la cuenta de quién dijo live, para saber quién sigue en juego.
    • Lectura de los campeones .cor y conversión entre decimal y hexadecimal.
    • Creación de la arena y colocación de los campeones.
    • Decodificación de instrucciones, registro de cada live, y las instrucciones and, or, xor y aff.
    • Retardos de las instrucciones y gestión de errores.

    Recreado para el navegador con un juego de instrucciones reducido y tres campeones escritos para esta página. La máquina real está en C y ejecuta archivos .cor compilados.

    Proyecto de escuela · jugable

    Whanos

    Una máquina que construye aplicaciones sola. Sube tu código: detecta el lenguaje, construye una imagen Docker y la guarda, lista para ejecutarse.

    Una cadena de CI/CD: Jenkins detecta el lenguaje de un repositorio en cada nuevo commit, construye una imagen a partir de un Dockerfile base o standalone y la sube a un registro privado. Ansible instala Jenkins y el registro.

    DockerJenkinsEquipo de 2Epitech, 2025–26

    Imágenes0Detenidos0

    Tu repositorioElige un lenguaje o marca tú los archivos.

    Archivos del repositorio

    Registro de Jenkins

    Cómo jugar

    1. Elige un lenguaje o marca los archivos de tu repositorio.
    2. Sube un commit y sigue cada paso, con el registro de Jenkins.
    3. Prueba dos lenguajes a la vez, ningún archivo de lenguaje o el mismo commit dos veces.

    Lo que construí

    • Las diez imágenes Docker: una base y una standalone para cada uno de los cinco lenguajes
    • La imagen de Befunge, que compila su propio intérprete desde el código fuente
    • La guía que explica cómo construir y usar las imágenes
    • Diez Dockerfiles, Dockerfile.base y Dockerfile.standalone, para C, Java, JavaScript, Python y Befunge
    • Builds multietapa: compilar en una imagen y ejecutar en otra más pequeña; cfunge compilado con cmake para Befunge
    • docs/docker_image.md: comandos de build, reglas de cada imagen, estructura del repositorio

    Reproducido en tu navegador: no se construye nada de verdad. Las reglas de detección, la elección del build y los pasos de los Dockerfiles vienen del proyecto. El paso de despliegue en Kubernetes no se muestra porque no se terminó.

    Proyecto de escuela · jugable

    Raytracer

    Un programa que dibuja imágenes 3D siguiendo rayos de luz. Describes una escena en un archivo de texto; el programa la lee y pinta la imagen píxel a píxel.

    Un ray tracer en C++20. Un archivo de escena libconfig++ (cámara, primitivas, luces) se carga en una Scene; cada píxel lanza un rayo, encuentra el objeto más cercano y lo ilumina con luz ambiental y luces direccionales. La salida es una imagen PPM.

    C++20libconfig++Equipo de 4Epitech, 2024–25

    Pasada1/4Rayos0

    scene.cfgEdítalo: la imagen se actualiza.

    Cómo jugar

    1. Cambia un número en el archivo de escena. La imagen se redibuja, primero tosca y luego nítida.
    2. Rompe el archivo a propósito: el error muestra la línea y qué falla.
    3. Player 2 mueve la luz, una esfera y la cámara hasta que empiezas a escribir.

    Lo que construí

    • La parte que lee el archivo de escena: cámara, esferas, planos y luces
    • La clase Scene, que contiene la cámara, las formas y las luces
    • Análisis de la escena con libconfig++: cámara (resolución, posición, rotación, campo de visión), esferas, planos, luz ambiental y luces direccionales
    • La clase Scene: un único contenedor para la cámara, las primitivas y las luces
    • Formas creadas mediante el PrimitiveBuilder del equipo

    Recreado en el navegador. El formato de escena sigue el parser del proyecto. Las comprobaciones extra y el pequeño renderizador que dibuja la imagen se escribieron para esta página, con sombras que el original no tenía.

    Proyecto de escuela · jugable

    Minishell

    Un shell de línea de comandos, como el de un terminal. Escribe un comando: el shell encuentra el programa, lo ejecuta y muestra el resultado.

    Un shell tipo tcsh en C: un bucle de prompt con getline, programas encontrados a través de PATH y ejecutados con fork, execve y waitpid, built-ins, redirecciones y un pipe con dup2.

    CEn solitarioEpitech, 2023–24

    Tab completa · ↑ ↓ historial · Ctrl+L limpia

    Comandos integradoscd · env · setenv · unsetenv · exit

    Programas en /binls · cat · echo · pwd · grep · wc · head · sort · clear

    Cómo jugar

    1. Haz clic en el terminal, escribe un comando y pulsa Intro.
    2. Envía la salida a un archivo con > o >>, o a otro comando con |.
    3. Escribe cat << END, unas líneas y luego END: el shell las lee como entrada.

    Lo que construí

    • El bucle del prompt: leer una línea, ejecutarla y volver a mostrar el prompt.
    • Buscar los programas en las carpetas del PATH y ejecutarlos.
    • Los comandos integrados: cd, env, setenv, unsetenv, exit.
    • Enviar la salida a archivos, leer el texto escrito después de << y pasar la salida de un comando al siguiente.
    • Prompt «$> » leído con getline; fork, execve y waitpid; un mensaje cuando el programa falla (Segmentation fault, Floating exception).
    • cd con una ruta, sin argumento (HOME) y cd -, actualizando PWD y OLDPWD; setenv con comprobación del nombre, unsetenv, env, exit.
    • Redirecciones > y >> y el heredoc << con dup2 y pipe; el separador ;.
    • Un pipe entre dos comandos y mi propia biblioteca printf.

    Recreado para el navegador: una pequeña copia de las reglas del shell se ejecuta en esta página, con un sistema de archivos ficticio y algunos programas. Los shells reales son programas en C que ejecutan programas reales.

    Proyecto de escuela · jugable

    Wolfram

    Una fila de celdas en la que cada celda vive o muere según sus dos vecinas. Un solo número, la regla, lo decide todo, y reglas sencillas dibujan patrones sorprendentes.

    Un autómata celular elemental en Haskell: opciones de línea de comandos (--rule, --start, --lines, --window, --move), la siguiente generación según cada regla y una salida centrada con «*».

    HaskellEn solitarioEpitech, 2024–25

    Regla30

    La regla, celda a celdaPara cada grupo de tres celdas, la celda de abajo vive o no. Haz clic en una para invertirla.

    Prueba

    Lo que imprime el terminal (primeras líneas)

    Cómo jugar

    1. Mueve el control deslizante o elige una regla: la 30 parece aleatoria, la 90 dibuja triángulos y la 110 hace crecer estructuras.
    2. Haz clic en las casillas pequeñas para invertir una parte de la regla.
    3. O escribe tú mismo el comando, con las mismas opciones que el programa real.

    Lo que construí

    • Leer las opciones escritas tras el nombre del programa y rechazar las incorrectas.
    • Calcular cada nueva línea de celdas a partir de la de arriba.
    • Mostrar las líneas centradas en la ventana, con asteriscos.
    • Análisis de argumentos: --rule (obligatorio), --start, --lines, --window (80 por defecto), --move; código de salida 84 ante un argumento incorrecto.
    • La siguiente generación para las reglas 30, 90 y 110.
    • El bucle de visualización y la configuración del proyecto Stack.

    Recreado para el navegador. El programa original en Haskell acepta las reglas 30, 90 y 110; esta página ejecuta cualquier regla de 0 a 255.

    Proyecto de escuela · jugable

    myPaint

    Un pequeño programa de dibujo, hecho entre dos. Dibujas con un lápiz sobre un tablero oscuro, eliges un color y un tamaño, borras, abres la ayuda y guardas el dibujo como imagen.

    C con CSFML. Una ventana de 1920 por 1080 con una barra de herramientas. El lápiz apila círculos mientras el botón está pulsado; la goma pinta con el color del tablero. El tablero se guarda en un archivo de imagen.

    CCSFMLEquipo de 2Epitech, 2023–24

    Trazos0

    Cómo jugar

    1. Dibuja en el tablero: Player 2 se aparta.
    2. Cambia el color o el tamaño, o coge la goma, en la barra de herramientas.
    3. Guarda como PNG para conservar tu dibujo.

    Lo que construí

    • La ventana y los botones de la barra de herramientas
    • La elección del color y del tamaño del lápiz, y la goma
    • La pantalla de ayuda y el guardado del dibujo como imagen
    • Ventana CSFML y barra de herramientas: un sprite por botón, detección del botón pulsado al hacer clic
    • Ocho colores, tres radios de lápiz (5, 18, 35 px), una goma que pinta rgb(22, 22, 22)
    • Ayuda que se muestra u oculta, tablero copiado de la ventana a un archivo de imagen

    Recreado para el navegador en TypeScript a partir de la versión en C: mismos colores, tamaños y goma. Aquí el lápiz rellena los huecos entre los círculos, y el archivo es un PNG con fecha en lugar de test.jpg.

    Proyecto de escuela · jugable

    Cryptography

    Una herramienta de línea de comandos en C que cifra y descifra texto con tres algoritmos, hecha entre tres. Mi parte: XOR, las conversiones hexadecimales y el punto de entrada que elige el algoritmo.

    my_pgp en C lee la entrada estándar. Escribí XOR en modo bloque y flujo con orden de bytes little-endian, la conversión de hex a bytes y viceversa, el lector de entrada y main, que dirige a XOR, AES o RSA.

    CEquipo de 3Epitech, 2025–26

    Byte a byte: byte del mensaje (invertido en su bloque) XOR byte de la clave

      Cifrado (hex)

      —

      Cómo jugar

      1. Escribe un mensaje y una clave.
      2. Cambia entre el modo bloque y el modo flujo, y mira cómo cambia cada byte.
      3. Descífralo: XOR con la misma clave devuelve el mensaje.

      Lo que construí

      • El cifrado XOR, en modo bloque y en modo flujo
      • Convertir texto a hexadecimal y viceversa
      • El punto de entrada que envía cada comando al algoritmo correcto
      • xor_block y xor_stream: bytes invertidos por bloque (little endian) y luego XOR con la clave
      • El modo flujo rellena el último bloque con ceros y los quita al descifrar
      • hex_to_bytes y print_hex, un lector dinámico de stdin, main que dirige a xor, aes y rsa

      Recreado para el navegador a partir de la versión en C, solo XOR. XOR con una clave corta repetida es un cifrado de clase: no protege secretos reales.

      Hackathon · jugable

      Nuit de l'Info

      Una noche de hackathon con un equipo de ocho: un juego web sobre el océano y el cuerpo humano. Hice la entrada en código Morse de la pantalla de inicio de sesión, un poco molesta a propósito.

      Angular 19, componentes standalone. En el componente de inicio de sesión escribí la entrada Morse: los tiempos de pulsar y soltar la tecla dan un punto, una raya o un fin de letra, decodificados en directo con una tabla Morse. También conecté la ruta.

      AngularTypeScriptEquipo de 82024–25

      Inicio de sesión de juguete (no se envía ni se guarda nada)

      Nombre, en Morse

      Mantén pulsada la tecla para escribir

      Tabla Morse

      • 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––··

      Cómo jugar

      1. Mantén pulsada la tecla: poco para un punto, más para una raya.
      2. Mantenla un segundo o más para terminar la letra.
      3. Lee tu nombre en el campo y luego entra (es un juguete).

      Lo que construí

      • La entrada en código Morse de la pantalla de inicio de sesión
      • Pulsación corta para un punto, larga para una raya, muy larga para la letra siguiente
      • La traducción a letras en directo, y Retroceso para corregir un error
      • keydown y keyup sobre Espacio miden la pulsación: menos de 200 ms, un punto; menos de 800 ms, una raya; 1 s o más, un fin de letra
      • Una tabla Morse invertida para hacer búsquedas, que decodifica letra a letra en cada pulsación
      • La plantilla y el estilo del componente, y la ruta, migrada después a provideRouter

      Recreado para el navegador a partir de la versión en Angular, con los mismos tiempos. Los botones Punto, Raya y Letra siguiente son un añadido de esta página. No hay cuenta ni contraseña.

      Los 33 proyectos

      Qué es cada uno y la parte que escribí yo.

        Hedi Bannour

        Sobre mí

        Me gusta todo el camino: encontrar el problema, construir la solución y ponerla en manos de la gente.

        Estudié matemáticas e informática en la Universidad de Estrasburgo y en 2023 entré en Epitech para aprender construyendo. Desde entonces: 33 proyectos, cinco prácticas, trabajo freelance y tres empresas fundadas. Hablo francés, árabe e inglés.

        Antes del código En el instituto, en el Lycée Pierre Mendès France de Túnez, llevaba una pequeña tienda online: pedidos por Facebook, entregas en mano, productos conseguidos por encargo a través de mi red de contactos. Tras el bachillerato de ciencias en 2020, empecé matemáticas e informática en la Universidad de Estrasburgo.

        1. 2016–20Lycée Pierre Mendès France, Túnez, y una primera tienda online
        2. 2020–23Universidad de Estrasburgo, matemáticas e informática
        3. 2023–Epitech, ingeniería de software, promoción 2028
        4. 2023–Desarrollador freelance
        5. 2024–26Cinco prácticas: SN Perfect, Infolog, DataScale AI, Meosis y de nuevo SN Perfect
        6. 2025–26Fundador: Émile, luego Tabeebi; cofundador de Nearchon
        7. 2027Intercambio en Cal State San Marcos, California
        StackTypeScript, Python, C, C++, C#, Haskell, SQL. Next.js y React, FastAPI, Supabase y PostgreSQL, Cloudflare, Docker, GitHub Actions.
        IAEl sistema en torno al modelo: recuperación con fuentes (RAG), agentes y herramientas, gestión del contexto, evaluación.
        SeguridadSeis módulos de seguridad en Epitech, entre ellos dos proyectos de seguridad en solitario (un CTF y salas de TryHackMe). HackTheBox Season 9: nivel Silver, 3 máquinas comprometidas por completo.

        Hablemos.

        Estaré en Cal State San Marcos, al norte de San Diego, del 18 de enero al 13 de agosto de 2027. Cuéntame qué estás construyendo.

        La versión de 60 segundos

        Hedi Bannour

        Ingeniero de producto de IA y fundador. Llevo un producto de IA de la idea a un sistema que funciona: la interfaz, el back end y todo lo que rodea al modelo de lenguaje.

        Fundador

        Experiencia

        Proyectos

        Stack

        TypeScript, Python, C, C++, C#, Haskell, SQL. Next.js y React, FastAPI, Supabase y PostgreSQL, Cloudflare, Docker, GitHub Actions. RAG, agentes y herramientas, evaluación. Francés, árabe, inglés.

        Escríbeme por LinkedIn
        Player 2