sara. PT

Full-stack software engineer

Multi-tenant SaaS platforms for domains where mistakes are expensive.

I build products end to end — architecture, backend, frontend, mobile and AI agents — in sectors where business rules are dense and the margin for error is thin. Six products are in production today on the same technical foundation.

Available for contract work

By the numbers

multi-tenant products in production
6
regulated domains served
5
commits authored in 9 months
~3,700
MCP servers consolidated into one
4 → 1

How I work

01

End-to-end SaaS

Architecture, backend, frontend, mobile and deployment. I do not outsource what matters — I deliver the full stack, from schema to component.

02

Multi-tenant in production

Schema-level isolation in PostgreSQL, decoupled Laravel modules, no data leaking between clients. The same pattern replicated across six products.

03

AI built into the product

MCP agents running inside the product, not a chatbot bolted on the side. They operate on real data, with real permissions, under the same tenant model.

04

Foundation before features

Design system, shared template and CI with a real gate. A new product starts with multi-tenancy, RBAC and authentication already in place — not from scratch.

Selected work

Clients cannot be named publicly. I can go into detail under NDA — just ask.

CASE / 01

Public procurement

B2G SaaS platform

Multi-tenant platform for companies bidding on public tenders. Integration with government APIs, automated prospecting, tender analysis and price comparison across competing platforms. A conversational MCP agent operating on the tenant data.

In a recent consolidation I merged three modules into one and took the product from seven modules down to five — proving parity across 345 routes, with no migration re-run on any of the five schemas and 979 tests green.

  • · Modular Laravel
  • · Multi-tenant PostgreSQL
  • · Vue 3 + Inertia
  • · MCP Server

Architecture · Backend · Frontend · AI

CASE / 02

Public sector

Municipal government ERP

The largest product in the portfolio: a modular platform for city halls and public agencies, isolated per municipality at the schema level. Modules for budgeting, fleet, assets, scheduling and HR with payroll and timekeeping — each client enables only what they use.

  • · Modular Laravel
  • · Multi-tenant PostgreSQL
  • · Vue 3 + Inertia
  • · MCP Server

Architecture · Backend · Frontend · AI

CASE / 03

Tax

Municipal tax auditing

Cross-referencing service invoices, receipts with no matching invoice and federal tax authority statements into a revenue cube with propagated measures. A domain where a badly implemented rule does not produce a bug: it produces an unjustified tax assessment.

  • · Modular Laravel
  • · Multi-tenant PostgreSQL
  • · Vue 3 + Inertia
  • · Revenue cube

Backend · Frontend · Tax rules

CASE / 04

Citizen services

Municipal app shipped on iOS and Android

Mobile app for public services with a single codebase running on iOS, Android and web. Public venue booking, municipal taxi service with offline support, payslips with income tax and social security statements, city financial indicators and a water and sewage portal.

Published on both stores and in use by citizens — not a prototype.

  • · Vue 3 + Capacitor
  • · TypeScript
  • · Pinia
  • · Offline-first

Mobile · Frontend · Integrations

Platform work

Much of what I deliver is not a product feature: it is the foundation the other products — and the other developers — rely on.

Design system as a package

A Vue 3 component library shipped as a private npm package and versioned with semver. A single canonical source shared by three products: fixing one component fixes all three at once.

Versioned base template

The starting point for a new product, already carrying schema-based multi-tenancy, global and local RBAC, authentication, PDF generation and the core modules. Time from decision to a working screen drops from weeks to days.

Consolidating the MCP agents

There was one MCP server per product, each a copy of the same scaffold with the same dozens of duplicated tools — which produced the same bug in three places at once. I designed the unified server that resolves the connection per product at runtime and replaces all three, proving coverage case by case before retiring each one.

Quality you can audit

  • Static analysis and formatting as a CI gate, with a measured baseline
  • E2E suite covering navigation, CRUD, permissions and listing regressions
  • Architecture decisions recorded as ADRs, superseded explicitly
  • Onboarding documentation written for people arriving without context

Stack

Backend

  • Laravel · PHP 8.2+
  • Multi-tenant PostgreSQL
  • Sanctum · Queues · Jobs

Frontend

  • Vue 3 · Strict TypeScript
  • Inertia.js
  • Tailwind · In-house design system

Mobile

  • Capacitor · iOS and Android
  • Pinia · Vue Router
  • Offline-first

Infra and quality

  • Docker · CI/CD
  • Schema-per-tenant
  • Playwright · Static analysis

AI

  • MCP Servers
  • Agents integrated into the product
  • Tool use scoped to the tenant

About

Software engineer focused on SaaS platforms in complex domains. I work with Laravel, Vue 3 and multi-tenant PostgreSQL on products running in production across public procurement, municipal government, tax, payroll and citizen services.

I got here by a crooked path. I was a personal trainer, lived abroad between 2014 and 2018 working in hostels in Chile and Norway, and led a CrossFit coaching team for three years. I joined the company I am at today in 2021, in an administrative role; I moved into development in 2024 and now I lead its innovation team.

Coaching people teaches something that carries straight into software: you answer for someone else's outcome, and a lapse in judgement has physical consequences. That is where my discomfort comes from with a system that passes its tests but that nobody has ever opened on screen.

I consolidated products that started out separate into one coherent technical platform: the same modular architecture, the same tenant isolation model, the same design system, the same quality gates. That is what lets me ship a new feature in any of them without relearning the terrain.

I work with AI agents integrated into the product through MCP — not as a marketing layer, but as a real operating interface, with the same permissions and the same tenant scope as the graphical interface. I also supervise an intern and write the onboarding documentation: part of my job is making sure someone else can get into the code without having to ask me.

Everywhere I have been, I made a difference. And every time I left, I left behind people who carried the work forward — or improved on what I built.

Let us talk

Open to opportunities and contract work. For details under NDA, drop me an email.