Backend Software Architect · Java & Spring

Backend systems built to hold up

Since 2016, I've been building Java and Spring systems where security, auditability, and reliability come first.

Whether you need a new system designed from scratch, an existing one scaled up, or a codebase brought back under control, I'd be glad to help.

Now
Role
Software Architect at Tinexta Cyber
Building
Telaio, an open source Spring Boot framework, and an MCP server for it
Focus
Clean architecture, development standards, and application security
Based in
Padova, Italy · CET

What I do

Architecture, security, and delivery from initial design to production

These are the areas I've worked on over the years and where I can help today.

Backend Architecture

Java/Spring systems designed from scratch or evolved from existing ones: service boundaries, data access, messaging, and gradual modernization of legacy code.

Application Security

Authentication and authorization (OAuth 2.0, OIDC, SAML 2.0, RBAC / ABAC), dependency and vulnerability management, and pentest remediation.

Platform & Delivery

DevSecOps pipelines with quality gates, containerization and deployment on Kubernetes and cloud, shared libraries, and project archetypes that keep teams aligned.

Team Enablement

Training and mentoring on Spring and microservice architecture, code quality, development standards, testing, and AI-assisted development workflow integrations.

Experience

Designing and securing backend systems since 2016

2020 — present

Software Architect

Tinexta Cyber · Padova, Italy

Architect for multiple product teams: technology choices, application security, shared libraries, and CI/CD standards. Designed the core of a home-banking platform migrated from mainframe to microservices and introduced AI engineering into the development lifecycle.

Java · Spring · Kafka · Redis · Docker · Kubernetes · Helm · AWS · Azure · Jenkins · SonarQube · Oracle · PostgreSQL · MongoDB
2019 — 2020

Full Stack Developer

Gruppo 4 · Padova, Italy

Built core components of a proprietary Kotlin and Spring framework for web applications and CMS, REST integrations, and high-volume Spring Batch jobs.

Kotlin · Java · Spring · Hibernate · Spring Batch · Docker · Oracle · PostgreSQL · MySQL
2016 — 2019

Software Developer

Corvallis · Padova, Italy

Developed an anti-money laundering suite for banks and insurers: product features, SOAP and REST integrations, CI/CD pipelines with Liquibase, and customer support on their installations.

Java · Spring · GWT · Angular · Liquibase · Jenkins · Docker · Oracle · SQL Server · PostgreSQL

Stack

The technologies I work with

Languages

  • Java
  • Kotlin
  • TypeScript

Backend

  • Spring Boot
  • Spring Security
  • Hibernate / JPA
  • Spring Batch
  • OpenAPI

Frontend

  • React
  • Angular
  • Spring MVC
  • jQuery

Architectural Styles

  • Microservices
  • Modular monoliths
  • Event-driven
  • REST APIs

Data & Messaging

  • PostgreSQL
  • Oracle, SQL Server, MySQL
  • MongoDB
  • Redis
  • Apache Kafka
  • Liquibase

Platform

  • Docker
  • Kubernetes
  • Helm
  • AWS, Azure

Build & Quality

  • Maven
  • Jenkins
  • SonarQube
  • JUnit

Security

  • OAuth 2.0 / OIDC
  • SAML 2.0
  • RBAC / ABAC
  • SCA, SAST, DAST

AI Tooling

  • Claude Code
  • MCP

Open source

Telaio

A Spring Boot framework that turns your entities into secured, audited, and metered REST APIs

Declare an entity, a repository, and one small @DalService class. Telaio generates the REST endpoint with filtering, pagination, operation-level authorization, field-level RBAC, structured audit logging, and metrics—all wired by auto-configuration.

JavaSpring BootApache 2.0com.paganbit on Maven Central
// one class. no controller, no DTO, no mapper.
@DalService(name = "products")
public class ProductDalService
        extends JpaDal<Product, Long> {
}

$ GET /dal/v1/products?q=price>500 and category:'electronics'
200 OK · 2 of 2 · page 0
[{ "name": "Developer Laptop Pro", "price": 1499.99 },
 { "name": "4K Monitor 27\"", "price": 549.00 }]
$ 
// same shape on MongoDB: the q= filter becomes a $expr.
@DalService(name = "notifications")
public class NotificationDalService
        extends MongoDal<Notification, String> {
}

$ GET /dal/v1/notifications?q=channel in ['EMAIL', 'SMS']
200 OK · 2 of 2 · page 0
[{ "subject": "Welcome aboard", "channel": "EMAIL" },
 { "subject": "Ticket update", "channel": "SMS" }]
$ 
  • Persistence-agnostic. One Dal contract built on Spring Data; JPA/Hibernate and MongoDB ship as backends.
  • One query language. The same q= filter compiles to a JPA Specification or a Mongo $expr. Every field is filterable, sortable, and pageable.
  • Security built in. Operation-level authorization and pluggable field-level RBAC, plus baseline filters enforced on every read, update, and delete.
  • Observable by default. Opt-in structured audit (logfmt / JSON Lines, SIEM-ready) and per-operation metrics with Micrometer export.
  • Ready to integrate. A per-DAL OpenAPI document generated from each entity and a typed client for calling other Telaio applications.
  • MCP server on the roadmap. AI assistants will query your data through the DAL in natural language. The server sits on top of the DAL REST API and can only call it, so authentication and authorization apply to every request, by design.
Using Telaio in a project? I'm happy to help with integration, custom features, or migration. Get in touch →

About

The guy behind the code

Marco Pagan smiling at his desk, with code on the monitor behind him

I've been interested in computers since I assembled my first one at sixteen. From hardware I moved to software, and I kept the habit of asking why things work the way they do. Most of my career has been in banking, insurance, and compliance, where systems have to stay reliable, secure, and auditable, and planning for failure is part of the job. That experience shapes how I approach any project, whatever the industry.

Today I work as an architect across several product teams. I review the pull requests that touch the architecture, mentor colleagues on Spring, and build what sits around the business logic: application security, auditing, testing practices, CI/CD pipelines. Where a standard is missing, I start by asking how people work today and what slows them down, then put it in writing. I care about precision, and when a task is mechanical and repetitive I'd rather turn it into a script or an AI agent that reports back what it did.

On architecture, I prefer the simplest design that fits the problem, whether that's a modular monolith, microservices, or something in between, and I like discussing those trade-offs openly. Outside my day job I develop Telaio, an open source framework that grew out of the CRUD boilerplate I kept writing.

I'm based in Padova and prefer remote work; since 2024 I've also spent about six weeks a year working from Florida, where my wife's family lives. Away from work, I follow what's new in tech, play video games, and love discovering new cuisines. I raced bikes competitively at university; these days I ride just for fun when the weather is right, or go hiking in the mountains.

Contact

Have a project, an opportunity, or a question about Telaio?

A few lines about the context are enough to start.
I usually reply within a couple of working days.

  • Based in Padova, Italy · CET
  • Italian and English
  • From a short review to a long-term involvement
  • Support and customization for Telaio