Skip to content

Fine Software

PHP (opens in a new tab) at the core, Laravel (opens in a new tab) and Symfony (opens in a new tab) as my tools of choice. TypeScript (opens in a new tab), React (opens in a new tab), Next.js (opens in a new tab) and Node (opens in a new tab) when the product calls for them.

I'm Daniele Barbaro. Freelance since 2012, in Turin and remote.

Pencil portrait of Daniele Barbaro, arms crossed, wearing round glasses and a burgundy t-shirt with the Plin Code agnolotto printed in gold.

Tech stack

At the core
  • PHP
Specialities
  • Laravel
  • Symfony
When the product calls for it
  • TypeScript
  • React
  • Next.js
  • Node.js
  • NestJS
  • Vue.js
Data and infrastructure
  • PostgreSQL
  • MySQL
  • MongoDB
  • Redis
  • Docker
  • Nginx
  • Tailwind CSS

On the back end I work with Symfony and Laravel. On the front end I use React, often on Next.js, for modern web applications.

Four recipes I cook most often

Each one lists what goes in and how long it takes.

Fractional tech lead

Ongoing technical leadership: someone who knows your codebase, understands your business context and can guide architectural decisions, without the cost of a permanent hire.

Ingredients
A growing product team, usually on PHP with Laravel or Symfony. From you: a seat at standups and planning, and your pull requests to review.
Time
12 or 16 days per monthan ongoing commitment, not a one-off
How fractional leadership works

Laravel and Symfony consultant

Your team is capable, your product is working, but something feels off. Architecture reviews and specific technical challenges.

Ingredients
A Laravel or Symfony application. From you: the problem in your own words and access to the code.
Time
A few days to a couple of weeks
What consulting covers

Legacy refactoring

Restoring maintainability to an aging codebase without a risky rewrite, in small reversible steps.

Ingredients
An application that has run in production for years. From you: the developers I work alongside.
Time
12 or 16 days per monthor focused days for a first assessment
How refactoring works

Codebase audit

Before significant technical decisions, an honest assessment of where your application stands: what works well, what needs attention, what risks to address first.

Ingredients
Your repository. From you: a first conversation about what prompted the audit. You get a written report that you own.
Time
2 to 5 daysdepending on the size of the application
What an audit covers

My rates are published, with no form in between: see the rates page.

How I work on existing code

I don't believe in big-bang rewrites. They're risky, expensive, and often unnecessary. Instead, I practice incremental refactoring: making the codebase better step by step while keeping the system running and delivering value.

I work alongside your developers, not instead of them. Knowledge transfer is built into everything I do.

How legacy refactoring works
app/Actions/RegisterToContestAction.php+12 -5
@@ -9,8 +9,15 @@ public function execute(Contest $contest, RegistrationData $data): Registration {removed: if ($contest->registrations()->count() >= $contest->max_participants) { throw new ContestFullException; } return $contest->registrations()->create($data->toArray());added: return DB::transaction(function () use ($contest, $data) { $locked = Contest::query() ->whereKey($contest->getKey()) ->lockForUpdate() ->sole(); if ($locked->registrations()->count() >= $locked->max_participants) { throw new ContestFullException; } return $locked->registrations()->create($data->toArray()); }); }
Two people, one seat left: both got in. The check and the insert now happen under a lock, so the second one gets a clear "full" instead. From my own Laravel code, trimmed.

Open source I maintain

Every package started the same way: I needed something, I had already used it in at least two places, it did not exist, so I built it. Then I released it because someone else probably had the same problem.

downloads in total
531,894
downloads a month
28,803

Across 22 packages. Read from Packagist on 4 November 2026.

I am a maintainer and main contributor of PHPVector (opens in a new tab), a pure-PHP vector database with HNSW (opens in a new tab) and BM25 (opens in a new tab) algorithms.

All packages and contributionsMy Packagist profile (opens in a new tab)

Main packages by downloads

  • laravel-vat-eu-validator

    506,851 downloads

    A simple package that validates EU VAT numbers against the central ec.europa.eu database.

    PackagistGitHub

  • laravel-istat-geography

    10,029 downloads

    Laravel package for importing and managing Italian geography data from ISTAT.

    PackagistGitHub

  • laravel-clean-architecture

    4,342 downloads

    Laravel package for generating Clean Architecture structure.

    PackagistGitHub

  • kml-parser

    3,920 downloads

    A Laravel package to parse KML and KMZ files.

    PackagistGitHub

  • laravel-istat-foreign-countries

    2,617 downloads

    Laravel package for importing and managing foreign countries data from ISTAT.

    PackagistGitHub

Job boards: 8 packages, seven ATS connectors on one shared core.

Why "Plin"

The name Plin Code reflects my passion for clean code and my roots in Turin, where the plin agnolotto is a symbol of tradition and perfection.

I'm Daniele, a Software Engineer, freelance since 2012. I build robust, scalable software with care for the details. Laravel on the back end, TypeScript on the front end: software that solves real problems, not demos.

More about me

Who
Daniele Barbaro
Since
Freelance since 2012
Where
Toolbox Coworking (opens in a new tab), Turin, and remote
Code
github.com/Plin-Code (opens in a new tab)

Events

Active participation in PHP Day (opens in a new tab), meetups hosted by GRUSP (opens in a new tab) in Turin and Milan, and the monthly Open Source Saturday (opens in a new tab) in Turin.

Speaker at LaravelDay 2025 (opens in a new tab) with the talk "CI/CD per applicazioni Laravel" and at LaravelDay 2026 (opens in a new tab) (Verona, 18 November 2026) with "Un anno di architettura esagonale in Laravel".

Other ways to work together

MVP rescue
Your MVP works and customers are using it, but deployments feel risky. I stabilize the foundations without a full rewrite.
Vibecode rescue
A security audit for software written with AI, by a person rather than a scanner. Italian page.
Daily rate
A flat rate per day, without the complications of hourly billing.
Monthly collaboration
Senior engineering capacity embedded in your workflow, 12 or 16 days per month.
Training
Ready-to-deliver courses from 1 to 3 days on Laravel, NestJS, Next.js and PestPHP, with hands-on mentoring.

Ready to discuss your project, in Turin or remotely?

Let's talk about how I can help you achieve your goals.

me@plincode.tech

In TurinToolbox Coworking (opens in a new tab)
via Agostino da Montefeltro 2
Torino, TO 10134

The door is always open for a chat over coffee.

RemoteNot in Turin? Book a call (opens in a new tab) or write to me.