Software Engineer · Java / Spring Boot · React
Building production-grade distributed systems at Gentek.ai · Lisbon, Portugal
Software Engineer focused on backend-heavy full-stack development, distributed systems and performance engineering. Currently evolving an AI SaaS platform used by banking clients, from OLAP data pipelines and reactive microservices to modular React frontends.
Outside work I build and operate Beyou, a gamified habit manager running as a real production: web, native mobile, an AI agent, and infrastructure I host and monitor myself.
I care about systems that work correctly in production: observable, testable, resilient, and built to scale before the problems become visible.
A few highlights from building a financial-grade AI SaaS platform:
| What | Result |
|---|---|
| StarRocks OLAP migration — moved EMIR/SFTR analytics layer from PostgreSQL to StarRocks with incremental MV refresh | Processing data pipeline: 1 hour → 2.1s · MV refresh flat at ~14s regardless of data volume · endpoint p50 −92% |
| Distributed L1/L2 cache — Caffeine + Redis/Redisson with cross-pod pub/sub invalidation and ACL-scoped keys | −67% p95 · +101% throughput · latency cut to 1/3 |
| Load testing campaign with k6 — caught OOM at 92% heap and I/O bottlenecks before first client go-live | +681% throughput · −91% p95 after optimisation |
| E2E contract testing engine — internal Java 21 service with virtual threads, SSE and multi-environment UI | Caught real cache bugs on day one that 80% unit coverage had missed |
| Test coverage 0% → 80% across 4 critical microservices | JUnit 5 · Mockito · Testcontainers · integrated in CI/CD |
| Reactive notification service — fully non-blocking stack with WebFlux + R2DBC + reactor-kafka + AWS MSK | Priority-based processing · deduplication · real-time SSE streaming |
Beyou — Gamified Habit & Routine Manager
A free, open-source life manager I run as a real production: live web app, native Android app, and a public engineering docs site, all served from infrastructure I built and operate myself.
Live app · Engineering docs & blog · Backend source
| What | How |
|---|---|
| One TypeScript core, two clients | React web + React Native (Expo) in a Turborepo monorepo — state, API layer, validation, i18n and themes shared as source, so one edit hot-reloads both apps |
| AI agent with 33 tools | Spring AI agent that operates the user's real data over SSE, on a fallback chain of free-tier LLMs (Mistral → Gemini → GLM → DeepSeek) — running cost so far: $0 |
| Self-hosted production | Cloudflare Tunnel with zero open ports, GHCR images auto-deployed by Watchtower, a Playwright e2e suite gating CI |
| Full observability | Prometheus + Grafana dashboards, Loki logs, self-hosted GlitchTip error tracking with uptime and heartbeat monitors — same stack in dev and prod |
| Gamified domain engine | Server-side XP curve, levels and streaks · Caffeine caching · Flyway-owned schema · JWT + Google OAuth |
I write about the engineering on the docs site: the free-tier LLM cascade, a security audit run with an AI agent, the monitoring layers, and what self-hosting on a 2012 laptop actually costs.
Currently solving problems in distributed systems, performance engineering and financial data.