
Diogo Lemos
Full-Stack Developer
Introduction
I am a full-stack developer based in Lisbon, Portugal, working across backend systems, APIs, databases, frontend applications, and infrastructure. My work sits at the intersection of software engineering, product thinking, and operational problem solving.
My background includes performance improvements in Django-based platforms, internationalisation across multiple products, GraphQL and REST integrations, and applied monitoring for critical business processes. I am most effective when I can understand both the technical system and the business context around it.
Alongside professional work, I build independent projects involving multilingual web applications, Raspberry Pi-based monitoring systems, self-hosted tooling, and AI-assisted workflows. These projects help me deepen practical knowledge beyond standard product development.
Personal Projects
Environmental Monitoring Platform
A Raspberry Pi 5-powered environmental monitoring and health tracking system integrating five hardware sensors (BME280, SCD41, ENS160+AHT21, PMS5003, PMS7003) connected via I2C and UART serial. Captures real-time temperature, humidity, pressure, CO2, TVOC, and particulate matter data, stored in PostgreSQL and exposed through a GraphQL API. Includes a bilingual web dashboard with EPA-aligned colour-coded thresholds and an integrated medication inventory and wellbeing tracking module.
Built, deployed, and operated in production on self-hosted infrastructure — a Raspberry Pi 5 running nine containers behind a Cloudflare Tunnel with a per-minute scheduled publisher. A comprehensive numerology platform supporting 25+ calculation types, personalised PDF reports with Stripe payments, AI-powered translations across 65+ language variants (~4,700 translation keys), an integrated blog CMS, 2FA authentication, and encrypted data storage. The calculation engine runs in parallel as a TypeScript library for instant client-side results and a Python mirror for server-side PDF generation; the Nuxt frontend spans 70+ pages and 63 components on a modular Django backend.
ContentForge
A distributed, AI-powered content automation platform that turns long-form stories into multi-language short-form videos through an eight-stage pipeline — scrape, rewrite, quality-gate, translate, narrate, caption, render, and publish. It runs across three coordinated machines over a Tailscale mesh: a Raspberry Pi for scraping and publishing, a MacBook for text-to-speech, and a GPU desktop for LLM inference and video rendering. The backend was migrated from FastAPI to Django with Strawberry GraphQL to support its large multi-domain structure.
Trading Framework
A systems-design and backtesting framework where the same strategy code runs unchanged across backtest, paper, and live modes. Built around pluggable strategies, pluggable venue adapters, and a layered risk engine — kill switch, drawdown circuit breakers, per-strategy capital limits, and database-level order deduplication. Asynchronous workers communicate only through PostgreSQL and Redis Streams, making the system fully observable and crash-recoverable.
Agentic SEO
An LLM-first SEO audit toolkit that pairs deterministic, script-based evidence collection with language-model reasoning to produce prioritised, defensible recommendations. Organised into sixteen focused sub-skills, around thirty-three scripts, and ten specialist agents covering technical health, content, schema, and crawler readiness — packaged as installable skills for multiple AI coding environments.
An offline-first Pokémon guessing game (a Pokédle / Squirdle relative) with an era-aware type system that judges a Pokémon's types against a player-chosen generation. It ships three modes — date-seeded Daily, endless Unlimited with pass-and-play multiplayer, and a Silhouette reveal — as an installable PWA with no backend, plus a theming engine that re-dresses the whole interface as any of seven console eras from a single attribute.
Odysseus
A deliberate experiment to measure backend-framework velocity first-hand — building a type-safe GraphQL API in Rust (Actix-web, async-graphql, SQLx) to compare its development speed and trade-offs against a Python/Django stack. With a typed Rust backend and a typed GraphQL contract consumed by a Nuxt frontend, type-safety extends from the database to the browser.
Personal Website v1
My first personal website, built with Next.js and JavaScript, featuring a responsive design, smooth animations, and interactive 3D elements with Three.js. Included here to show the evolution from this early work to the current Nuxt and Rust iteration. Now offline, with the codebase available on GitHub.
Homelab
I run a self-hosted homelab centred on a Raspberry Pi 5 that hosts production services for my projects — databases, queues, local AI inference, and public ingress — all managed with systemd and Docker and networked over a private Tailscale mesh.
Raspberry Pi 5
Production host running roughly 24 Docker containers alongside native systemd services for my live projects.
Data and Queues
PostgreSQL with PgBouncer connection pooling, Redis for caching and brokering, and RabbitMQ for task queues.
Local AI Inference
Self-hosted Ollama for LLM inference, powering translations and content workflows without third-party APIs.
Public Ingress
Caddy reverse proxy with dual Cloudflare Tunnels exposing services to the internet without port forwarding.
Tailscale Mesh
A private mesh VPN linking six devices — the Pi, two MacBooks, a Windows desktop, and a phone.
Distributed Workloads
Multi-machine pipelines such as ContentForge, routing work across the Pi, a MacBook, and a GPU desktop.
Skills
Languages
Technologies
Infrastructure & DevOps
Work
Education
ISCTE-IUL
Academic background involving C, Java, PHP, Python, and SQL.
Bytes4Future
Intensive full-stack bootcamp covering HTML/CSS, JavaScript, React, Redux, Node.js, Express, and MongoDB. Built team projects including a restaurant management app and a Pokemon trivia game.
42 Network
Peer-to-peer programming school focused on C, Git, and Linux command line fundamentals.