Fullstack engineer · Paris

Every layerof the stack,owned.

I take products from interface and UX work, through the API and business logic, down to the database, the pipeline and the machine it runs on. This site is built to demonstrate that rather than claim it — the architecture section below is a live map of this site's own system.

CurrentlyShipping client web and mobile work at The Coding Machine
Begin trace
01 Client

From the first wireframe to the running process.

I work with founders and teams who need one person who can hold the whole picture — the interface people use, the logic behind it, and the pipeline that puts it in production. Based in Paris, shipping since 2020.

01

Understand the problem before proposing a system

02

Clear interface, clear architecture, clear decisions

03

Ship it, measure it, and own what happens next

02 Interface → Data

The stack, arranged by the layer it works in.

Not a logo wall. Each entry names where it was actually used — a role, a project, or this site's own infrastructure. Hover a row to see the evidence.

Depth
WorkingSolidLoad-bearing
01

Interface

10

What the user touches. Rendering, state, motion, accessibility.

10 in this layer

02

Transport

6

How the layers talk. Contracts, realtime, auth.

6 in this layer

03

Logic

9

Where the rules live. Services, validation, business behaviour.

9 in this layer

04

Data

5

What persists. Schema, queries, the cost of getting it wrong.

5 in this layer

05

Delivery

7

Getting it into production and keeping it there.

7 in this layer

03 Services

Four systems, shipped.

Each one is listed with the layers it actually touched, so the scope is legible rather than implied. Open a row for the detail.

Layer depth

InterfaceTransportLogicDataDelivery
  1. Built a Nuxt 3 product that turns location, group size, and hobbies into more relevant trip suggestions, helping users explore travel options faster and discover rental agencies that fit their plans.

    Interface
    Nuxt 3Vue 3GeolocationPersonalization
    Logic
    TypeScript
04 Client → Infra

This site, explaining itself.

Every node below is a real file, process or service in this repository — not an illustration. 16 components, 19 calls, and no database, because a portfolio does not need one.

Nodes
16
Edges
19
Layers
6
Databases
0
System graph
ClientEdgeAPILogicDataInfra
Layered diagram of this site's architecture: 16 components across 6 layers, connected by 19 calls. BrowserService workerNuxt SSRnginxNitro serverPOST /api/contactPOST /api/auditPOST /api/audit-ai-reviewuseAuditQuestionnairequestions.jsonBrevo SMTPapi.mistral.aiAudited siteGitHub ActionssystemdGCE VM

Tap a component to inspect it · scroll the diagram sideways

Loading graph…

Components16
edge

Nitro server

.output/server/index.mjs

The single Node process serving both SSR and the API. Runs under systemd on one VM, which is why the in-memory rate limiter is sound here and would not be behind two replicas.

Process
1
Node
20

Connects to

05 Delivery

Six years of stack, accumulating.

Every technology below is placed at the year it first appears in my real record. Reading across shows the stack broadening; reading down shows which layer it broadened into.

Distinct tech
34
Span
2020–2026

Stack growth by year. Select a year to read what arrived and which role it came from.

202426 technologies in the stack by this point

Chef de Projet / Fullstack JS Developer

The Coding MachineParis, FranceFeb 2024 — Presentlive

Delivered custom web and mobile solutions shaped around client goals, with a strong focus on execution, communication, and production-ready outcomes.

  • Shipped custom web and mobile features
  • Bridged client needs and technical execution
  • Delivered solutions aligned with business requirements
06 Proof

A real audit, free, in four minutes.

I assess sites against 42 criteria in six categories. The tool below runs that methodology on your site — and fetches your live page to generate a scored UX review alongside it.

Criteria distribution42 total
  • Usability17
  • Navigability8
  • Attractiveness6
  • Usefulness5
  • Credibility3
  • Accessibility3
Answer scale
YesPartiallyNoNot possible

"Not possible" is a distinct answer, not a failure — which is what makes a score defensible to a client.

Automated pass /api/audit-ai-review

Your page is fetched server-side, stripped to its structure and content, then scored on six axes with a prompt calibrated to state its own limits — it will not claim to judge what HTML cannot show.

  • Visual design
  • Navigation clarity
  • Conversion UX
  • Content hierarchy
  • Credibility signals
  • Messaging clarity
Fetch guard
Private and loopback ranges refused
Output
Rebuilt field by field before display
Delivered
On screen, and by email with your answers
07 Contact

Tell me what you're building.

Goes straight to my inbox with your address set as the reply-to. I answer everything that isn't a template.

Direct messagePOST /api/contact