Software Architecture
System design grounded in business constraints, operational reality and explicit trade-offs.
- Distributed systems
- Event-driven architecture
- Hexagonal architecture
- ADRs & system design
Tech Lead · Senior Java Engineer
I connect architecture, hands-on engineering and technical leadership to turn complex business problems into reliable production systems.
ENGINEERING PATH
01 / EXPERTISE
My role is not only to choose technologies. It is to create clarity, reduce risk and help teams deliver systems that behave well in production.
System design grounded in business constraints, operational reality and explicit trade-offs.
Modern backend platforms with performance, maintainability and pragmatic evolution in mind.
Resilience and observability designed as architecture capabilities, not production afterthoughts.
Connecting engineers, product and platform teams around decisions, quality and sustainable delivery.
02 / SELECTED WORK
Labs and products built to make architecture choices visible: context, constraints, implementation, failure modes and results.
FEATURED PROJECT
AI Tech Lead Assistant
An engineering copilot for architecture analysis, troubleshooting, documentation and code intelligence—kept outside the transactional core.
Benchmarking concurrency, caching and messaging decisions under realistic load and failure scenarios.
Timeout, retry, circuit breaker, bulkhead, idempotency and DLQ tested through controlled failure injection.
Cloud-native daycare operations platform connecting product discovery, scalable architecture and delivery.
03 / EXPERIENCE
Technical leadership for credit platform services, driving Java modernization, reliability, observability and architectural evolution across teams.
Hands-on engineering and technical leadership in financial technology, connecting product goals to secure and maintainable backend platforms.
From software development to architecture and leadership, with a consistent focus on backend engineering and business-critical systems.
04 / ENGINEERING DECISIONS
I evaluate options by workload, team maturity, failure modes, operational cost and the ability to evolve—not by trend.
Start with boundaries, not deployment units. Microservices earn their place when independent scaling, ownership or release cadence creates measurable value.
BOUNDARIES · OWNERSHIP · OPERATIONAL COSTVirtual threads simplify high-concurrency blocking workloads. Reactive remains valuable where end-to-end streaming and backpressure are core requirements.
CONCURRENCY · COMPLEXITY · BACKPRESSUREKafka fits replay, high event volume and ordered processing by key. Traditional brokers often reduce complexity for command-style queues and routing-heavy flows.
REPLAY · ORDERING · DELIVERY SEMANTICSChoose from access patterns and consistency needs. Relational databases remain a strong default; specialized NoSQL models solve specific scale and shape constraints.
CONSISTENCY · ACCESS PATTERNS · DATA SHAPE05 / LET’S CONNECT
I’m open to conversations about technical leadership, Java platforms, distributed systems and international engineering opportunities.
Based in São Paulo, Brazil