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 |
| swagger-core | Generates OpenAPI definitions from Java and Jakarta REST code | CDI bean discovery fix for OpenApiServlet |
| 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, search date bound and Chroma re-embed fixes. 3 PRs merged |
| openapi-generator | Generates clients and servers from OpenAPI specs | Java/Spring generator fixes. 1 PR merged |
| 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 and JSON charset fixes, issue triage. 1 PR merged |
| quarkus | Kubernetes-native Java framework | Cleaner Maven settings warnings in the build. 1 PR merged |
Latest pull requests
- 🟢 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
- 🟣 thedotmack/claude-mem #5238 fix(chroma): do not re-embed unchanged documents on a duplicate conflict (#5237)
- 🟣 thedotmack/claude-mem #5234 fix(search): read an all-digit dateStart/dateEnd as epoch ms (#5233)
- 🟣 thedotmack/claude-mem #5232 fix(folder-claude-md): check duplicate path segments only from the project folder down (#5231)
- 🟣 pact-foundation/pact-jvm #1946 fix: minArrayLike and minMaxArrayLike with an example object generate the minimum number of examples #1800
| 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.




