Dogukan Cirpan

Développeur fullstack Vue / Nuxt

Depuis deux ans, je construis le produit d’un SaaS d’enrichissement de données : front Nuxt, API Nitro, Postgres, Stripe.

Aujourd’hui Développeur Front-End & UX/UI Designer chez Reverse Contact. Pour en parler, écrivez-moi .

Portrait de Dogukan Cirpan
moi, à peu près

6 ans

en production

5 entreprises

CDI, mission, freelance

Front + API + base

sur le même produit

Paris

et remote francophone

Parcours

Cinq entreprises, un même métier.

Du premier site refondu en freelance au SaaS développé de bout en bout aujourd’hui.

  1. Logo Reverse ContactReverse ContactDéveloppeur Front-End & UX/UI Designer

    août 2024 – aujourd'hui · CDI · Paris

    J’ai construit l’application Nuxt et une partie de l’API Nitro d’un SaaS d’enrichissement de données.

    • Développement de la web app et de son API Nitro en TypeScript, avec Supabase pour la base PostgreSQL, l’authentification et le stockage S3.
    • Import CSV en masse : un fichier peut porter des dizaines de milliers de lignes, donc rien ne peut être synchrone. Chaque ligne a son état, son coût et son compteur de tentatives ; le traitement est annulable, il repart après échec et rend un fichier de résultats.
    • Crédits et paiements Stripe : le coût est estimé avant le lancement puis mesuré à l’exécution, et un import qui épuise le solde en cours de route s’arrête proprement au lieu de se perdre.
    • Tableau de bord analytique sur Redis et Postgres, et espaces de travail multi-membres, ouverts par milliers.
    • Transformation de requêtes en langage naturel par LLM.
    • Travail orienté produit, en lien direct avec les équipes commerciales et back-end.
    • Nuxt 3
    • TypeScript
    • Nitro
    • Supabase
    • PostgreSQL
    • Redis
    • Stripe
    • Tailwind CSS
  2. Logo CooverCooverDéveloppeur Full Stack

    janvier 2024 – février 2024 · Freelance · Paris

    J’ai développé le tunnel de souscription courtier d’un SaaS d’assurance B2B.

    • Développement du tunnel de souscription courtier en Vue.js et AdonisJS.
    • Récupération des sociétés via l’API Pappers pour préremplir le tunnel.
    • Gestion du routage et du store, en Vuex puis Pinia.
    • Génération et envoi de PDF depuis l’API, migrations, validateurs et modèles côté AdonisJS.
    • Travail sur le script du comparateur d’assurance destiné aux courtiers.
    • Vue.js
    • AdonisJS
    • Pinia
    • TypeScript
  3. Logo ApaveApaveDéveloppeur Full Stack

    octobre 2022 – décembre 2023 · Mission · Île-de-France

    J’ai monté la bibliothèque de composants de la nouvelle version, et migré l’ancienne de PHP 7.3 à 8.1.

    • Mise en place de l’environnement front de la nouvelle version, en Vue.js et Storybook.
    • Développement des composants d’après la charte Figma, des composables et des appels d’API.
    • Développement en BDD et TDD, avec rédaction des tests de bout en bout en Cypress et Cucumber.
    • Développement de l’API REST en Symfony et API Platform.
    • Migration de PHP 7.3 vers 8.1 sur l’ancienne version, et requêtes SQL complexes.
    • Revue de code avec le lead développeur.
    • Vue.js
    • Storybook
    • Symfony
    • API Platform
    • Cypress
    • Cucumber
    • PHP
  4. France Bois ServiceDéveloppeur Full Stack

    mai 2020 – juillet 2022 · CDI

    J’ai conçu et développé un ERP interne, de la base de données à l’interface.

    • Conception et développement de l’ERP en Vue 3.
    • Mise en place de l’API REST en Symfony 6 et API Platform 3.
    • Gestion des commandes, traçabilité des stocks, génération de rapports et automatisation des processus administratifs.
    • Recueil des besoins métier auprès des équipes internes, puis traduction en solutions techniques.
    • Sécurité et maintenance de l’application dans la durée.
    • Vue 3
    • Symfony 6
    • API Platform
    • PostgreSQL
    • Doctrine
  5. Logo Hello CourtierHello CourtierDéveloppeur PHP / WordPress

    décembre 2019 – février 2020 · Freelance · Paris

    J’ai refondu et optimisé une application web, en accompagnant le client.

    • Refonte des pages principales et optimisation de l’application.
    • Travail sur les scores PageSpeed.
    • Migration de l’application vers un nouvel hébergeur.
    • Accompagnement du client.
    • PHP
    • WordPress
Méthode

Comment je travaille.

Je pars du produit, pas de la techno

Les besoins métier viennent des équipes commerciales et back-end, et je les traduis en fonctionnalités. Le choix technique arrive après, pas avant.

Je type de bout en bout

Du schéma de base jusqu’au composant. C’est ce qui permet d’avancer vite sans casser, et ce qui rend une base lisible par quelqu’un d’autre que son auteur.

J’utilise l’IA là où l’erreur est réversible

Échafaudage, tests, migrations répétitives. Je reprends la main sur tout ce qui touche à la donnée client, à la facturation et à la sécurité. La revue, l’architecture et la décision de livrer restent de mon côté : rien ne part en production sans que je puisse en expliquer chaque ligne.

J’ai livré du LLM en production, pas seulement dans mon éditeur

La transformation de requêtes en langage naturel de Reverse Contact passe par un modèle. Savoir ce que ces modèles ratent une fois facturés a changé ma façon de les employer pour coder : je les emploie beaucoup, je ne leur fais confiance sur rien.

Compétences

La boîte à outils, par usage.

Front-end

  • Vue 3
  • Nuxt 3
  • TypeScript
  • Tailwind CSS
  • GSAP
  • Storybook

Back-end

  • Node.js
  • Nitro
  • AdonisJS
  • NestJS
  • Symfony
  • API Platform

Données et infrastructure

  • PostgreSQL
  • Supabase
  • Redis
  • Docker
  • CI/CD
  • Stripe

Qualité et méthode

  • TDD
  • BDD
  • Cypress
  • Cucumber
  • Revue de code
  • Figma

Veille, hors production

h3 v2 réaligne la couche serveur de Nuxt sur les primitives web standard, Rolldown remplace Rollup dans Vite, et le mode Vapor retire le DOM virtuel là où il coûte cher. Je suis ces bêtas de près. En production je reste sur ce qui est stable : je préfère une migration ennuyeuse à une dette de bord.

Formation

Licence · Développeur d’application — OpenClassrooms, janvier 2019 – décembre 2019

Langues

  • Français — Langue maternelle
  • Anglais — Professionnel limité
Questions

Ce que l’on me demande le plus souvent.

Les deux, et c’est le cœur du sujet. Chez Reverse Contact je développe l’application Nuxt et une partie de l’API Nitro qui la sert : une fonctionnalité part du schéma Postgres et arrive à l’écran sans changer de main. Avant cela, AdonisJS chez Coover, Symfony et API Platform chez Apave et France Bois Service.

Contact

Parlons-en.

Un poste, une mission, une question : un e-mail précis reçoit une réponse précise.