Four areas. They’re the ones I’ve worked in long enough to talk about with facts instead of a list of technologies.
Integration between business systems
The catalogue lives in the ERP, the orders arrive from the e-commerce, and in between there is almost always a person copying. SAP and Microsoft Dynamics are global standards and have documentation; the sector-specific Italian ERPs do not — and whoever runs them has very few suppliers to choose from.
- Twenty different clients: repeatability, not luck.
- Tens of thousands of items per catalogue.
- 2 to 10 synchronisations a day, depending on the client.
On the hardest integration I’ve done, the worst problem wasn’t technical: it was the availability of the consultants on the other side. The worst data conflict wasn’t about prices either — it was collations.
Industrial software
On a shop floor every machine is a different brand and a different generation, and there is no standard to lean on. OPC UA, Modbus, vendor APIs, raw sockets. The worst machines are the ones with no documented protocol: there is nothing to read, you work out how they speak by watching what they say — while the plant keeps producing.
One machine type at the start, about twenty today, across fifteen to twenty installations. Added, not rewritten.
Data and AI
A conversational engine that turns a plain-language question into SQL and returns a table and a chart. Three barriers sit outside the model: allow-listed tables only, a read-only connection, every query validated before it runs.
Safety lives in the database, not in the model’s good intentions.
In use as a decision-support system by 7-8 people at board level. Built in two to three months, then built a second time in a different industry. One honest note: the initial calibration matters a lot.
Cloud and infrastructure
Two different jobs, and worth keeping apart.
I run on-premise servers, shared hosting, VPS and clients’ Azure tenants. Years of operation, not a project.
I design infrastructure as code — thirteen stacks, thirty-seven resources — and a migration between two clouds accompanied by a 475-call audit.
That migration started from an economic opportunity: startup credits. The Italian region was a design decision taken inside the migration: the health data stays in Italy. I write it in that order because that is the order it happened in.
Test and production environments are always separate. No change reaches users without having passed through somewhere it could break without doing damage.
The first step is a conversation, not a quote.
Tell me what the problem is. If I can solve it I’ll say so, and if I can’t I’ll tell you who can.