Command Palette

Search for a command to run...

hi, I'm

João Ferro

Building systems with a focus in their security and performance!
With 🧡 from Lisbon, Portugal.

Work

Projects

Vulnerability Management Platform

2025-current

Company - Production

FastAPI backend paired with a Next.js frontend to centralize vulnerability tracking. Used Alembic to manage database migrations. Replaced fragmented and isolated workflows with a structured, searchable interface — reducing triage overhead and enabling data-driven remediation prioritization.

FastAPINext.jsPythonPostgreSQLSecurity

Security by Design & TPRM Platform

2024 - current

Company - Production

Full-stack Django application automating Security by Design (SbD) requirements and Third-Party Risk Management (TPRM) requirements/workflows. Integrated automated compliance/security checks while exploring best practices of GitLab's CI/CD pipelines. Worked with Power BI to create dashboards for risk and data visualization.

DjangoPythonGRCCI/CDDevSecOpsPostgreSQLPower BIPhishing

Personal Homelab

2024 - current

Personal

Self-hosting a Fedora Server infrastructure running several services such as Vaultwarden, Portainer, Uptime Kuma — containerized via Docker. Custom Python and Bash scripts in order to automate monitoring, health checks, and backups. Primary environment for security research and network testing via virtualization.

DockerLinuxPythonBashSelf-hostedFedora

After hours

Personal Projects

Things I build outside work — live and open to explore.

Demo: Janeiro de Cima, a Schist Village on the Zêzere

2026

Personal - Live

An unofficial tribute site for Janeiro de Cima, in Fundão, showing what a village, parish or municipality can have online. Hand-drawn SVG illustrations that follow Lisbon time from day to night, a full-screen walk through the village, an events calendar that clears past dates on its own and a Decap CMS panel so locals can edit content. Built with Astro and 9 KB of JavaScript, with no third-party scripts, 14 structured-data types for Google and AI assistants, llms.txt and a strict CSP. Includes a page explaining how it was built.

AstroTypeScriptSVGSEO / GEO / AEOJSON-LDDecap CMSCSPCloudflare Pages

Demo: Neighbourhood Café in Lisbon

2026

Personal - Live

A full site for a fictional café in Lisbon, with a menu, online shop, events calendar and an interactive coffee-roasting lab. Built with Astro and 7 KB of JavaScript, CSS/SVG micro-animations, structured data for Google and AI assistants (Menu, Event, Product, FAQ), llms.txt and a hash-based CSP. Includes a page explaining how it was built.

AstroTypeScriptSEO / GEO / AEOJSON-LDCSPCloudflare Pages

Restaurant Website Demos

2026

Personal - Live

One zero-dependency template that generates a full one-page site per restaurant from a single config file. Mobile-first, Lighthouse 97–100 across the board, AVIF/WebP images, per-restaurant SEO with Open Graph and Restaurant JSON-LD, and a strict CSP. The demos below are fictional showcases.

+ More demos on the way
HTMLCSSJavaScriptNode.jsSEOCloudflare Pages

Lisboa 2054

2026

Personal - Experiment

An interactive scene of a Lisbon street at night, in the rain, after AI has taken over the city's infrastructure — wet calçada, azulejo façades, a yellow tram, neon, drones and ambient audio. Drawn entirely on a vanilla JS canvas.

CanvasJavaScriptWeb AudioGenerative art

Arcade

2026

Personal - Playground

A small arcade of browser games I build to practice and experiment, sharing this portfolio's stack and design language.

Next.jsTypeScriptFramer Motion

Say hi! 👋

Get in touch

Open to new opportunities, collaborations, and interesting conversations.