Hedi Bannour

Hedi Bannour · AI 产品工程师、创业者

我做 AI 产品。 这个网站就是其中之一。

右边的机器人是 Player 2。你打开这个页面时,它开始学打乒乓球;它也能回答关于我的问题。和它打一局,或者问它点什么。下面的机器人是 Player 2。你打开这个页面时,它开始学打乒乓球;它也能回答关于我的问题。和它打一局,或者问它点什么。

  • 现在法国 Epitech 软件工程专业,2028 届。在 SN Perfect 实习。
  • 接下来加州 Cal State San Marcos:2027 年 1 月 18 日至 8 月 13 日
  • 目标结识用 AI 做产品的创始人和工程团队
问 Player 2

和我的 AI——Player 2 对战

自动驾驶 0 : 0 Player 2

把鼠标移到球桌上即可开打

Player 2 的年龄:00:00。 水平: 新生

你打开这个页面时,Player 2 诞生了。没人教过它怎么玩:它靠自己练习来学,到现在已经练了 0 个球。一开始它很菜。给它 20 秒。先得 3 分者胜。

Player 2 是一个只有 57 个权重的神经网络:5 个输入、8 个 tanh 单元、1 个输出控制球拍速度。它在你的浏览器里用交叉熵方法训练:每代 16 个候选,最好的 4 个决定下一代。没有数据集,也没有服务器。

代数
0
连续回球
0.0 / 20
练习球数
0

你开启了“减少动态效果”,所以游戏会等你:点击或轻触画面即可开始。

3创办的公司创业日志55实地调研的诊所,为其中一家公司Tabeebi5实习经历,其中两段与 AI 相关经历33项目,其中 14 个可在本页试玩项目

向 Player 2 打听我

它只根据本站的事实卡片作答,并显示用了哪张卡片。没有出处,就不回答。

当前模式:卡片检索,不使用语言模型。

你好。我知道 Hedi 创办过什么、在哪里工作过、做过什么,以及他什么时候在加州。其他的我不瞎猜。

创业日志

我创办过的每一家公司,以及它们的状态。两家已停止,一家我已退出。

  1. 2026 年 8 月 – 10 月已退出

    Nearchon

    联合创始人兼 CTO

    一个面向 AP Physics C: Mechanics 的 AI 学习系统。它一步步跟踪学生的推理过程,而不只是检查最终答案。

    • 产品与架构
    • 语言模型周边的系统:上下文、工具、评估
    • 客户探索、寻找辅导老师、与学生做早期测试

    我为什么退出 我和大家一起组建了团队,参与打造并测试了 AI 辅导的第一版,之后离开。团队仍在运作;产品现在进展如何,我不清楚。

  2. 2026 年 4 月 – 8 月已停止

    Tabeebi

    创始人

    面向突尼斯私人医生的诊所管理软件。

    • 实地调研了 55 家诊所
    • 产品基本做完:Next.js、Supabase、后台任务、Claude API

    为什么停止 几乎所有工作都压在我身上。投入了大量时间和金钱,分工却始终没有改变,于是我决定在尝试销售之前停下来。

  3. 2025 年 11 月 – 2026 年 4 月已停止

    Émile

    创始人

    面向短租中介的定价引擎、CRM 和运营看板。

    • 从头到尾开发并上线:FastAPI、Supabase
    • 给很多短租中介打电话验证想法

    为什么停止 我们联系过的中介没有一家愿意进一步合作;实习开始后,我们也没时间继续了。之后才有了 Tabeebi。

  4. 2024 – 2025

    更早的尝试

    我在 Shopify 上搭建并运营的网店:商品页、结账、获客投放。还有一个电话语音助手,能判断来电者的意向并应对异议,用 Rasa、语音识别和语音合成做成。

继续?9三局已结束。每一次我都按下了“继续”。

经历

五段实习和自由职业,描述与我公开的 LinkedIn 资料一致。

  1. 2026 年 9 月 – 至今

    SN Perfect

    软件工程实习生

    我在为公司开发内部 ERP,这是一家多站点的保洁企业:员工与合同、客户现场、给现场主管用的移动端、月结。基于 Frappe、ERPNext 和 Frappe HR。下一步:AI 功能。

    FrappeERPNextPython

  2. 2026 年 4 月 – 8 月

    Meosis

    软件工程实习生 · 法国 Horbourg-Wihr

    我做了一个用 AI 生成网站原型图的工具,用于和潜在客户开会;还搭建了一条从客户需求到 WordPress 网站的 AI 辅助流程。此外:修复公司自研的 PHP CRM 和 ERP、WordPress 多站点、服务器迁移。

    LLM promptingFigma MakeWordPressPHP

  3. 2025 年 9 月 – 2026 年 1 月

    DataScale AI

    AI 工程实习生 · 初创公司,三人团队

    实时追踪顾客在网店里的行为(页面、点击、购物车),给出冷热购买意向评分;一个把客户商品目录结构化的爬虫;以及一个因访客而异的聊天机器人。

    PythonLangFlowDocker

  4. 2024 年 9 月 – 12 月

    Infolog

    .NET 开发实习生

    为一家医用敷料厂商开发的工业 CRM,基于 .NET Core 和 C#:生产链的数据模型和业务逻辑,从收货到质检。

    .NET CoreC#Entity Framework

  5. 2024 年 7 月 – 9 月

    SN Perfect

    内部工具实习生 · 巴黎

    从图片中提取数据并导出到 Excel 的工具,以及表单自动填写,用来取代手工录入。

  6. 2023 – 至今

    自由职业

    独立开发者

    为个人客户和小企业做 WordPress 网站和 Web 工具:功能、集成、自动化。

项目

一个校外做的产品,然后是 Epitech:一所五年制的法国工程师学校,在做项目中学习。我挑了 33 个项目,其中 14 个可以在这里试玩。

产品 · 校外项目

ZooPass

米卢斯动物园的手机导览。它帮你规划游览、在地图上画出路线,还有一个聊天机器人回答你的问题,并标明每个回答的出处。

基于 React 和 TypeScript 的 PWA,部署在 Cloudflare Pages。聊天机器人是一条 RAG 流水线:Astra DB 向量检索加关键词检索,相似度阈值 0.70,每个回答都附带来源。

TypeScript2 人团队2025–26

本站 Player 2 的回答也遵循同样的思路。

我做了什么

  • 创建项目并上线
  • 聊天机器人的大脑:它如何检索、如何回答
  • 重做了聊天机器人页面
  • 创建项目并部署到 Cloudflare Pages
  • 聊天函数和大部分 RAG:Astra DB、相似度阈值、系统提示词
  • API 中的上下文操作和快捷建议,以及重做的 AI 页面

试试迷你导览这是一张虚构的地图,不是动物园的真实平面图。

距离–步行–已封闭的路0

在道路图上运行 Dijkstra · 词语匹配度达到 0.50 才回答

问问导览它只根据自己的卡片回答,并显示用了哪一张。

    导览卡片
    • 语言ZooPass 支持四种语言:法语、英语、德语和西班牙语。
    • 你的游览计划ZooPass 会根据你的个人情况和可停留的时间,推荐一份游览计划。
    • 地图上的路线地图会沿着园内道路画出你的路线,并选出最短的那一条。
    • 活动有一个页面列出当天的活动。
    • 来源聊天机器人的每个回答都附带它所依据的文档。
    • 这张演示地图本页的地图是虚构的:一个入口和 A 到 F 区。它不是动物园的真实平面图。

    怎么玩

    1. 在地图上或列表里选择起点和终点,最短路线就会画出来。
    2. 点一条路把它封闭,路线会绕开它。
    3. 向导览提一个问题。匹配度低于阈值时,它会说不知道。

    用一张虚构的地图在浏览器里重做。在 ZooPass 中,地图和路线规划由队友完成;我负责的是聊天机器人。它检索官方文档,只保留相似度达到 0.70 及以上的段落。这个小框只是拿词语和六张卡片做比对。

    学校项目 · 可试玩

    R-Type

    一款多人太空射击游戏,五人团队开发。我做了关卡编辑器:决定敌人出现位置的工具。

    用 C++20 联网重制的街机射击游戏,五人团队:自研 ECS 引擎、对游戏状态拥有权威的服务器、二进制 UDP 协议。

    C++5 人团队Epitech, 2025–26

    你0Player 20波次01

    关卡编辑器在这里画敌人。它们会在上方从右往左飞来。

    wave.json0 个敌人,简化格式

    怎么玩

    1. 在画面上移动鼠标,驾驶白色飞船。
    2. 橙色的 Player 2 会掩护你。
    3. 在网格里画敌人:它们会按这个形状飞来。

    我做了什么

    • 关卡编辑器,以及在游戏中加载它做的关卡
    • 团队每次改代码时的自动检查
    • 说明玩家如何与服务器通信的书面指南
    • Python 编写的地图编辑器,支持导出 JSON
    • 在游戏端和服务器端加载 JSON 关卡
    • GitHub Actions 上的 CI 流水线
    • 协议和编辑器文档,以及服务器端的加速道具

    这个网格是我写的编辑器的浏览器版。原版是桌面工具。

    学校项目 · 可试玩

    Arcade

    一台用软件写成的游戏机。同一款游戏可以边玩边换外观。我写了贪吃蛇游戏和它的三种外观。

    C++17 写的复古游戏平台。游戏和图形后端都是共享库,在程序运行时用 dlopen 加载。

    C++2 人团队Epitech, 2024–25

    渲染方式 SFML
    苹果0最高分0

    怎么玩

    1. 点选一种外观:平滑、像素或文字。游戏不会中断。
    2. Player 2 正在玩。按方向键即可接手。
    3. 在手机上,在画面上滑动。

    我做了什么

    • 贪吃蛇游戏
    • 三种外观的第一版
    • 图片素材,以及给其他开发者的指南
    • 贪吃蛇:键盘控制、穿越边界、计分
    • 三个渲染器的第一版:SFML、SDL2、ncurses
    • SFML 和 SDL2 的精灵图,以及接口文档

    虚线是 Player 2 规划好的、通往苹果的路线。为浏览器重新绘制:一份游戏状态,三个渲染器。Player 2 用广度优先搜索规划路线。

    学校项目 · 可试玩

    Jetpack

    一场双人联网竞速。我写了裁判:也就是那台服务器,它知道每个玩家在哪、谁拿了哪枚金币、谁撞上了什么。

    多人跑酷游戏。C 写的 TCP 服务器用 poll() 运行游戏,C++ 写的图形客户端负责显示。

    C3 人团队Epitech, 2024–25

    金币0通过关卡0

    裁判此刻掌握的信息

    位置
    0, 0
    金币
    0
    状态
    飞行中

    地图文件e = 障碍,c = 金币

    服务器日志每 100 ms 一个 tick

    怎么玩

    1. 在画面上按住鼠标键,或按住空格键,即可上升。
    2. 松开即下降。
    3. 吃金币,躲激光。

    我做了什么

    • 服务器及其与玩家的连接
    • 读取关卡文件
    • 金币、障碍和碰撞
    • 判定谁赢谁输
    • 服务器:连接与玩家,使用 poll()
    • 加载 ASCII 地图并缩放到 1920 × 1080
    • 金币、障碍、碰撞和滚动
    • 胜负条件

    游戏下方的框实时显示裁判掌握的数据。游戏下方的面板是服务器端视角。消息名称是真实的;数值在这里计算。

    学校项目 · 可试玩

    Zappy

    一款网络游戏:AI 玩家在一个小小的圆形世界里走动、捡食物、互相交谈。每一步都是发给同一台服务器的一条文本命令。

    用 C 写的 TCP 服务器,基于 poll() 循环;C++ 写的 AI 客户端;以及基于 raylib 的 3D 客户端。每个客户端有一个最多 10 条命令的队列,每条命令在由频率(-f)决定的延迟后执行。

    C5 人团队Epitech, 2024–25

    服务器视角每个客户端一条队列,10 个位置。进度条满了,排在最前的命令就执行。

    服务器速度
    你的食物0Player 2 的食物0时间单位0

    服务器日志← 来自客户端 · → 发往客户端 · GUI = 给 3D 视图的消息

    怎么玩

    1. 按方向键或按钮:你的命令会进入蓝色队列。
    2. 时间一到,服务器就执行它。走到金色食物那里,把它拿下。
    3. 一次发出超过 10 条命令,服务器就会回复 ko。

    我做了什么

    • 所有 AI 玩家和 3D 视图都连接的那台服务器
    • 每个玩家的命令等待队列,以及它的计时
    • 向前走,以及给其他所有玩家发消息
    • 服务器数据结构、socket 和 poll() 循环、客户端连接与队伍校验、参数解析
    • 图形协议命令:msz、tna、bct、mct、ppo、pnw
    • 每个客户端的延迟命令队列:10 个位置,执行时间由频率决定
    • Forward、Broadcast 和 Connect_nbr,内存泄漏修复,以及 3D 客户端里的网络类

    为浏览器重写的版本:页面里运行的是服务器规则的简化副本。真正的服务器是一个 C 程序,通过 TCP 和客户端通信。

    学校项目 · 可试玩

    Corewar

    两个叫作“冠军”的小程序共用一块内存,比谁活得更久。不再说 "live" 的程序就出局。

    用 C 写的虚拟机:加载编译好的冠军(.cor),把它们放进一块共享的环形竞技场,逐周期执行指令;每条指令都有延迟,还会定期检查 live。

    C2 人团队Epitech, 2023–24

    你的冠军

    你第一个进程所在的指令

    地址
    -
    字节
    -

    -

    周期0存活检查周期0进程0最后一次 live-

    你的进程附近的内存

    怎么玩

    1. 选一个冠军,另一个由 Player 2 来选。
    2. 看双方往共享内存里写东西。不再说 live 的程序会被移除。
    3. 先暂停,再点“单步”,就能读到你的程序下一步要执行的指令。

    我做了什么

    • 从文件加载每个冠军,并放进共享内存
    • 从字节里读出每条指令,等延迟过后再执行
    • 记录谁说了 live,判断谁还留在场上
    • 读取 .cor 冠军文件,十进制与十六进制互转
    • 创建竞技场并放入冠军
    • 指令解码、记录每次 live,以及 and、or、xor 和 aff 指令
    • 指令延迟和错误处理

    为浏览器重写的版本,指令集更小,三个冠军是专为本页编写的。真正的虚拟机用 C 写成,运行编译好的 .cor 文件。

    学校项目 · 可试玩

    Whanos

    一台能自己构建应用的机器。推送代码后,它识别语言,构建 Docker 镜像并存起来,随时可以运行。

    一套 CI/CD:每次有新提交,Jenkins 识别仓库的语言,用 base 或 standalone Dockerfile 构建镜像,并推送到私有镜像仓库。Jenkins 和镜像仓库由 Ansible 安装。

    DockerJenkins2 人团队Epitech, 2025–26

    镜像0已停止0

    你的代码仓库选一种语言,或者自己勾选文件。

    仓库里的文件

    Jenkins 日志

    怎么玩

    1. 选一张语言卡片,或勾选你仓库里的文件。
    2. 推送一个提交,配合 Jenkins 日志看每一步。
    3. 试试同时放两种语言、不放语言文件,或把同一个提交推两次。

    我做了什么

    • 十个 Docker 镜像:五种语言各有一个 base 镜像和一个 standalone 镜像
    • Befunge 镜像,它会从源码构建自己的解释器
    • 说明如何构建和使用这些镜像的指南
    • 十个 Dockerfile(Dockerfile.base 和 Dockerfile.standalone),覆盖 C、Java、JavaScript、Python 和 Befunge
    • 多阶段构建:在一个镜像里编译,在更小的镜像里运行;为 Befunge 用 cmake 构建 cfunge
    • docs/docker_image.md:构建命令、每个镜像的规则、仓库结构

    在你的浏览器里重演:并没有真的构建任何东西。识别规则、构建方式的选择和 Dockerfile 的步骤都来自项目本身。Kubernetes 部署步骤没有完成,所以没有展示。

    学校项目 · 可试玩

    Raytracer

    一个顺着光线画出 3D 图像的程序。你在文本文件里描述一个场景,它读取后逐像素画出图像。

    用 C++20 写的光线追踪器。读取 libconfig++ 场景文件(相机、图元、光源)生成 Scene;每个像素发出一条光线,找到最近的物体,再用环境光和平行光照亮它。输出 PPM 图像。

    C++20libconfig++4 人团队Epitech, 2024–25

    遍数1/4光线0

    scene.cfg改一改,图像会跟着变。

    怎么玩

    1. 改一下场景文件里的数字。图像会重画,先粗后细。
    2. 故意把文件改坏:错误信息会指出是哪一行、哪里不对。
    3. 在你开始输入之前,Player 2 会移动光源、球体和相机。

    我做了什么

    • 读取场景文件的部分:相机、球体、平面和光源
    • 存放相机、形状和光源的 Scene 类
    • 用 libconfig++ 解析场景:相机(分辨率、位置、旋转、视野)、球体、平面、环境光和平行光
    • Scene 类:统一存放相机、图元和光源的容器
    • 通过团队的 PrimitiveBuilder 创建形状

    在浏览器里重做的版本。场景格式遵循项目的解析器。额外的检查和画图用的小渲染器是为本页编写的,还有原版没有的阴影。

    学校项目 · 可试玩

    Minishell

    一个命令行 shell,就像终端里的那种。输入一条命令:shell 找到对应的程序,运行它并显示结果。

    用 C 写的类 tcsh shell:基于 getline 的提示符循环,通过 PATH 查找程序并用 fork、execve 和 waitpid 运行,内置命令,重定向,以及用 dup2 实现的管道。

    C个人项目Epitech, 2023–24

    Tab 补全 · ↑ ↓ 历史 · Ctrl+L 清屏

    内置命令cd · env · setenv · unsetenv · exit

    /bin 里的程序ls · cat · echo · pwd · grep · wc · head · sort · clear

    怎么玩

    1. 点击终端,输入一条命令,按 Enter。
    2. 用 > 或 >> 把输出写进文件,或用 | 交给另一条命令。
    3. 输入 cat << END,再写几行,最后输入 END:shell 会把这几行当作输入读取。

    我做了什么

    • 提示符循环:读一行、执行、再显示提示符
    • 在 PATH 的各个文件夹里查找程序并运行
    • 内置命令:cd、env、setenv、unsetenv、exit
    • 把输出写进文件,读取 << 之后输入的文本,把一条命令的输出交给下一条命令
    • 用 getline 读取的提示符 "$> ";fork、execve 和 waitpid;程序崩溃时的提示信息(Segmentation fault、Floating exception)
    • 支持路径、无参数(HOME)和 cd - 的 cd,并更新 PWD 和 OLDPWD;带名称校验的 setenv、unsetenv、env、exit
    • 用 dup2 和 pipe 实现的重定向 > 和 >>、<< heredoc,以及 ; 分隔符
    • 两条命令之间的管道,以及我自己的 printf 库

    为浏览器重写的版本:页面里运行的是 shell 规则的一个小副本,配一个模拟的文件系统和几个程序。真正的 shell 是 C 程序,运行的是真正的程序。

    学校项目 · 可试玩

    Wolfram

    一排格子,每个格子由左右两个邻居决定生死。一个数字,也就是“规则”,决定一切;简单的规则能画出令人意外的图案。

    用 Haskell 写的一维初等元胞自动机:命令行选项(--rule、--start、--lines、--window、--move)、按规则计算下一代、用 "*" 居中显示。

    Haskell个人项目Epitech, 2024–25

    规则30

    逐格看规则每一组三个格子,决定下面那个格子是生是死。点一下即可翻转。

    试试

    终端输出(前几行)

    怎么玩

    1. 拖动滑块或选一条规则:30 看起来很随机,90 画出三角形,110 会长出结构。
    2. 点击小方块,翻转规则的一部分。
    3. 也可以自己输入命令,选项和真正的程序一样。

    我做了什么

    • 读取程序名后面输入的选项,并拒绝错误的选项
    • 根据上一行算出每一行新的格子
    • 用星号把各行居中打印在窗口里
    • 参数解析:--rule(必填)、--start、--lines、--window(默认 80)、--move;参数错误时退出码为 84
    • 规则 30、90 和 110 的下一代计算
    • 显示循环,以及 Stack 项目配置

    为浏览器重写的版本。原始的 Haskell 程序只接受规则 30、90 和 110;本页可运行 0 到 255 之间的任意规则。

    学校项目 · 可试玩

    myPaint

    一个两人合作的小画图程序。你在深色画板上用铅笔画画,选颜色和粗细,擦除,打开帮助,并把画保存成图片。

    用 C 和 CSFML 编写。一个带工具栏的 1920×1080 窗口。按住鼠标时铅笔不断叠加圆点;橡皮擦用画板的颜色来涂。画板会保存成图片文件。

    CCSFML2 人团队Epitech, 2023–24

    笔画0

    怎么玩

    1. 在画板上画画:Player 2 会让开。
    2. 在工具栏换颜色、换粗细,或拿起橡皮擦。
    3. 点“保存为 PNG”,留住你的画。

    我做了什么

    • 窗口和工具栏按钮
    • 颜色和铅笔粗细的选择,以及橡皮擦
    • 帮助界面,以及把画保存为图片
    • CSFML 窗口和工具栏:每个按钮一个 sprite,点击时做命中检测
    • 八种颜色,三种铅笔半径(5、18、35 px),用 rgb(22, 22, 22) 涂色的橡皮擦
    • 显示或隐藏帮助浮层,把窗口中的画板复制到图片文件

    根据 C 版本用 TypeScript 为浏览器重写:颜色、粗细和橡皮擦都一样。这里的铅笔会填补圆点之间的空隙,保存的文件是带日期的 PNG,而不是 test.jpg。

    学校项目 · 可试玩

    Cryptography

    一个用 C 写的命令行工具,用三种算法加密和解密文本,三人合作完成。我负责的部分:XOR、十六进制转换,以及选择算法的入口。

    C 写的 my_pgp 读取标准输入。我写了块模式和流模式的 XOR(小端字节序)、十六进制与字节的互转、输入读取,以及把请求分发给 XOR、AES 或 RSA 的 main。

    C3 人团队Epitech, 2025–26

    逐字节:消息字节(在块内反转)XOR 密钥字节

      密文(十六进制)

      —

      怎么玩

      1. 输入一条消息和一个密钥。
      2. 在块模式和流模式之间切换,看每个字节怎么变。
      3. 解密回来:用同一个密钥再做一次 XOR,就能得到原消息。

      我做了什么

      • XOR 加密,分块模式和流模式
      • 文本与十六进制之间的互相转换
      • 把每条命令分发给对应算法的入口
      • xor_block 和 xor_stream:每块字节反转(小端),再与密钥做 XOR
      • 流模式用零补齐最后一块,解密时去掉
      • hex_to_bytes 和 print_hex,动态读取 stdin,main 分发 xor、aes 和 rsa

      根据 C 版本为浏览器重写,只有 XOR。用短密钥重复做 XOR 只是课堂上的加密方法,保护不了真正的秘密。

      黑客松 · 可试玩

      Nuit de l'Info

      一个通宵的黑客松,八人团队:一款关于海洋和人体的网页游戏。我做了登录页的摩尔斯电码输入,故意做得有点烦人。

      Angular 19,独立组件。我在登录组件里写了摩尔斯输入:根据按键按下和松开的时间判断点、划或字母间隔,并用摩尔斯码表实时解码。路由也是我接的。

      AngularTypeScript8 人团队2024–25

      玩具登录(不会发送或保存任何内容)

      名字,用摩尔斯电码

      按住电键来输入

      摩尔斯码表

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

      怎么玩

      1. 按住电键:短按是点,长一点是划。
      2. 按住一秒或更久,结束当前字母。
      3. 在输入框里看到你的名字,然后登录(只是个玩具)。

      我做了什么

      • 登录页的摩尔斯电码输入
      • 短按是点,长按是划,很长的按压进入下一个字母
      • 实时翻译成字母,以及用 Backspace 改错
      • 在空格键上用 keydown 和 keyup 测量按压时长:小于 200 ms 为点,小于 800 ms 为划,1 s 及以上为字母间隔
      • 把摩尔斯码表反转成查找表,每次按键后逐个字母解码
      • 组件的模板和样式,以及路由,后来迁移到 provideRouter

      根据 Angular 版本为浏览器重写,时间参数相同。“点”“划”和“下一个字母”按钮是本页额外加的。没有账号,也没有密码。

      全部 33 个项目

      每个项目是什么,以及我写的部分。

        Hedi Bannour

        关于我

        我喜欢走完整条路:找到问题,把东西做出来,再交到人们手里。

        我在斯特拉斯堡大学读过数学和计算机,2023 年进入 Epitech,在动手做中学习。从那以后:33 个项目、五段实习、自由职业,以及三家创办的公司。我会说法语、阿拉伯语和英语。

        写代码之前 在突尼斯 Pierre Mendès France 高中读书时,我经营过一家小网店:通过 Facebook 接单,亲手送货,按需通过人脉找货。2020 年拿到理科高中毕业会考文凭后,我开始在斯特拉斯堡大学学习数学和计算机。

        1. 2016–20突尼斯 Pierre Mendès France 高中,以及第一家网店
        2. 2020–23斯特拉斯堡大学,数学与计算机
        3. 2023–Epitech,软件工程,2028 届
        4. 2023–自由职业开发者
        5. 2024–26五段实习:SN Perfect、Infolog、DataScale AI、Meosis,再回到 SN Perfect
        6. 2025–26创始人:先是 Émile,然后是 Tabeebi;Nearchon 联合创始人
        7. 2027加州 Cal State San Marcos 交换
        技术栈TypeScript、Python、C、C++、C#、Haskell、SQL。Next.js 和 React、FastAPI、Supabase 和 PostgreSQL、Cloudflare、Docker、GitHub Actions。
        AI模型周边的系统:带来源的检索(RAG)、智能体与工具、上下文管理、评估。
        安全在 Epitech 修过六门安全课程,其中包括两个独立完成的安全项目(一个 CTF 和若干 TryHackMe 房间)。HackTheBox Season 9:Silver 段位,完全攻陷 3 台机器。

        聊聊吧。

        2027 年 1 月 18 日至 8 月 13 日,我在圣地亚哥北边的 Cal State San Marcos。告诉我你在做什么。

        60 秒版本

        Hedi Bannour

        AI 产品工程师、创业者。我能把一个 AI 产品从想法做到可运行的系统:界面、后端,以及语言模型周边的一切。

        创业

        经历

        项目

        技术栈

        TypeScript、Python、C、C++、C#、Haskell、SQL。Next.js 和 React、FastAPI、Supabase 和 PostgreSQL、Cloudflare、Docker、GitHub Actions。RAG、智能体与工具、评估。法语、阿拉伯语、英语。

        Player 2