Backend engineer. I work on the parts that are hard to get right — concurrency, failure handling, and keeping domain logic independent of the framework around it. Currently building software that runs in production at a state government technology agency.
Software Engineer (Intern) — PRODEMGE · technology agency of the State of Minas Gerais, Brazil · 2024–present
A platform used by public agencies across the state. Backend in Java and Spring Boot over Oracle; frontend work in React, Next.js and Angular; production support and incident resolution. Real users, real data, real production incidents.
Where I take the architecture further than a day job usually allows. Each repository's README explains the design decisions and is explicit about the tradeoffs and the limitations.
atlas-customer-success-cloud · Apex, LWC
An enterprise Customer Success platform on Salesforce, built the way a platform team would rather than as a pile of triggers. Every read goes through a selector in user mode and every write through a Unit of Work, so CRUD, field-level security and sharing are enforced in exactly one place. The health-scoring engine is a set of metadata-driven strategy classes — re-weighting a dimension is a configuration change, not a deployment. Application logging survives transaction rollback by publishing an immediate platform event instead of writing a row that would roll back with the failure. Eight ADRs record why each decision was made; CI runs static analysis, Jest and Apex tests against a scratch org.
event-sourcing-ledger · Kotlin, Spring Boot, PostgreSQL
A financial ledger where the balance is never stored — it is derived by replaying the account's
event stream, with a snapshot every 50 events so a long history doesn't replay from zero. The
interesting part is concurrency: the optimistic-lock version check has a race window, so the real
guarantee is a UNIQUE (aggregate_id, version) constraint — a losing concurrent append hits the
constraint and is rejected as a conflict. A cross-account transfer is two appends on two separate
streams, and the README states plainly that this is not atomic — a real limitation, documented
rather than hidden.
distributed-rate-limiter · Java, Redis
Four rate-limiting algorithms — fixed window, sliding-window log, sliding-window counter and token bucket — behind one interface, swappable at runtime, backed by Redis so the limit holds across instances instead of per process. Each check-and-increment runs as a single atomic Lua script rather than separate Redis commands, which is what prevents two concurrent requests from both being allowed through on the last available token, without a distributed lock.
GovFlow · C# / .NET 8, PostgreSQL
A workflow platform where organizations define process types and steps, and each instance advances through an explicit state machine under Clean Architecture and CQRS/MediatR. Real-time updates over SignalR, SLA monitoring on Hangfire background jobs, per-tenant scoping, and an immutable audit timeline. Around 60 tests across the domain, application and integration layers — the largest of these codebases and the closest to a full product.
Other public repositories include an end-to-end finance product — a Quarkus API with an Angular web client and a React Native app — and an event-driven payment service on Kafka.
- LinkedIn — https://www.linkedin.com/in/renan-ferreira-souza
- Email — renanferreira102030@gmail.com
Systems Analysis & Development (technologist), Centro Universitário Newton Paiva — graduating 2026.