/* backend developer, distributed systems, JVM native */
Lucas
Eckert
Backend at WEG S.A., building event-driven microservices on the JVM. Currently working through DDIA — the chapter on replication lag and read-your-writes consistency is reshaping how I think about the read models in VellumHub. // implementing backprop from scratch on weekends
Microservices platform built around one constraint: the recommendation service must answer every query with zero synchronous calls to other services. Reactive API gateway, event-driven read models via Kafka ECST, and pgvector similarity search with LangChain4j 384-dim embeddings.
recommendation path
LangChain4j semantic
calls at query time
- Event-driven read model — Recommendation Service consumes
created-book,updated-book,deleted-book,created-ratingvia Kafka ECST; every query answered with zero synchronous calls to other services - Embedding pipeline — replaced 13-dim genre vectors with LangChain4j AllMiniLmL6V2 384-dim embeddings + L2 normalization; ANN retrieval via HNSW index, re-ranked with 70/30 semantic/popularity blend
- Reactive gateway — WebFlux entry point centralizing JWT validation and Redis-backed rate limiting per route; built custom over Spring Cloud Gateway for direct pipeline control
- Architecture evolution — v1 (external Python ML, ~400ms) → v2 (in-JVM pgvector + ECST, ~100ms) → v3 (384-dim semantic embeddings, L2 normalization, API gateway layer)
Automated parking management system — ESP32 detects vehicle entry, Node-RED bridges MQTT to the backend, Spring WebFlux handles the reactive pipeline, Mercado Pago Checkout Pro processes payment, and the gate opens only after the webhook confirms. Six phases, zero human intervention.
payment → confirm → SSE → gate
4-layer clean arch each
payment status · no polling
- Node-RED as IoT orchestrator — bridges the MQTT broker to the Spring backend; on entry, subscribes to device events and calls
POST /access/entryto persist the record; on gate release, receivesPOST /open-gatefrom the backend and publishes the open command back to the ESP32 via MQTT - Two DDD bounded contexts with Clean Architecture —
access(entry/exit lifecycle, gate coordination) andpayment(Mercado Pago Checkout Pro preference creation, webhook confirmation, SSE stream); each context structured across presentation → application → domain → infrastructure layers - WebFlux SSE for payment polling — instead of the frontend polling REST every N seconds, the backend holds a reactive SSE connection per payment ID and pushes
paid: truethe moment the Mercado Pago webhook lands — chosen over WebSocket because the stream is unidirectional and stateless from the server side - End-to-end in a team of 3 — full software responsibility: ESP32 firmware, MQTT topology, Node-RED flows, reactive backend, payment integration, and React/TypeScript terminal
Social network where the graph is the domain model, not a performance optimization. The design question: what does the data layer look like when relationships are first-class citizens?
no join tables
infrastructure isolated
or REJECTED
- Chose Neo4j over relational to natively represent 9 weighted connection types — in a relational DB this would require join tables and recursive CTEs; in Neo4j it's a first-class traversal
- Connection requests modeled as a state machine (PENDING → ACCEPTED/REJECTED) via the Strategy pattern for polymorphic handling per connection type — no if-chains
- Structured across 6 hexagonal architecture modules —
domain,application,infrastructurecleanly separated; Java 21 virtual threads for high-concurrency I/O - Domain logic validated against real Neo4j instances via Testcontainers — no mocks on the persistence boundary
// stack
| languages | Java · TypeScript · C · Python · SQL |
| backend | Spring Boot · WebFlux · Kafka · Node.js |
| data | PostgreSQL · pgvector · Neo4j · Redis |
| infra | Docker · GitHub Actions |
WEG S.A.
Backend Developer — Industrial Learning Program · CentroWEG / SENAI
Industrial technical school integrated with WEG, one of the largest electric motor manufacturers in the world
Jaraguá do Sul, BR
- Architected backend of InfoWEG (class-wide Scrum project) — REST API structure, domain model, and module boundaries in Java + Spring Boot + MySQL
- Engineered full software layer of OpenIT (team of 3) — reactive backend, React/TypeScript frontend, ESP32 hardware integration over MQTT, real-time SSE
- Led code reviews and CI/CD pipelines via GitHub Actions; Scrum/Kanban across all team projects
// open to backend roles, distributed systems work, and interesting problems