Skip to content

Experiência ​

WKT – Sistemas de Informação ​

Programador de aplicações web · nov. 2025 – presente

O ScalarGIS é uma plataforma open source de mapas para a web, com servidor em Flask/PostGIS e cliente em React/OpenLayers. Cada instalação tem os seus componentes e extensões por cima de uma base comum. Mexi nas duas camadas.

E-commerce do SNIC ​

Foi o primeiro projeto grande que me confiaram. Construí de raiz a loja da próxima versão do SNIC, onde se vão comprar documentos cadastrais certificados (fichas de prédio, confrontações e plantas de pontos), do schema da base de dados até ao PDF assinado na caixa de email do cliente.

Pelo meio integrei os pagamentos da administração pública (referências DUC), a faturação automática por web service e a assinatura digital dos documentos. Depois do pagamento, um worker trata de tudo passo a passo e retoma sozinho se alguma coisa falhar. Garanti que uma encomenda nunca é faturada duas vezes e fiz uma revisão de segurança completa ao fluxo de pagamento. A DGT tem ainda um backoffice para validar pedidos e acompanhar as exceções.

Plataforma e frontend ​

Atualizei o cliente inteiro para versões atuais (React 19, Nx 22, Vite 7, TypeScript, testes em Vitest) e fechei todas as vulnerabilidades do npm audit.

A seguir veio o maior trabalho até agora: trocar a biblioteca de UI de todo o frontend, de PrimeReact para Mantine, porque a antiga mudou de licença. Escolhi a alternativa e fiz a migração por fases, com testes visuais antes de mexer. Criei a @scalargis/ui, a biblioteca partilhada que todas as aplicações usam: tema, diálogos, tabelas, formulários, ícones e um sistema de temas com verificação automática de contraste. Os formulários da plataforma são gerados a partir de JSON Schema com o JSON Forms, por isso escrevi também os renderers do JSON Forms para Mantine (@scalargis/jsonforms-mantine-renderers), mantendo os dados guardados iguais. Converti o backoffice, o visualizador e depois os componentes de cada cliente (MapasPT, carrinho do SNIC, Catálogo SNIG e outros), sem nunca parar as instalações em produção. Pelo caminho juntei um tour guiado para novos utilizadores e melhorei a acessibilidade.

Autenticação e SSO ​

Liguei a plataforma à Chave Móvel Digital (OAuth2 com a AMA) e ao portal PoInT da DGT por Keycloak (OIDC com PKCE), para quem já entrou num lado não ter de entrar outra vez. No servidor juntei proteção contra força bruta, auditoria de logins, cifra de dados pessoais e correções no login por Active Directory.

Portais para a DGT ​

  • MapasPT: portal público que cruza uma área desenhada ou carregada (GeoJSON, SHP, DXF, KML) com os planos de ordenamento do território. Fiz a ferramenta de análise, o backoffice, as estatísticas de uso, a integração com IA (SAS Viya) e os manuais.
  • SMOS: relatórios em PDF sobre a ocupação do solo por concelho, com gráficos e mapa, gerados de forma automática.

Infraestrutura e operações ​

  • Passei a produção do SMOS de Windows para Ubuntu com Docker, sem perder dados nem contas de utilizador, e escrevi um guia de migração para as outras instalações.
  • Auditei os servidores cloud: o que corre em cada um, o que ainda se usa, o que se pode desligar. Guardei os dados antes de apagar o que já não servia.
  • Recuperei um servidor comprometido e reconstruí-o limpo: Docker, um proxy nginx com TLS à frente de tudo, firewall e acesso só por chave.
  • Migrei e atualizei o GitLab para o servidor reconstruído, e atualizei o Redmine.
  • Passei os servidores a acesso SSH só por chave.

Freelance ​

Websites para pequenos negócios · 2026 – presente

  • Construo de raiz websites multilingues com gestão de conteúdo (Astro, Tailwind, Sveltia CMS), que os donos editam sem conhecimentos técnicos: um hotel para animais, um alojamento local e o portefólio de um videógrafo.
  • Trato do alojamento: imagens Docker num VPS na Europa, nginx com CSP restrita, cópias de segurança automáticas e alertas de indisponibilidade.

Formação ​

Licenciatura em Engenharia Informática · Universidade do Algarve · 2022 – 2025