Senior Backend Engineer · distributed systems and APIs · AI-assisted engineering
10+ years shipping backend in production · São Paulo 🇧🇷 · remote
I build backend systems that other systems depend on. I care about clean API contracts, failures that are safe to retry, and code the next person can read. I pick the language that fits the problem, not the other way around.
- 🧩 Distributed systems and APIs: event driven, contract first, idempotent, observable
- 🤖 AI-assisted engineering: agents that work with real context and get checked by real tests
- 🛠️ Open source: fixing and improving the libraries I use every day
- Context engineering. Versioned knowledge, architecture patterns and reusable Claude Code Skills, so the agent works from real context instead of guesses.
- Verification first. The AI drafts. Tests, contracts and a human review decide what ships.
| Project | What it is | What I'm doing |
|---|---|---|
| idempotency4j | Run a unit of work at most once per key and replay the stored result | Storage policies, Retry-After handling, Spring Boot wiring. 5 PRs merged |
| idempotence4j | Wise's library for idempotent actions | Spring Web module, payload mismatch detection, Java 21/25 build |
| swagger-parser | The OpenAPI parser behind most of the Swagger tooling | OpenAPI 3.1 $ref resolution fixes, JDK 21/25 CI |
| floci | Free, fast local AWS emulator | CloudFront custom origin fix. 1 PR merged |
| openapi-generator | Generates clients and servers from OpenAPI specs | Java/Spring generator fixes |
| opensearch-java | The official Java client for OpenSearch | Thread safety fix in JSON deserialization |
| pact-jvm | Consumer-driven contract testing for the JVM | Consumer DSL fixes and issue triage |
Latest pull requests
- 🟢 floci-io/floci #7046 fix(cloudformation): apply EnabledMfas on AWS::Cognito::UserPool
- 🟢 pact-foundation/pact-jvm #1948 fix: apply a header matcher to the whole value when a multi-value header was split #1862
- 🟢 pact-foundation/pact-jvm #1947 fix: read and write JSON bodies without a charset as UTF-8 #1783
- 🟢 pact-foundation/pact-jvm #1946 fix: minArrayLike and minMaxArrayLike with an example object generate the minimum number of examples #1800
- 🟣 floci-io/floci #6951 fix(cloudfront): serve custom origins that name Floci itself in-process
- 🟢 opensearch-project/opensearch-java #2254 Fix a race in ArrayDeserializer.acceptedEvents()
| Area | Technologies |
|---|---|
| Languages | Go, Java, Kotlin, Python, TypeScript, SQL |
| Frameworks | Spring Boot, FastAPI, Node.js, Go standard library |
| APIs & messaging | REST, OpenAPI, GraphQL, gRPC, Kafka, RabbitMQ |
| Data | PostgreSQL, Redis, MongoDB, Oracle |
| Cloud & infra | AWS, GCP, Kubernetes, Docker, Helm, ArgoCD, Terraform |
| Testing | Testcontainers, JUnit, Go test, Pytest, Pact |
| Observability | Datadog, Grafana, Prometheus, OpenTelemetry |
- zup-pact-workshop: hands-on consumer driven contract testing workshop with Pact, used to train dozens of engineers.
- pact-ci-workshop: contract tests wired into a CI pipeline, from broker to
can-i-deploy. - pact-consumer-sample / pact-provider-sample: the smallest working consumer and provider pair.
☕ Coffee, clean APIs and well-tested contracts.




