Diogo Lemos, Full-Stack Developer

Diogo Lemos

Full-Stack Developer

Full-stack developer based in Portugal

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.

Nuxt.jsNuxtUIVue.jsTypeScriptDjangoGraphQLPostgreSQLDockerPythonRaspberry PiAPSchedulerHardware integrationSolderingLinux
Read more

Numerology Platform

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.

Nuxt.jsNuxtUIVue.jsTypeScriptDjangoGraphQLPostgreSQLRedisCeleryDockerStripeFastAPIOllamaCloudflare
Read more

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.

PythonDjangoStrawberryGraphQLNuxt.jsasyncioCeleryRabbitMQRedisOllamaFFmpegTailscaleDocker
Read more

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.

PythonasyncioSQLAlchemyAlembicPostgreSQLRedisPolarsFastAPINuxt.jsTypeScriptDocker
Read more

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.

PythonBashPlaywrightBeautifulSoupGitHub APIPageSpeed InsightsLLM
Read more

rayquizz

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.

Nuxt 4Vue.jsTypeScriptTailwind CSSNuxt UIPWAVitestmotion-vCloudflare Pages
Read more

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.

RustActix-webasync-graphqlSQLxTokioGraphQLNuxt.jsPostgreSQLDocker
Read more

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.

Next.jsJavaScriptNode.jsThree.jsNetlify
Read more

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

JavaScriptTypeScriptPythonJavaSQLRustPHPCBash

Technologies

Vue.jsNuxtQuasarVuetifyReactNext.jsExpressThree.jsGraphQLStrawberry GraphQLREST APIsDjangoFastAPILaravelMySQLT-SQLPostgreSQLRedisRabbitMQGitGitHubAzure DevOpsNew RelicScoutAPMDBeaverSourceTree

Infrastructure & DevOps

DockerLinuxsystemdRaspberry PiTailscaleCloudflare TunnelsCloudflare PagesCaddyPgBouncerOllamaSelf-HostingDistributed SystemsIoT / Hardware Sensors

Work

Education

Telecommunications and Computer Engineering

ISCTE-IUL

Academic background involving C, Java, PHP, Python, and SQL.

Bytes4Future Bootcamp

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 Lisbon

42 Network

Peer-to-peer programming school focused on C, Git, and Linux command line fundamentals.

Certifications

Interests

GamingAnimalsTravelCulture / HistoryHardwareAI and Machine LearningSelf-hosting

On the web

Built with Nuxt UI & Three.js © 2026