Skip to content
nmorais.dev

Backend-leaning full-stack developer in Porto.

I build APIs, authentication, payments and the interfaces on top of them. Four years in production, including an AI moderation SaaS I owned from early build to launch.

content-type: application/json
x-location: Porto, PT
x-open-to-work: true
{
  "role": "Full Stack Developer",
  "years": 4,
  "location": "Porto, Portugal",
  "backend": ["Node.js", "Hono", "Express"],
  "frontend": ["React", "Next.js"],
  "data": ["MongoDB", "SQL", "D1"],
  "cloud": ["Cloudflare Workers"],
  "languages": ["en", "pt"]
}
aominuto.ptAo Minuto home page in the dark theme. The headline reads "O que está a acontecer em Portugal, ao minuto", above live counts of active Civil Protection incidents and a list of nearby events and cheapest fuel.

Ao Minuto

Problem
Official public data, such as Civil Protection incidents and fuel prices, is spread across sources and hard to follow as it happens.
Built
A real-time, location-based platform that aggregates and structures that data and shows what is happening near the user.

Next.js · Tailwind CSS · TypeScript · Cloudflare Workers · Hono

Visit aominuto.pt →

yatec.xyzYATEC home page in the dark theme. A generated disposable email address with copy and refresh buttons sits above an empty inbox list and a message preview pane.

YATEC

Problem
Disposable email that is simple to run and cheap to host, without depending on a third party.
Built
An open-source service with a REST API on Hono, mailboxes in Cloudflare D1, inbound mail through Cloudflare Email Routing and a Next.js interface.

Next.js · Tailwind CSS · TypeScript · Cloudflare Workers · Hono · Cloudflare D1 (SQLite) · Cloudflare Email Routing

Visit yatec.xyz →Source YATEC →

recaptv.appRecapTV landing page in the dark theme. The headline reads "Never lose your place." with Get started and Sign in buttons.

RecapTV

Problem
Keeping track of where you left off in series and movies, and where to watch them.
Built
A tracker that aggregates metadata from TVDB and TMDB and availability from JustWatch.

Next.js · Tailwind CSS · TypeScript · Cloudflare Workers · Hono · Cloudflare D1 (SQLite)

Visit recaptv.app →

All projects →

  1. Apr 2022 → Dec 2025

    Full Stack Developer

    Momentum One · Remote / Lisbon

    • productOwned an AI-powered moderation SaaS (LLM integration) for Discord, Telegram, and Slack communities, from early-stage build through production, with full technical autonomy.
    • webBuilt React/Next.js dashboards for rule configuration and user management, focused on performance and UX.
    • apiDesigned REST APIs and webhooks in Node.js/Hono, integrating Discord, Telegram, Slack, and Stripe.
    • authImplemented JWT/OAuth authentication, authorization, and session management.
    • dataModeled and maintained Cloudflare D1 (SQLite) and MongoDB databases.
    • edgeBuilt serverless architectures on Cloudflare Workers for low latency, scalability, and cost control.
    • paymentsIntegrated Stripe payments and Strapi CMS into e-commerce and subscription flows.
    • opsSet up Sentry and PostHog for production monitoring, logging, and analytics.
    • web3Contributed to Web3 on-chain event projects: event tracking, wallet integration, notification routing.
  2. Nov 2021 → Mar 2022

    B2B Support / Community Administrator

    Momentum One · Remote / Lisbon · Internship. Moderation bot testing, documentation, onboarding automation.

  3. Mar → Jul 2020

    Full Stack Developer

    Tactis · Porto · Internship. Web features for management systems.

  1. Sep 2026 → now

    Informatics Engineering

    ISEP - Instituto Superior de Engenharia do Porto · Bachelor's Degree

  2. May → Nov 2022

    Full Stack Web Development

    Ironhack · Bootcamp

  3. Sep 2017 → Jul 2020

    Computer Systems Programming and Management Technician

    Escola Profissional do Infante · Professional Course

backend
Node.js, Express, Hono, REST APIs, Webhooks, JWT / OAuth, Microservices
databases
Cloudflare D1 (SQLite), MongoDB
frontend
React, Next.js, Tailwind CSS
cloud & devops
Cloudflare Workers, Cloudflare Pages, Cloudflare Email Routing, Git
ai / llms
LLM integration, Automated moderation, Data pipelines
integrations
Stripe, Strapi, Discord, Telegram, Sentry, PostHog
languages
JavaScript, TypeScript, SQL

How I work with AI agents

I build with AI-assisted, multi-agent workflows. Planner, implementer and reviewer agents work through kanban boards, and I review everything that ships.

MCP integrations connect the agents to the tools and data they need, and scheduled automations take care of recurring tasks.

planner
breaks the goal into cards
implementer
builds on a branch and opens a PR
reviewer
checks the work against the card
human
approves, then merges

Let's talk.

Looking for a full-stack or backend role around Porto, or remote in Portugal.

me@nmorais.dev