Hi, I'm Eliot

software engineer

AI agents, developer tooling, and the systems underneath them.

Available from September 2026

About

I’m Eliot — software engineer who spends too much time outdoors and not enough time away from a keyboard. Still figuring out the balance.

I’m finishing my engineering degree in France while wrapping up an internship at Botpress in Montréal, where I get to both build with the product and build the product — developing internal AI agents while contributing to the core SDK and developer tooling. Before that, a fintech startup in Paris, a high-stakes benchmarking platform, and freelance work for an Australian company — enough variety to feel at home in the unfamiliar.

I care about doing things right — not perfectly, just properly. I can’t pretend something is fine when I know it isn’t, which probably makes me a bad seller and a good teammate, depending on who you ask. Also relentlessly curious — I can’t use something I don’t understand, which in the AI era feels increasingly important.

When I step away from the keyboard — it happens — you’ll find me:

Always up for talking code, travel tips, Montréal gems, or whatever rabbit hole I'm in this week — feel free to reach out.

Experience

  1. Botpress

    Montréal, Canada
    Software Engineering Intern March 2026 – August 2026
    • Built Midas, a production enrichment agent running daily across 2,000 contacts. LLM classification, workspace resolution, and CRM write-back replaced a manual sales-ops process.
    • Shipped Drag, a company-wide RAG security agent that answers policy questions with cited sources and auto-fills vendor security questionnaires, saving 25h/month for legal and people ops.
    • Built a self-healing retrieval loop for it: unanswered queries route to subject-matter experts on Slack, and their replies are ingested straight back into the knowledge base.
    • Contributed fallback model routing to Botpress's open-source LLM engine (15k stars), letting users define provider priority chains that auto-retry on failure.
  2. Koesio

    Valence, France
    Software Engineer Intern January 2025 – June 2025
    • Built a benchmarking platform (Vue.js / Laravel / PostgreSQL) that replaced manual spreadsheets with an auditable system, powering group margin calculations on a $300M project reviewed by executive and project committees.
    • Authored the software specs and led a 3-person Agile team through sprint planning and task dispatch.
  3. Fullstack Engineer Intern June 2024 – August 2024
    • Built a net-new payout tracking view (React / GraphQL / Express) handling $1M+ in monthly transactions, giving customers their first centralized view of those flows.
    • Designed and integrated a payment refund system on the Stripe API, removing a manual support step.
  4. Freelance

    Remote
    Fullstack Developer October 2022 – December 2023
    • Built and deployed client websites with Astro, TypeScript, and TailwindCSS, tuned for SEO, accessibility, and performance.
    • Migrated an ageing WordPress site for an overseas client and added search, lifting organic traffic by 25%.
technologies - architecture - software - optimization - accessibility - request - api - performance - database - stack - algorithm - user experience - technologies - architecture - software - optimization - accessibility - request - api - performance - database - stack - algorithm - user experience - 
user experience - algorithm - stack - database - performance - api - request - accessibility - optimization - software - architecture - technologies - user experience - algorithm - stack - database - performance - api - request - accessibility - optimization - software - architecture - technologies - 

Technologies

Projects

Fine-Tuning Tiny LLMs to Write Git Commits

An end-to-end ML project: I fine-tuned small, open-weight LLMs to turn a git diff into a clean Conventional Commit message — running fully offline as a git hook, so your code never leaves your machine. It spans the whole pipeline: ~12k diff/message pairs scraped from 13 disciplined TypeScript repos, LoRA fine-tuning with Unsloth, a three-layer evaluation (ROUGE-L, structural checks, and an LLM-as-judge), and deployment with Ollama. The headline result: a tiny fine-tuned model beats prompting one several times larger.

  • Python
  • LoRA
  • Unsloth
Training and evaluation loss curves for the Qwen2.5-Coder-1.5B fine-tune

Hestia Généalogie

A showcase site for a genealogist and historian of built heritage. The brief was visibility: for a one-person business, being found is the product. So the whole build bends toward search — keyword-targeted content, static rendering, and a hard performance budget. It scores 100 across the board on Lighthouse and first-paints in 0.3s.

  • Astro
  • SEO
  • SASS
hestia généalogie

My Portfolio

The site you're on. Astro renders everything to static HTML; SolidJS is loaded only for the two pieces that need real client-side state — the Othello board and these technology tabs. The contour-line background is a hand-written GLSL shader, not a video. Light and dark themes, two languages, and an easter egg hidden somewhere.

  • Astro
  • SolidJS
  • Three.js
mon portfolio

Spotify Clone

A pixel-level rebuild of the Spotify web player. With the design and the feature set fixed by the original, the whole exercise was engineering: a real audio player with seek and queue state, OAuth against the Spotify API, server cache in React Query, client state in Redux Toolkit. Copying something well turns out to be a good way to find where the hard parts actually are.

  • Next.js
  • Redux
  • Spotify API
spotify clone

Contact

Hiring, collaborating, or just curious — my inbox is open.