Engineering leadership
Research & development
Turin, Italy
People. Systems. Possibilities.
A shared direction
We find
our direction.
Together.
A shared direction. Room for everyone to contribute.
Drag to rotate.Use the controls.

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 workBehind the decisions, a person.

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.
software development
The technical experience stays.
How I put it to work for the team keeps changing.
Still learning
Effective Management WorkshopAvanscoperta, 2023 ↗
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.
- Understand the goals
- Discuss the options
- Give people ownership
My job is to set a direction and give other people’s expertise room to work.
Projects you can open and read
Fewer slides.
More working code.
/01TypeScript / Logging
LogService
A TypeScript library for organising application logging.
Configurable strategies and providers for application logging.
Explore the repository ↗/02Docker / Observability
Pi System Monitor
Keep an eye on a Raspberry Pi, with metrics and notifications.
Metrics, notifications and container management for Raspberry Pi.
Explore the repository ↗React & Next.js / TypeScript / Node.js & PHP / Docker & AWS
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.
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 ItalianMatteo Vincenti ·
From a request to product data«Which product records have missing data?»Follow the requestClose the walkthrough
01 / The assistant
AI
Interprets the request and selects a tool.
02 / The connection
MCP
The MCP (Model Context Protocol) server exposes the PIM’s tools.
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.
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.