Matteo
Vincenti
Menu

Engineering leadership
Research & development

Turin, Italy

A shared direction

We find
our direction.
Together.

A shared direction. Room for everyone to contribute.

Drag to rotate.

Matteo Vincenti, standing with his arms crossed

Matteo VincentiEngineering Team Lead, On Page®

I set the technical direction. Part of that is making sure the team can make decisions without having to ask me every time.

See how I work
Code is a starting point.

Behind the decisions, a person.

Matteo Vincenti, standing with his arms crossed
Matteo VincentiTurin, IT

From writing software to leading a team.

My job
isn’t to have
every answer.

I write code, and at On Page® I also work on architecture, technical direction and research. I want the reasoning behind a decision to make sense to the person who has to revisit it a few months later.

When the team knows the constraints, we can discuss a different approach on its merits, including one I hadn’t considered.

How I got here
14.Years in
software development

The technical experience stays.
How I put it to work for the team keeps changing.

A note on leading people.

The best idea
doesn’t have to be mine.

Some of the work never appears in the code: listening properly. Asking one more question. Making room for an approach you hadn’t considered.

That’s where a group starts becoming a team.

It can all begin with one person.

A small gesture. A different point of view.

Every contribution changes the picture.

What this looks like in practice

Context first.
Then the choice.

These situations call for different choices. Here’s where I’d start with each one.
Pick a situation

Three situations. One way of thinking.

Trust and responsibility

Context comes before the solution.

When the reasoning behind a decision lives in one person’s head, the whole team depends on that person. I prefer to share the goals and constraints, hear people’s ideas and make it clear who can decide what.

  1. Understand the goals
  2. Discuss the options
  3. Give people ownership

My job is to set a direction and give other people’s expertise room to work.

What I’m working on now

I design agents.
And connect them to software.

I design agents and the MCP servers that connect them to software: what data they can read, which operations they can request and with whose permissions. I work on the code, the workflows and context retrieval with RAG.

I start with what the application actually does. Then I decide which operations to expose to agents, what constraints they need and where someone must confirm a change.

Step / 01

A description starts with sources.

The example starts with a request: fill in the missing descriptions for a set of products. I retrieve relevant specifications and documents, with references. RAG gives the model those sources as context; it doesn’t guarantee that they are complete or correct.

Input
A request to complete descriptions, plus product documentation.
Output
Useful specifications and passages, with source references.
Illustrative pseudocode
request = readRequest()retrieved = search(productDocs, request)context = selectRelevant(retrieved)sources = attachReferences(context)

What needs checking

Missing data is not an invitation to make it up.

Step 1: A description starts with sources.

Illustrative workflow. No model is running. This is a general example, not On Page®’s architecture.

From design to product

On Page® / MCP

Beyond
the chat.

At On Page®, I worked on this connection: making the PIM accessible to AI assistants through MCP. A request can become an operation on product data, with the permissions of the person making it.

Read about the project · in Italian

Matteo Vincenti ·

From a request to product data«Which product records have missing data?»Follow the request
  1. 01 / The assistant

    AI

    Interprets the request and selects a tool.

  2. 02 / The connection

    MCP

    The MCP (Model Context Protocol) server exposes the PIM’s tools.

  3. 03 / The software

    On Page®

    On Page® returns the data the user can access.

Illustrative example. Not connected to the PIM.

Read

Product records, missing attributes and information to compare.

Act

Descriptions, translations and data updates, including across multiple products.

The user’s permissions still apply. Sensitive operations require confirmation.

A little more context

About my work.

The full profile
Who is Matteo Vincenti?

I'm an Engineering Team Lead at On Page® in Turin, Italy. I started in software development; today my work also includes technical leadership, architecture, and research and development.

What do you do at On Page®?

I work on the technical decisions behind the product and on testing new ideas. I think about how a system can evolve, and how easy it will be for the people working on it to maintain and change it.

What does leading an engineering team mean to you?

Making the goals clear and explaining the reasons behind decisions. I want people to have the context they need to decide, challenge ideas, and bring their expertise to the work.

What is your current work on software agents and AI integrations?

I design software agents, MCP (Model Context Protocol) servers, and integrations that let AI use the data and capabilities of existing software. I also work on workflow orchestration and RAG (retrieval-augmented generation). I still enjoy writing code and remain hands-on with software development.

Where can I find something you've built or written?

On GitHub you'll find LogService, a TypeScript logging library, and Pi System Monitor, a set of tools for monitoring Raspberry Pi. On the On Page® blog I wrote about integrating AI, MCP, and PIM; the article was published on 2 August 2026 and is in Italian.

Something you’d like to think through?

An engineering decision, a team question, or connecting agents to software: send me a message on LinkedIn.

Let’s talk.

Matteo Vincenti / Engineering Team LeadOn LinkedIn