Bordeaux, France · Open to remote opportunities

Full-Stack
Software Engineer

I build software with a broader understanding of the product, the users and the business behind it.

About

A short version

I'm Matéo, a full-stack developer based in Bordeaux. I spent three years as an apprentice software engineer at Compagnie Fiduciaire, an accounting group, building internal applications used every day by accountants and back-office teams.

Working that close to a real business taught me things a purely technical path wouldn't: how users actually work, why a feature exists, and what happens when software gets in the way.

I've shipped features across React, Next.js, Vue.js, Symfony and Laravel. Switching stacks regularly taught me to learn fast — I care more about the problem and the architecture than the framework.

Experience

Where I've worked

Three years building internal products in a real business environment, plus an entrepreneurial side project.

  1. Full-Stack Developer · Compagnie Fiduciaire

    3 years — apprenticeship

    Accounting group · internal products

    Built and maintained internal business applications used daily by accountants and back-office teams across the group.

    • Worked across the stack: React, Next.js and Vue.js frontends, Symfony and Laravel backends.
    • Designed REST APIs and relational data models with PostgreSQL.
    • Implemented authentication, roles and fine-grained permissions.
    • Worked in an Agile team with developers, a Product Owner, UX and business experts.
    • Learned the accounting domain well enough to challenge specs and suggest simpler solutions.
    • Contributed to CI/CD pipelines and code reviews.
    ReactNext.jsVue.jsTypeScriptSymfonyLaravelPostgreSQLCI/CD
  2. Founder — Full-Stack & Growth · FitFunnel

    Side project

    Websites & sales funnels for fitness coaches

    An entrepreneurial side project: building websites and sales funnels for fitness coaches, from first contact to delivery.

    • Designed and built landing pages focused on conversion.
    • Worked on user journeys, acquisition and funnel optimization.
    • Automated booking and lead qualification flows.
    • Talked directly to prospects to understand what they actually needed.
    • Learned to ship fast, measure and iterate.
    Vue.jsTailwind CSSAnalyticsAutomations

Selected work

Case studies, not screenshots

A few representative projects. Professional work is anonymized — no client data or internal details.

Feature flags management system

Internal platform — anonymized
Problem
Several internal apps needed to release features progressively to specific offices and roles. Every release was all-or-nothing, which made teams nervous about shipping.
Solution
A central feature flag service with an admin UI and a small API consumed by the other internal apps. Flags could target roles, offices or individual users.
Technical decisions
Kept the API contract minimal and predictable. Used PostgreSQL and caching instead of adding new infrastructure. Wrote it so other developers could integrate it in minutes.
What I learned
When your users are other developers, documentation and a boring, stable API matter as much as the feature itself.
SymfonyPostgreSQLREST APIReact

Business workflow & task management

Internal tool — anonymized
Problem
Accounting teams tracked recurring work (closings, filings, reviews) in spreadsheets. There was no shared view of who does what, and deadlines slipped silently.
Solution
An internal app modeling recurring workflows: assignments, statuses, deadlines and a manager view of the whole team's workload.
Technical decisions
Modeled workflow states explicitly instead of free-text statuses. Role-based permissions from day one. Kept the UI close to the spreadsheets users already knew.
What I learned
Watching users work before writing code changed half of the initial design — and saved weeks of rework.
Vue.jsLaravelPostgreSQL

Notification system

Internal service — anonymized
Problem
Each internal app sent its own emails, with duplicated templates and no way for users to control what they received.
Solution
A shared notification service handling email and in-app messages, with centralized templates and per-user preferences.
Technical decisions
Asynchronous processing so sending never blocks a request. Idempotency to avoid duplicate messages. Versioned templates to keep changes safe.
What I learned
Reliability is a feature. Most of the work in a system like this lives in the failure paths, not the happy path.
SymfonyPostgreSQLAsync jobs

FitFunnel

Founder — side project
Problem
Fitness coaches have an audience but struggle to turn it into booked calls. Most don't have the time or skills to build a proper funnel.
Solution
Landing pages and sales funnels focused on one goal: getting qualified prospects to book a call. Booking and lead qualification were automated.
Technical decisions
Conversion-first pages over visual complexity. Used automation tools where custom code wasn't worth it. Measured before changing anything.
What I learned
Talking to customers is a skill. Building the product is half the job — the other half is understanding why people buy.
Vue.jsTailwind CSSAutomationsAnalytics

Tech

Tools I work with

Frontend

ReactNext.jsVue.jsJavaScript / TypeScript

Backend

PHPSymfonyLaravelRubyREST APIs

Data

PostgreSQL

Engineering

GitCI/CDTestingSoftware architecture

I treat frameworks as tools, not identities. What stays constant is understanding the problem, the architecture and the data — the rest can be learned quickly.

Beyond code

How I think about software

Engineering

Build systems that are clean, tested and maintainable — code the next developer can work with.

Product

Understand why a feature exists before building it. Push back when a simpler solution does the job.

Business

Software exists to create value. Knowing how it does that leads to better technical decisions.

Let's build something useful.

I'm open to full-stack software engineer roles in startups, scale-ups and SaaS companies. Feel free to reach out.

Based in Bordeaux — Open to remote opportunities in France / Europe