lucasrosadev
Photo of Lucas Rosa

Hi, I'm Lucas Rosa

Backend Developer · Node.js · TypeScript · PostgreSQL

I build the backend that connects marketing to revenue.

APIs, integrations and data syncs in production, with tests and monitoring. I built the platform that tracks each partner from the first click to the revenue they generate. I come from Growth and data, so I start with the problem.

How the platform works

Partner journey

from ad to revenue, in one place

  1. LeadRD Station

    Comes in from a campaign, already tagged with its origin.

  2. SignupCRM

    96.8% of signups linked to their original lead, no spreadsheets.

  3. ProductionCRM API

    Production tracked month by month: banks, products and ticket size.

  4. Resultby channel

    Marketing sees how much each channel generated, not just lead counts.

Marketing used to stop at the lead. Now it sees how much each partner produced after signing up.

96.8%

of partners linked to origin

automatic RD Station × CRM match

~US$ 400

saved per year

social reports without the Reportei subscription

22

competitors tracked

every week, for ~US$ 3/month

7

integrated systems

CRM, RD Station, Meta, AI and more

Node.jsTypeScriptReactExpressPostgreSQLSupabaseDenoNode.jsTypeScriptReactExpressPostgreSQLSupabaseDeno
HonoDockerPythonTailwind CSSViteNext.jsGitHonoDockerPythonTailwind CSSViteNext.jsGit

Featured case

Growth Marketing Platform

01 · Problem

Marketing stopped at the lead: it didn't know which partners came from campaigns or what they produced afterwards. And it paid for a tool just to get social media reports.

02 · What I did

I built the platform end to end: integrated RD Station and the CRM through their APIs, tracked each partner's production and created a social media module powered by AI.

03 · Result

Marketing now knows which partners it brought in and how much they produced. The Reportei subscription was cancelled, and AI now analyzes every post.

Inside the platform

6 modules in production

plataforma-growth / raio-x
Partner list with search and status (dados fictícios)
01/07 Partner list with search and status

Partner lifecycle

From signup to results: how much each partner produces and where they came from.

  • Origin: marketing × other channels
  • Production, ticket size and bank breakdown
  • Filters and data export
ReactTypeScriptSupabase

Architecture

How it works under the hood

Data comes in through scheduled functions, everything goes through Postgres, and the dashboard only reads through the backend.

External sources

  • CRM · OAuth2
  • RD Station
  • Meta Graph API
  • Apify
  • Google Sheets
  • AI · Claude & Gemini
pg_cronevery 2–3 min
Edge FunctionsDeno + Hono · 10 functions
Discordalerts and audits
PostgreSQLSupabase · deny-all RLS
React dashboardVercel · custom sessions
Simplified diagram, internal names removed.

Technical decisions

Reliability01

Syncs that never duplicate or stop halfway

Cron jobs run every 2–3 minutes in chunks of up to 120 s and save their progress. If something fails, the next run resumes where it stopped. Health is checked against the stored data, not the cron status.

Security02

Data and secrets kept away from the browser

Internal tables use deny-all RLS: the dashboard reads only through server functions with its own sessions. Secrets live in the database Vault, and every cron authenticates with its own key.

Monitoring03

Failures become alerts, not surprises

A monitor checks the syncs every 5 minutes, and a daily contract audit posts a severity report to Discord before anyone notices a wrong number on the dashboard.

  • 15 test suites, including pagination regressions
  • Health monitor every 5 min
  • Daily audit reported on Discord
  • Automatic deploys on Vercel

Live sites

Pages in production

Drag, use the arrows or let it play.

clt.caslufinanceira.com.br
Print da página Crédito do Trabalhador

Product landing page

Crédito do Trabalhador

Payroll loan product, hand-coded, with simulation and WhatsApp checkout.

ReactVite
Open site
glowup-physio-page.lovable.app
Print da página Danielly Cristina Fisioterapia

Service landing page

Danielly Cristina Fisioterapia

Post-surgery physiotherapy: services, testimonials and booking.

LovableReactTailwind CSS
Open site
fgts.caslufinanceira.com.br
Print da página Antecipação FGTS

Conversion landing page

Antecipação FGTS

FGTS advance product with Meta Pixel and Tag Manager.

WordPressElementorGTMMeta Pixel
Open site
caslufinanceira.com.br
Print da página Caslu Promotora

Corporate website

Caslu Promotora

Company website: services, mission and testimonials.

WebflowGoogle Analytics
Open site

Projects

Code on GitHub

01

Partner Journey API

Lead → signup → revenue attribution. Idempotent HMAC-signed webhooks, incremental sync with retries and Discord alerts, and a race condition reproduced and fixed. 90 tests against a real Postgres, Docker and CI.

Node.jsTypeScriptExpressPostgreSQLDocker
Repository
02

Login Authentication and Authorization System

JWT in an httpOnly cookie, Argon2id password hashing and OWASP practices.

Node.jsTypeScriptReactJWT
Repository
03

Pokédex TypeScript Lite

Public REST API client with fully typed responses.

TypeScript
Repository
04

Acervo CLI

Command-line app from module 1 of the SCTEC/SENAI program.

TypeScriptNode.js
Repository
See everything on GitHubgithub.com/LucasR0sa

Stack

What I work with

Backend
Node.jsTypeScriptExpressHonoDenoPythonREST APIsJWT / sessions
Databases
PostgreSQLSupabaseSQLMySQLpg_cron
Quality and operations
Automated testsDockerGitHub ActionsMonitoring and alerts
Frontend
ReactViteTailwind CSSHTML / CSS
Data and integrations
PandasETLPower BIOAuth2Meta Graph APIRD Station
Currently learning
JavaSpringSoftware architecture

About

Istartwiththebusinessproblemandonlystopwhenthesystemisinproduction,solvingthatproblem.

I worked in Growth, Inside Sales and BI (CAC, LTV, funnels and Python ETL) while taking on freelance development projects in parallel.

I started programming to integrate systems and automate processes. I use AI as a tool and make a point of understanding every technical decision.

Back-end Developer program, SENAI/SC · graduating Dec 2026

Lucas Rosa

296 contributions in the last year

66 days with commits · steady pace since March 2026

See on GitHub ↗
OctNovDecJanFebMarAprMayJunJulAugSepOct
MonWedFri
lessmore

Recommendation

“He isn't satisfied with just making it work: he wants to understand why and how it worked. When we reviewed code together, he took the feedback, applied it the next day and came back with even better questions.”
Leonardo Cabral SellMid-level Backend Developer LinkedIn recommendation (translated from Portuguese)

Let's talk?

I'm looking for a Backend role where I can grow technically and add value to the team. Open to remote work.