/projects

Projects

Senior Software Engineer → Head of Technology · Sep 2020 – Aug 2024 · Thirteen people — engineering, QA, UX and support.

A Brazilian nutrition SaaS: nutritionists build diet plans, their patients follow them, and both audiences share one identity backbone. The platform spans a decade-old monolith and a newer generation of services standing beside it.

How the team works

  • From one nightly deploy to several a day

    I brought in Scrum and trunk-based development. A deploy in daylight stopped being an event.

  • A payment migration nobody noticed

    I planned and ran the move of thousands of active subscribers from Iugu to Pagar.me, with no pause in revenue.

  • Cloud spend as an engineering problem

    I took a cost pass over the Azure estate — without a feature freeze to pay for it.

  • Reporting engineering in the executive’s language

    I started bringing DORA metrics and a roadmap to the executive team, so investment in technology was argued with evidence rather than conviction.

Dietbox Webapp screenshot

Dietbox Webapp

None of today’s APIs existed. All of it started in here.

The monolith that carried both the nutritionist and the patient experience before any other service existed, deploying once a night because that was the only window that felt safe — and the codebase a newer generation of services has since grown up beside.

C#ASP.NET MVCEntity FrameworkSQL ServerAzure App ServiceKendo UIAzure DevOps

Senior Software Engineer, then Head of Technology · 2020–2024

WebsitePrivate
Dietbox B2C screenshot

Dietbox B2C

One login for all of the product’s systems.

One account signs a person into all five of the product’s systems — the nutritionist’s app, the patient’s Android and iOS apps, the web product and the checkout — across two audiences that share nothing else. Custom Azure AD B2C policies behind it: federated sign-in, silent migration off the legacy store, and revocation that ends sessions already open.

Azure AD B2CIdentity Experience FrameworkXMLOpenID ConnectOAuth 2.0.NET 6HTMLCSSAzure DevOps

Senior Software Engineer, then Head of Technology · 2021–2024

WebsitePrivate
Dietbox Payment screenshot

Dietbox Payment

Subscriptions and recurring billing, behind a checkout of its own.

The service that carries the revenue: subscription commands on one side, a webhook endpoint per gateway on the other, and two payment gateways in packages of their own — with a Vue checkout in front of it.

.NET 6C#CQRSVue 3VitePrimeVuePiniaCypressAzure DevOps

Head of Technology · 2023–2024

WebsitePrivate
Dietbox Portal screenshot

Dietbox Portal

The back office that handed the product’s daily operations to the operations team.

The internal tool the company runs the product from. Cancel a subscription, grant a special one, issue a voucher, import the food catalogue from a file, change a plan’s limits, publish a banner, clear a nutritionist’s cache — forty-four actions across ten areas, every one of which used to be a ticket to an engineer.

.NET 6C#CQRSMediatREF CoreSQL ServerASP.NET IdentityJWTVue 3VuexAzure DevOps

Head of Technology · 2023–2024

WebsitePrivate

Dietbox Notifications

Everything the product sends out, moved into a service of its own.

An isolated service that owns outbound messaging: it sends the practitioner’s WhatsApp notifications and keeps a record of every one. Built beside the product rather than inside it, so a cost problem did not have to be solved inside code that was already too complex to touch safely.

.NET 6C#CQRSSQL ServerWhatsApp Business APIAzure DevOps

Head of Technology · 2023–2024

WebsitePrivate

Dietbox Realtime

Chat between a nutritionist and her patient, and anything else that has to arrive now.

The socket server behind two features: the chat a nutritionist and her patient hold inside the product, and the notifications the platform needs to land on a screen that is already open. A room per user, a shared-secret handshake, and one endpoint the rest of the platform posts to.

NodeExpressSocket.IOApplication InsightsAzure App ServiceAzure DevOps

Senior Software Engineer · 2022

WebsitePrivate

ULBRA

Client of Pampa Devs

Head of Technology · Apr 2026 – Current · Three engineers — two inherited on arrival, one hired in May 2026.

The university's internal technology platform, built from scratch by a small team: an IT service desk in production, an ERP replacing the legacy systems, a CRM taken over and rebuilt, administrative dashboards, a student dashboard, and the datacenter automation all of it deploys onto.

How the team works

  • Work enters through one queue

    Tasks and bugs go to Linear, which is also what the coding agents read to pick work up. One engineer owns each of the service desk, the ERP and the CRM; the lead is across all six systems.

  • The team specifies and reviews

    Implementation is largely generated. What the three engineers spend their day on is writing the spec before the work starts and reviewing what comes back — the throughput came from moving human attention off typing, not from adding people.

  • Delivery is measured from the same queue

    A Metabase instance reads Linear through an ETL sidecar, so the team's own throughput is visible in the same place the systems' numbers are. The working model is instrumented rather than asserted.

Ulbra Atende screenshot

Ulbra Atende

IT service desk for a university, replacing GLPI.

The IT service desk for a university, replacing GLPI as the single intake channel: SLA per team, approval flows, multi-stage templates, and an MCP server that lets staff work tickets from Claude or ChatGPT under their own permissions.

.NET 10PostgreSQL 17RabbitMQReact 19OpenIddictMCPOpenTelemetryDocker Swarm

Head of Technology — design & implementation · Apr 2026 – Current

Private
Ulbra One screenshot

Ulbra One

The ERP being built to take the university off Senior.

The university runs its internal operations on Senior. This is the system being built to replace it — a modular .NET monolith on PostgreSQL with a React front end. In testing, ahead of launch.

.NET 10PostgreSQL 17EF CoreReactTailwindshadcn/ui

Head of Technology · Jun 2026 – Current

Private

Ulbra CRM

Where the university works the leads for its next intake of students.

The platform the university captures and works prospective-student leads on. Inherited with no automated tests and little structure, and rebuilt under my direction to full coverage, with a front-end migration that stopped every screen change from throwing away the filters someone was working a list through.

ReactTanStack RouterMongoDBDocker Swarm

Head of Technology — direction & review · Apr 2026 – Current

Private

Ulbra Admin

The numbers the board runs the university on.

Administrative dashboards for the presidency and the board, reading enrollment from the legacy Oracle system through a typed API and prospect data from the CRM — deliberately the simplest architecture in the group.

.NET 10React 19PostgreSQLMongoDBTanStack RouterDocker Swarm

Head of Technology — design & implementation · Aug 2026 – Current

Private

Student Dashboard

A screen on a wall that tells students where to be.

A class-schedule display installed in the medical school building, plus the admin behind it: an unattended kiosk that rotates schedules and campus content, switching themes between day and night.

.NET 10React 19PostgreSQLMicrosoft FabricODBCDocker Swarm

Head of Technology — design & implementation · Apr 2026 – Current

Private

Ulbra Infra

From a person on the box to a repository and a pipeline.

The internal datacenter platform every other system here deploys onto: one script takes a bare server to ready, applications ship from a repository through CI, and an alert can open its own pull request.

Docker SwarmTraefikGitHub ActionsOpenTelemetrySigNozPrometheusGrafanaMetabase

Head of Technology — design & implementation · Apr 2026 – Current

Private
Kota Embed screenshot

Kota Embed

Health insurance enrollment, embedded inside other companies' platforms.

A multi-tenant .NET service behind an embedded enrollment flow: employers offer health insurance to their employees without leaving the software they already use, while the backend integrates with nine insurers across three regulatory regions.

.NETPostgreSQLEF CoreAWSOpenTelemetryMulti-tenantWebhooks

Senior Product Engineer, platform team · Professional work

WebsitePrivate

Airia

Contract, part-time

R&D Engineer · Jun 2025 – Oct 2025

An enterprise AI security and governance platform. My work was on the side of it that has to reach outside the cloud: the on-premise connector that lets the platform call systems inside a customer network, the multi-engine data-store library underneath it, and the posture management that inventories the AI an enterprise is already running.

Airia Cloud Connector screenshot

Airia Cloud Connector

A reverse tunnel that reaches into a private network without opening it.

A self-contained agent a customer installs inside its own network. It dials out to the cloud platform and holds the connection open, so the platform can call internal APIs, query internal databases and reach internal MCP servers — without a single inbound firewall rule.

.NET 9SignalRRedisJWTMCPxUnitTestcontainersHelm

R&D Engineer — security, routing and command surface · Jun 2025 – Oct 2025

Private
Airia.DataStores.Common screenshot

Airia.DataStores.Common

One query surface over six database engines, shipped as a package.

A .NET library that puts relational engines and a document store behind one interface: run a query, read the schema, pool the connections. Written so the cloud connector and the platform consume the same build instead of maintaining two drifting copies of the same provider matrix.

.NET 9PostgreSQLSQL ServerMySQLSnowflakeDatabricksMongoDBxUnit

R&D Engineer — author, from the first commit · Jul 2025 – Oct 2025

Private
Secure Posture Management screenshot

Secure Posture Management

An inventory of every AI agent an enterprise is already running.

The part of the platform that connects to the places AI actually runs — workflow automation tools, cloud model services, assistant builders — and turns what it finds into an inventory of agents and components, each carrying its own risk and a feed of policy violations.

.NET 9Entity Framework CorePostgreSQLAzure AI FoundryAWS BedrockxUnit

R&D Engineer — domain model, persistence and a provider · Jul 2025 – Oct 2025

Private
Pampa Devs screenshot

Pampa Devs

My studio’s site, and the tool it sends proposals with.

The site for the software studio I run: bilingual, with a blog, three landing pages for the services it sells, and working demos of those services built into the page — a storefront with a cart, a chat assistant, a checkout. Client proposals are pages on it rather than documents sent by email.

Vue 3TypeScriptViteVue RouterVue I18nSCSSAzure Static Web Apps

Founder — design & implementation · 2020–2021, 2025 – Current

Live sitePrivate
Pulse screenshot

Pulse

A live, real-time system embedded in a portfolio.

Visitors see who else is online, a live world map, and public metrics — a thin client over an event-driven .NET backend (SignalR presence, RabbitMQ outbox, Postgres, OpenTelemetry), an ops dashboard, and an AI assistant. Deployed with Docker/Caddy + IaC.

.NET 10SignalRRabbitMQRedisPostgresReact 19DockerTerraform

Design & implementation

Dell Automated Caller screenshot

Dell Automated Caller

Automated end-to-end testing for a phone system.

An internal tool that tests an interactive voice system by actually calling it: a script drives a real phone call, the spoken responses are transcribed and checked against what the script expected, and the outcome is reported back into the test-management tool.

.NET CoreRabbitMQEntity FrameworkTwilioxUnit

Conception, architecture and implementation · 2020

Private