I build real-time streaming platforms and AI-powered systems — from the Linux kernel up to the product, with a focus on resilience, observability, and clean architecture.
20+ years of software engineering, with a career that spans the whole stack: real-time development in the Linux kernel, diskless Linux system administration, database administration (MySQL, PostgreSQL), backend and frontend development, web server administration, cloud infrastructure architecture (Azure), and large-scale distributed streaming (Apache Flink, Kubernetes). Early in my career I also ran research and development at the university level and GNU/Linux administration at the Porto Oncology Institute.
For the last four years I've been a Senior Backend Developer on a real-time stream processing platform at scale — Java, Spring Boot, Apache Flink, Kubernetes, Azure CosmosDB — designing reprocessing systems for late-arriving events and building observability at scale (Grafana, Prometheus, 24h on-call). Before that: Tech Lead at Natixis, leading the team delivering next-generation web and mobile banking applications.
In parallel, I've been integrating generative AI into my development workflow — deliberately: as a productivity aid, never a replacement for technical reasoning, with strong attention to cost-efficiency (including local LLMs) and safe, read-only tooling for production debugging.
AI-powered satirical news platform — the project where I first wired generative AI into a full product: real headlines in, generated satire and cartoon illustrations out. Two independent services (Kotlin/Spring Boot backend, Next.js 14 frontend) share a MongoDB; cartoon images are produced at scale via the OpenAI Batch API; countries are tenant-scoped by subdomain. Its architecture became the blueprint for Recipe Repository.
Currently offline for maintenance — happy to show the code on request.
Full-stack recipe discovery platform. Users pick three to five ingredients and get matching recipes — and when nothing matches, a multi-agent AI pipeline generates a new recipe, images, and enriched content on demand. Content is localized per locale via URL subdomains, with SSR for SEO.
The AI layer is the interesting part: multiple AI tools interact in a pipeline — one model generates content, others enrich it, generate images, and a sanitizer validates user-entered content before it is ever stored. I designed the architecture so each AI concern is an isolated, testable service.
Visit the site →
Information website about solar eclipses around the world — per-city data on what's visible, when, and how, plus maps and sky previews. Built in Next.js with on-demand per-city SSR (each city is a deep-linkable, SEO-indexable page) and a lean Docker deployment I scripted end-to-end, including a fast deploy path that hot-swaps build artifacts into a running container with BUILD_ID verification and health checks.
Swing-trading assistant that turns raw market data into actionable, explainable signals. A scheduled pipeline scans EU and US markets: OHLCV from Tiingo into a DuckDB cache, rule-based signals (RSI, MACD, MA crossovers, volume spikes) blended with a GradientBoosting ML model and an ensemble meta-model into a single conviction score. A breaking-news monitor scores headlines with a neural embedder and triggers intraday re-scans.
Private project. The part I'm proudest of: a layered signal architecture (rules → ML → ensemble) where every recommendation decomposes into the factors that produced it — and a mobile action-button loop (Enter / Skip / Confirm exit) that closes the position-tracking cycle.
A personal AI-assisted development pipeline I've hardened into a repeatable practice: agentic coding agents with specialized roles (planning, design, senior review) working against a shared task spec, where the human stays the architect and the agents do the heavy lifting. High-volume, low-stakes tasks are routed to local LLMs to keep cloud spend flat, while judgment calls and production work stay on strong models — with read-only tooling in production so an agent can never break what's live.
The same discipline I run at work: AI as a measured productivity layer — with cost, safety, and code quality in the loop — never a black box. I can walk through the setup, the trade-offs, and the cost numbers on request.
I'm looking for my next role — remote software engineer, AI engineer, or tech lead — based in Portugal, happy to work across EU timezones. Portuguese native, fluent in English and French.