
Engenheiro de Software Full-Stack · Leiria, Portugal
Francisco Gaspar
Sou engenheiro de software full-stack. Faço o backend, a interface e as integrações entre os dois.
Na xgeeks trabalho com clientes de tecnologia industrial, eletricidade, renováveis e automóvel. Umas vezes são agentes de IA e plataformas completas. Outras são serviços de backend e integrações. Antes disso estive na Deloitte, a automatizar testes de integração de um dos maiores bancos do Canadá. Fora do trabalho de cliente faço o Soon, o LongTable, o Revisto e o Wanderwit.
Experiência
Engenheiro de Software · xgeeks
06/2022 – Presente- Num cliente de tecnologia industrial fiz agentes de IA que abrem um site como uma pessoa e escrevem os problemas de usabilidade e acessibilidade. Também fiz os workers em FastAPI, a suite de avaliação em MLflow e o dashboard em Next.js que ficam à volta desses agentes.
- Um cliente de eletricidade precisava de um marketplace para contratos de compra de energia. Fiz a API em NestJS e duas apps em Next.js, o marketplace e a administração. A negociação é um chat em tempo real, dá para procurar contratos e tirar os relatórios dos reguladores no mesmo sítio.
- Um cliente de renováveis queria as compras dentro do Microsoft Teams, e fiz um protótipo. O bot procura no catálogo de materiais, cruza a folha de cálculo do projeto com esse catálogo e prepara um pedido quando falta alguma coisa. O SAP não está mesmo lá. É uma API simulada num tenant de testes do Microsoft 365, ligada pelo Microsoft Graph.
- Num cliente do automóvel escrevi serviços de backend e as integrações com sistemas de fora, em TypeScript e NestJS. Os dados ficam em PostgreSQL e MongoDB, via TypeORM, e os testes em Jest.
- Faço o deploy no Azure com Terraform. Quando alguma coisa falha, olho para o Datadog e para o Azure Application Insights.
- Deixei os repositórios dos clientes prontos para o Claude Code e o Copilot, com instruções e uma nota curta de passagem para a pessoa seguinte.
TypeScript · Python · NestJS · FastAPI · TypeORM · MikroORM · PostgreSQL · MongoDB · Redis · Next.js · Tailwind CSS · OpenAI API · Microsoft Graph · PowerShell · Azure · Terraform · Docker · Jest
Programador · Deloitte
12/2020 – 06/2022- Automatizei suites de testes de integração para um dos maiores bancos do Canadá. Uma suite levava várias horas a uma pessoa. Agora corre sozinha.
- Os testes percorrem os sistemas core da banca e dos seguros, e confirmam os dados que esses sistemas passam uns aos outros.
Formação
Licenciatura em Engenharia Informática
Escola Superior de Tecnologia e Gestão, IPLeiria
09/2016 – 07/2020 · Nível 6 do QEQ
Curso Profissional de Técnico de Informática de Gestão
Colégio Dinis de Melo, Leiria
09/2013 – 07/2016 · Nível 4 do QEQ
Projetos
Projeto pessoal · Online · Em desenvolvimento
LongTable: críticas de restaurantes entre amigos
Os amigos avaliam restaurantes no site, e há apps para iOS e Android. A crítica pode ser pública ou só para amigos. Também se combinam almoços e jantares. Cada um sugere um sítio e uma hora e, na manhã seguinte, o convite pergunta como correu. Os restaurantes vivem num catálogo só, por isso o mesmo sítio é o mesmo sítio para toda a gente. Há um feed com pesquisa, um mapa, uma página por local e um ranking por distrito. Um bot lê as stories de Instagram dos restaurantes, o Gemini tira o menu do dia e eu aprovo-o no Telegram antes de ir para o site. Estou a começar em Portugal, por Leiria, Lisboa e Porto.
Next.js · TypeScript · Supabase · Clerk · Capacitor · Leaflet · Gemini API · Playwright · Telegram Bot API · Web Push · Resend · Sentry · Vercel
longtable.pt ↗Projeto pessoal · Online · Em desenvolvimento
Soon: lembretes de faturas a partir do Gmail
O Soon lê os emails de faturas no Gmail e tira o valor e a data de débito. Se o email não disser, abre o PDF. Cada dia de pagamento entra no Google Calendar, no Outlook ou no Apple Calendar por um link de subscrição, e no dia anterior chega uma notificação push. Não invento valores. Se alguma coisa não estiver clara, o campo fica em branco até alguém ver. Faturas que nunca chegam por email podem entrar em PDF ou numa fotografia. O OCR lê-as, e também se podem mandar para um bot do Telegram. A renda, os empréstimos e o ginásio entram como pagamentos fixos. Numa fatura por Multibanco, a entidade e a referência também vão para a nota do calendário. É para débitos em contas portuguesas, em português e em inglês.
Next.js · TypeScript · Supabase · Tailwind CSS · Gmail API · Tesseract.js · Telegram Bot API · Web Push · Docker · Vercel
soon-tracker.com ↗Projeto pessoal · Em desenvolvimento
Revisto: o histórico de manutenção do carro
Queria um sítio só para as revisões, as faturas, o combustível e os lembretes de um carro, e uma forma de passar esse histórico ao dono seguinte quando o vendes. Apontas a câmara ao código QR de uma fatura portuguesa e a revisão ou o abastecimento ficam preenchidos. Calcula os consumos, avisa quando alguma coisa está para vencer e exporta o histórico em PDF. Fica tudo no telemóvel. É para iOS e Android. Portugal primeiro.
Expo · React Native · TypeScript · SQLite · Drizzle
Projeto pessoal · Em desenvolvimento
Wanderwit: puzzles e trivia num mapa de expedição antigo
Um jogo de puzzles e trivia para Android e iOS. Atravessas um mapa de expedição antigo, e cada nível é um de três puzzles. Pões factos por ordem, conquistas um tabuleiro de hexágonos a responder a perguntas ou adivinhas a resposta com pistas que vão ficando mais fáceis. Antes de cada nível, o jogo confirma que é justo. Um puzzle de ordem resolve-se sempre só com o feedback, por isso as estrelas ganham-se a saber os factos. Com login Google, o progresso fica guardado na cloud e junta-se se jogares em dois aparelhos. Está em português e inglês.
Flutter · Dart · Riverpod · Firebase · GitHub Actions · Codemagic
Projeto de cliente · xgeeks · 2025 – 2026
Marketplace de PPA: negociação de contratos de compra de energia
As empresas publicam contratos de compra de energia, negoceiam-nos e acompanham o que ficou assinado. Fiz o chat de negociação e os pedidos de suporte em WebSockets, a pesquisa e os filtros no Meilisearch, exportações para Excel com o histórico do contrato e os relatórios que os reguladores pedem. A API é NestJS e as apps de marketplace e de administração são Next.js. Se o Redis cair, um outbox segura os emails e as notificações para não se perderem.
NestJS · MikroORM · PostgreSQL · Redis · Meilisearch · Socket.IO · Next.js · Tailwind CSS · Azure · Terraform
Projeto de cliente · xgeeks · 2026
WebLens: auditorias de usabilidade e acessibilidade com IA
Os agentes abrem um site como uma pessoa e reportam problemas de usabilidade e acessibilidade. Trabalhei nisto tudo. Os agentes de browser fazem login, tiram capturas de ecrã e procuram falhas. A API em FastAPI e os workers da fila apanham jobs abandonados, tentam outra vez e não agem sobre evidências que ainda estão a ser deduplicadas. O MLflow avalia a qualidade dos agentes. No dashboard em Next.js crias um workspace e mandas convites. Por baixo está o Azure, descrito em Terraform.
Python · FastAPI · SQLAlchemy · PostgreSQL · Next.js · Browser Use · MLflow · Azure · Terraform · Playwright
Hackathon em equipa · Set 2025
Quack as a Service: monitorização de segurança em fábricas
Uma câmara confirma se levas o equipamento de proteção que aquela sala exige, e não te deixa entrar se não levares. As pessoas identificam-se com um código QR. O YOLO apanha quedas. O AWS Rekognition marca sinais de stresse. O Bedrock passa esses eventos para notas num dashboard de segurança, em direto.
Python · FastAPI · SQLAlchemy · PostgreSQL · Next.js · Tailwind CSS · YOLO · OpenCV · AWS Rekognition · AWS Bedrock
Projeto pessoal
Homelab: um servidor em casa
Um servidor multimédia em Docker Compose num MacBook. As apps de downloads saem por um contentor de VPN, e o Caddy dá HTTPS a cada serviço na rede local com uma autoridade de certificação própria, para o Apple Passwords preencher as passwords. A página de pedidos e o Home Assistant chegam-se de fora por um Cloudflare Tunnel atrás do Cloudflare Access, sem portas abertas no router. Escrevi um pequeno serviço em Flask que transforma os webhooks das apps em notificações no telemóvel. O Home Assistant também trata da casa. O extrator da casa de banho segue a humidade, a luz da cozinha segue a presença à noite e um tablet na parede mostra o dashboard.
Docker · Caddy · Cloudflare Tunnel · Python · Flask · Home Assistant
Artigo · Fev 2024
Introducing AutoGen: enhancing LLM apps through multi-agent conversations
Escrevi isto para o blog da xgeeks. É sobre o AutoGen e sobre deixar vários agentes falar entre si dentro de uma aplicação que corre em modelos de linguagem.
blog.xgeeks.com/ai-agents-101-with-autogen ↗