Ayman, home
Available · remote, or in Tarragona and Barcelona

Ayman Charoui, full-stack developer

Full-stack developer. I build complete web applications, from the backend to the interface, and I take special care with the parts that cannot fail.

Code in production since 20253 projects with code or demoI work in ES · CA · AR · EN
01 · projects

Case studies.

Three projects: the problem, what I decided and why. Each one has its own page with the details.

// case 01 · EV charging SaaS · Etecnic

Correct invoices in nine languages.

problem
Energy operators and airports in several countries need legally valid invoices in their own language and with their own branding.
decision
I internationalised invoicing into nine languages and moved the invoice PDFs to HTML and CSS templates that are generated and tested in CI.
result
Each customer gets invoices in their language and with their brand. I built the invoicing work end to end.
Ruby on RailsRSpecMySQL AuroraMongoDBGitLab CISentry
// case 02 · Zellige Hotels

Every role sees and does only its own part.

problem
Admins, managers, receptionists and guests share one platform, but each of them must only see and touch their own part.
decision
Roles in Spring Security and role-guarded routes in React, with JWT and refresh tokens that rotate on every use.
result
31 backend tests, some against a real PostgreSQL, axe in CI and a public demo.
Java 21Spring BootPostgreSQLReactTypeScriptTestcontainersaxe
// case 03 · CineFlow

One seat, one purchase.

problem
Minutes go by between choosing a seat and finishing the payment. If someone else picks it in that window, both could buy it.
decision
A temporary seat hold when it is picked, confirmation in a transaction with pessimistic locking, and Stripe payments confirmed by a signed webhook.
result
76 PHPUnit tests, including race-condition and payment tests: the same seat cannot be sold twice.
PHP 8.4Laravel 12MySQLStripeJavaScriptPHPUnit
02 · stack

Stack.

The keys I press every day: languages, frameworks, data and tools, all on the same keyboard.

  • Java · where I read code best
  • Spring Boot
  • PHP
  • Laravel
  • Ruby on Rails · I use it every day
  • React · my favourite on the frontend
  • JavaScript
  • MySQL
  • PostgreSQL
  • MongoDB
  • Supabase · in my own projects
  • Stripe
  • Git
  • GitHub
  • GitLab
  • Jira
  • Sentry
  • Cloudflare
  • Postman
  • VS Code
  • DBX Studio
  • Claude

move your mouse over the keyboard and hover the keystap a key to see its name

Logos from Devicon (MIT) and Simple Icons (CC0); trademarks belong to their owners.

03 · how I work

How I work.

What I do on every task, whether in a team or on a project of my own.

  1. 01

    Tests before the merge

    Anything that touches permissions or money ships with its tests. If it is not tested, it is not done.

  2. 02

    Small changes

    Merge requests that can be reviewed in minutes and rolled back without fear.

  3. 03

    Look at where it runs

    When something breaks, I look at the environment too, not just the code. That comes from my years in systems.

04 · about

About me.

I'm Ayman Charoui, from Tarragona. I started programming because it is the best way I know to turn an idea into something real that works.

I come from systems and networks, and since 2025 I have been writing code that runs in production. I like simple code, and I like being easy to work with.

// where I amTarragona, SpainRemote in Spain and abroad, or hybrid in Tarragona and Barcelona.
// path
  • Full-stack developerEtecnic · from internship to permanent contract
  • Higher Diploma in Web Application DevelopmentInstitut Francesc Vidal i Barraquer
  • IT technician internWindows Server, Linux and Office 365
  • Diploma in Computer Systems and NetworksWith honours · 8.6/10
// languages
ESnativeCAnativeARprofessionalENB2

Right now.

outside work

What is on my desk when I close the laptop.

λLAST TRIPBOARDING PASS
TARTarragona
GRAGranada
passenger
AYMAN C.
to
Granada, Spain
the best part
The Alhambra and the San Nicolás viewpoint.
TOGranada
LAST FILMSpider-Man: Brand New Day posterSpider-Man: Brand New Day
SCREEN3ROWFSEAT7

I like Spider-Man, but I expected more.

ONE SEATONE PURCHASE
The Alhambra in Granada at sunset
Granada · Spain
READING CARDNº 001
titleThe Discipline of the Soul
subtitleRefining the character and curing the sicknesses of the heart
authorAl-Ghazali
statusreading
READING
NOW
MEMBER CARDNº 001
sportGymAYMAN C.
I go to the gym.
05 · projects

Got a project?

Right now I'm looking for a developer role. Even so, if you have a specific project that fits what I do, tell me about it and I'll be honest about whether I can help.

// a good fit
  • Custom web applications
  • APIs and integrations
  • Payments and invoicing
  • Improvements to Laravel, Spring or Rails apps
// not a fit
  • WordPress or template shops
  • Native mobile apps
  • 24/7 emergencies
  • Projects with no defined scope
The form is not live yet. In the meantime, write to me at aymanessamadi72@gmail.com.