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 and Cognito CloudFormation MFA fixes. 3 PRs merged |
| clauditor | Session and quota tool for Claude Code | Memory crash fix at session start, CI security audit fix |
| claude-mem | Persistent memory for coding agents | Folder CLAUDE.md and search date bound fixes |
| 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. 1 PR merged |
| pact-jvm | Consumer-driven contract testing for the JVM | Consumer DSL fixes and issue triage |
| quarkus | Quarkus: Supersonic Subatomic Java. | First PRs in review |
Latest pull requests
- 🟣 opensearch-project/opensearch-java #2254 Fix a race in ArrayDeserializer.acceptedEvents()
- 🟣 floci-io/floci #7088 fix(cloudformation): keep SMS_MFA on a user pool update until MFA is turned off
- 🟢 thedotmack/claude-mem #5238 fix(chroma): do not re-embed unchanged documents on a duplicate conflict (#5237)
- 🟢 quarkusio/quarkus #57979 Log Maven settings warnings without a stack trace
- 🟢 thedotmack/claude-mem #5234 fix(search): read an all-digit dateStart/dateEnd as epoch ms (#5233)
- 🟢 IyadhKhalfallah/clauditor #153 fix(hooks): deliver SessionStart context through hookSpecificOutput
| 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.




