Statement of account · Benjamin AbensurEPFL · Lausanne · 2024 → 2028

BenjaminAbensur

I build software end to end and ship it, I teach two first-year courses, and I take on things outside engineering when they are worth doing.

Portrait of Benjamin AbensurOpen · Summer 2027 internship
Fig. 0 — Benjamin Abensur, Lausanne
  • FieldCommunication Systems, BSc
  • SchoolEPFL, Lausanne
  • Expected graduation2028
  • Looking forSoftware engineering or applied ML, Summer 2027
  • LanguagesFrench (native), English (fluent), Hebrew (basic), Spanish (basic)

Selected work

Five projects, one number each.

Every figure on this page is on my CV or measured in the public repo, and holds up in an interview.

  1. 01

    Kairo

    Next.js · TypeScript · Python · PostgreSQL (Supabase, row-level security) · Claude API · GitHub Actions · Vercel

    Kairo is an AI career CRM. I designed and shipped a daily pipeline aggregating internships, jobs and programmes from 35 career boards, Indeed/LinkedIn (30 markets) and hackathon feeds, each scored 0–100 by rules + an LLM. LLM extraction of deadlines and eligibility, each answer backed by a verbatim quote; 160+ tests, CI, deployed on Vercel. A contact CRM turns freeform notes into structured contacts via Claude, then links each job to the people I know there and prompts who to follow up with.

    • AI career CRM
    • live, behind login
    kairo-internships.vercel.app Private code
    0–100the score every internship, job and programme gets, by rules + an LLM. Deadlines and eligibility come with a verbatim quote behind each answer.
    Fig. 1Kairo landing, hero mockup (September 2026). The app itself sits behind a login.
  2. 02

    Cortex

    Next.js · TypeScript · PostgreSQL · Drizzle · Claude API · LaTeX · Railway

    An AI exam-preparation platform. It learns each course's exam format from past papers, weights every topic by how heavily it was examined, schedules spaced revision on weak points, and generates faithful practice exams via a multi-pass LLM pipeline; I used it to prepare my own exams in 3 EPFL courses. Per-user Postgres schemas, cost caps; deployed on Railway.

    330+tests. Answers accepted only if verified by sandboxed code execution or symbolic checks.
    Cortex, Programme page of the Algorithms course: notions grouped by chapter, each with how many times it fell at a final.
    Fig. 2Cortex, the programme of CS-250 Algorithms: every notion with how many times it fell at a final, sorted by priority.
    Cortex home: the notion to work on today, Max-flow / min-cut, worth 14.5% of the exam and never practised, with a Train button.
    Fig. 3The home screen: the notion that pays off most today, weighted by the exam, and the reviews that are due.
    Cortex, Exams page: the exam composer with a proposed composition of 3 multiple-choice and 4 open problems, and the detected format of the real final: 180 minutes, 100 points.
    Fig. 4The exam composer: the real final's format, detected from the past papers, becomes the default composition.
  3. 03

    ReCHor

    Java 22 · JavaFX 21 · EPFL CS-108, in a pair

    A desktop journey planner for the Swiss public-transport network. It finds every Pareto-optimal journey between two Swiss stops (Connection Scan Algorithm) over real CFF timetables (~258 MB), trading arrival time against changes, by scanning the day's connections once in reverse chronological order over memory-mapped, bit-packed timetable storage that is never deserialised. JavaFX UI with accent-insensitive autocomplete, journey details, iCalendar and GeoJSON export, the search kept off the UI thread; 44 classes, ~3,600 lines of tests, 160 JUnit tests.

    • journey planner
    • open source
    github.com/Benabens/ReCHor
    2.75 Mconnections in one weekday of the real CFF timetables, scanned in a single pass per query. ~258 MB of timetables for seven days, read from memory-mapped files.
    ReCHor: the query fields filled with Lausanne, Zürich HB, 28.05.2025 and 08:00, and the list of journeys with their times, changes and durations.
    Fig. 5ReCHor, Lausanne → Zürich HB on 28 May 2025: every Pareto-optimal journey of the morning, rendered from the app.
    ReCHor: the 8h17 IC 1 journey selected, with its intermediate stops Fribourg and Bern and the arrival at Zürich HB platform 33.
    Fig. 6The 8h17 IC 1 selected: platforms, intermediate stops and the iCalendar and map actions.
  4. 04

    ICoop

    Java · PlayEngine (course engine) · EPFL CS-107, in a pair

    A two-player cooperative 2D game on the course's engine: a fire-and-water co-op game with a boss fight, in the spirit of Fireboy and Watergirl. Each player passes what the other cannot; every interaction between players, projectiles, enemies and elemental walls goes through double dispatch (visitor pattern), and each cell decides what can walk or fly over it. Four areas, keys, orbs, bombs, a chest added beyond the brief, and a final boss with ranged attacks and a conditional weak spot. ~3,700 lines.

    • co-op game
    • open source
    github.com/Benabens/ICoop
    ~3,700lines of game code, in 24 actor classes and 4 areas, written on top of an unmodified course engine.
    ICoop, the Spawn area: the fire player and the water player below a manor, with a heart, a bomb and a pressure plate.
    Fig. 7ICoop, the Spawn area: the fire and water players, a bomb to push and a pressure plate.
    ICoop, the OrbWay area: two corridors with hearts and pressure plates, a fire wall and a water wall, one player in each corridor.
    Fig. 8OrbWay: each player clears the wall the other cannot cross.
    ICoop, the Maze: two columns of flaming skulls with health bars, streams of lava and water, both players attacking between them.
    Fig. 9The Maze: the HellSkull gauntlet, lava and water streams, both players mid-swing.
  5. 05

    Gaming Addiction Prediction

    Python · NumPy, no ML libraries · EPFL CS-233, team of 3

    Predicted gaming-addiction level (3 classes) and score (0–10) from gaming and mental-health data with KNN, logistic/linear regression, K-Means and an MLP with hand-written backpropagation, every gradient checked against finite differences; two written reports. The point is what accuracy hides: the first MLP scored 85% while never once predicting the rare class, 3% of the data. Inverse-frequency weighted cross-entropy lifted rarest-class recall from 0 to 0.69 and macro-F1 from 0.55 to 0.76 (test set), for 0.75 points of accuracy.

    0 → 0.69rarest-class recall, lifted by an inverse-frequency weighted cross-entropy. Macro-⁠F1 from 0.55 to 0.76 (test set).
    Before: sigmoid + MSE
    LowMediumHighRecall
    Low2661400.95
    Medium327500.70
    High01300.00
    After: softmax + weighted cross-entropy
    LowMediumHighRecall
    Low2582200.92
    Medium317150.66
    High0490.69

    Rows: true class. Columns: predicted class. Shade: share of the true class.

    Fig. 10Test-set confusion matrices, redrawn from the milestone-2 report (400 samples). The baseline never predicts High; the weighted loss recovers 9 of 13.

Also on the books

Smaller lines, still real.

Journey

Nine entries, so far.

  1. 01Around 13

    Where it began

    Self-taught Blender, Photoshop and Premiere Pro. 3D artwork and branding for YouTube creators.

  2. 022019 – 2021

    Sneaker Resale Venture, team of 4

    Partner. Secured a license to Flare AIO, a sell-out EU sneaker bot, by automating its restock purchase; ran it on Foot Locker and Snipes drops. Resold the license for about twice its cost; generated roughly €10k over the period.

  3. 032024

    EPFL

    BSc in Communication Systems, Lausanne. Introduction to Machine Learning 5.75/6, Algorithms I 5.5/6, Linear Algebra 5.5/6.

  4. 042024 · 3 months

    NanoSynex

    AI & automation (project-based) for a Technion spin-off, reporting to the CEO. Deployed two offline LLMs (Ollama; Mistral 7B, Llama 3 8B) behind a router with a shared Obsidian memory, so confidential R&D and investor documents never left the machine (GDPR); Python scripts triaging the CEO's Gmail and Outlook inboxes with an LLM classifier; the test reader's experiment exports harmonised and cleaned (Python, pandas), then matched against a partner veterinary lab's reference results to measure agreement rates for a validation study.

  5. 052025

    BABOO, three club nights

    Founder & event producer. Produced 3 club nights end to end; one night at Noche Club (May 2025) brought in CHF 5,000 with an internationally touring DJ.

  6. 06Jul 2025

    Co-camp director

    Co-directed a one-month scout summer camp for 100 children; led a team of 20 counsellors, promoted team leads and wrote the camp's full educational project. Co-managed the €80k camp budget, running the €18k food line myself.

  7. 07Nov 2025

    Linear Algebra Bootcamp (MATH-111)

    Co-instructor: gave the lectures and wrote the exercise sets of a paid one-week bootcamp for 30 first-year students (mid-semester break).

  8. 08Sep 2026

    Teaching at EPFL

    Teaching assistant for Mechanics (PHYS-101) and Linear Algebra (MATH-111). Selected on academic merit for a Mechanics course of 1,000+ students (CS, Chemistry, EE); I lead a weekly 2-hour exercise session and answer questions on the course's Ed forum.

  9. 09Oct 2026

    Biosynex, incoming

    Incoming AI engineer (part-time contractor), remote, for a Euronext-listed rapid diagnostics company. Engaged to introduce the executive team to applied AI, then build AI tools into internal workflows.

Photo

By city, selection in progress.

Open a band to see the rest of the roll.

Music

Afro house, produced in Ableton. I also DJ.

Now on the deck

THE HANDOFF — v2

Unreleased. Master pending.

00:0008:22

Produced in Ableton Live. Played out at the BABOO nights in Lausanne, including Noche Club in May 2025.

Contact

Let's talk about summer 2027.

abensur.benjamin@gmail.com