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
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.
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
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.
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.
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
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.
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
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.
Head of Technology — design & implementation · Apr 2026 – Current
Private
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.
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.
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.
Head of Technology — design & implementation · Apr 2026 – Current
Private
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.
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
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
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.
R&D Engineer — author, from the first commit · Jul 2025 – Oct 2025
Private
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
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
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.
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