Full-stack web developer: TypeScript, React, Next.js, Express.

my stack

Development

  • TypeScript / JavaScript
  • React.js / Next.js
  • Node.js / Express.js
  • API REST
  • PostgreSQL
  • Neon
  • Prisma / Drizzle
  • Zod
  • Tailwind / CSS

Tools and methods

  • Git & GitHub
  • Notion
  • Agile / Scrum
  • Jest / Vitest

Deployment

  • Vercel
  • Netlify

my journey

I came to code in a funny way. In France I kept meeting people who worked in tech, and I never understood what they did. They explained, I nodded, and I had no idea what they meant when they said “HTML”. When I decided to retrain, I realized how fascinating code is, and how close it is to the creative work I love: you build something, test it, rework it until it holds, just like in rehearsal. It’s creation, technique and a constant intellectual challenge, and I’m someone who loves learning something new every day.

Black-and-white photo of Gabriel smiling, head resting on one hand, next to a laptop.

my projects

MaPiscine logo with the tagline “Les piscines de Paris, pour tous.tes” above two hand-painted blue waves.

MaPiscine

A web app that brings together the information on Paris’s 42 municipal swimming pools. Interactive map and list, with filters for wheelchair access, a Queer Friendly label, payment methods and live opening status. With an account, users can save favorites and leave reviews.

Role
Solo project: design and development, from user research to deployment
Stack
Next.js, TypeScript, PostgreSQL (Neon), Prisma, Better Auth, Zod, Leaflet, Tailwind CSS, Vitest, GitHub Actions, Vercel
  • Visit the site (opens in a new tab)
  • Visit the repository (opens in a new tab)
  • MaPiscine

    • MaPiscine logo with the tagline “Les piscines de Paris, pour tous.tes” above two hand-painted blue waves.
    • Mobile view of a pool page: Piscine Château Landon, with its address and the Open, Wheelchair accessible and Queer Friendly labels.
    • Mobile map view: Paris pools shown as pins, with search, filters and a list/map toggle.
    • Style guide: blue primary palette, secondary colors, Montserrat type scale and the app’s icons.

    Why. Information on Paris pools is scattered across dozens of pages and hard to compare. As a queer person, I also wanted to know in advance how welcoming a pool would be.

    Process. I ran it solo from start to finish: personas, wireframes in Excalidraw, Figma mockups, a relational data model, then development, 23 unit tests and continuous deployment.

    A technical challenge. Next.js runs the proxy in the Edge Runtime, where Prisma can’t work. I moved session checks to an internal API route running on Node: the proxy calls it, then passes the user’s ID and role to the route handlers.

    Next steps. The admin backend is built and tested; its interface is next, along with holiday opening hours. I’d like to partner with the pools and Paris queer associations, so the data and the Queer Friendly label are kept up to date by those who know them best.

CitySon on desktop: a map of Paris with a selected pin, Caminamos mirando al cielo, and its audio player.

CitySon

Prototype

A sound map of Paris: each pin holds an audio piece tied to a precise place, meant to be heard on site. Designed for site-specific sound art and performance, it could also work as a social network for located sounds. Prototype: the map and the pieces are live; posting is in progress.

Role
Solo project: concept, design and development
Stack
React, React Router, Leaflet, Node.js, Express, PostgreSQL (Neon), Vercel
  • Visit the site (opens in a new tab)
  • Visit the repository (opens in a new tab)
  • CitySon

    • CitySon on desktop: a map of Paris with a selected pin, Caminamos mirando al cielo, and its audio player.
    • CitySon logo in yellow on black, with a map pin after the name.

    Where it comes from. Between 2020 and 2022 in Chile, I created Caminamos mirando al cielo, a site-specific sound walk: listeners had to reach a precise spot, and then the audio guided them. The hardest part was explaining to people how to take part. CitySon is the tool I wish I’d had.

    What it does. Anyone, artists first, can pin a sound to a place on the map. To hear it as intended, you go there: listening becomes situated.

    How it’s built. A React front end and an Express REST API over PostgreSQL, deployed separately. A prototype built in two weeks: today you can explore the map and open each piece.

    Next steps. Posting sounds, authentication and favorites, then a React Native version: it’s an app meant to be used while walking through the city.