Senior Full-Stack Engineer
A CENTURY 21 Portugal e Espanha está a reforçar a sua capacidade interna de produto e tecnologia. O objetivo é ganhar controlo sobre os nossos sistemas, reduzir dependências externas e aumentar a velocidade e a qualidade com que transformamos necessidades reais da rede em produto.
O ecossistema tecnológico serve milhares utilizadores e suporta processos críticos da operação imobiliária: CRM, leads, imóveis, transações, pagamentos, faturação, crédito habitação, websites, comunicação, dados e centenas de integrações com parceiros externos. A stack atual inclui Next.js, Vercel, Supabase/PostgreSQL, Cloudflare Workers e processamento assíncrono.
Estamos numa fase de modernização com foco na redução de dívida técnica, qualidade da arquitetura e dos dados, observabilidade e ownership efetivo do código, infraestrutura, acessos e conhecimento. Há decisões de arquitetura por tomar e áreas do sistema por reconstruir — não é um produto à espera de manutenção, é um sistema vivo em transformação.
Estamos também a incorporar agentes de IA no processo de desenvolvimento. Não para escrever mais código por si só, mas para mudar a forma como especificamos, desenvolvemos, testamos, documentamos e revemos software. A responsabilidade técnica continua a ser de quem entrega.
Senior Full-Stack Engineer AI-Native
Lisboa · Produto e Tecnologia
Enquadramento
A CENTURY 21 Portugal e Espanha está a reforçar a sua capacidade interna de produto e tecnologia. O objetivo é ganhar controlo sobre os nossos sistemas, reduzir dependências externas e aumentar a velocidade e a qualidade com que transformamos necessidades reais da rede em produto.
O ecossistema tecnológico serve milhares utilizadores e suporta processos críticos da operação imobiliária: CRM, leads, imóveis, transações, pagamentos, faturação, crédito habitação, websites, comunicação, dados e centenas de integrações com parceiros externos. A stack atual inclui Next.js, Vercel, Supabase/PostgreSQL, Cloudflare Workers e processamento assíncrono.
Estamos numa fase de modernização com foco na redução de dívida técnica, qualidade da arquitetura e dos dados, observabilidade e ownership efetivo do código, infraestrutura, acessos e conhecimento. Há decisões de arquitetura por tomar e áreas do sistema por reconstruir — não é um produto à espera de manutenção, é um sistema vivo em transformação.
Estamos também a incorporar agentes de IA no processo de desenvolvimento. Não para escrever mais código por si só, mas para mudar a forma como especificamos, desenvolvemos, testamos, documentamos e revemos software. A responsabilidade técnica continua a ser de quem entrega.
A função
Esta não é uma função de execução de tickets. Vais compreender o problema, discuti-lo com produto e negócio, identificar riscos, desenhar a implementação e acompanhar o resultado até produção — e depois dele.
Procuramos alguém que decida em vez de esperar por decisões. Numa equipa em construção, quem chega tem margem real para definir arquitetura, processos e standards; em contrapartida, espera-se iniciativa para identificar o que está mal antes de alguém pedir para o corrigir.
Se a ideia de assumir um sistema, arrumá-lo e deixar a tua marca na arquitetura te entusiasma, esta função é isso. Se preferes um backlog fechado e decisões tomadas por outros, vais achá-la desconfortável.
Utilização de IA no processo de engenharia
Esperamos utilização regular de agentes de código como Claude Code, Cursor, Codex ou equivalentes. A experiência que nos interessa não é apenas saber gerar código. É saber preparar contexto, definir critérios de aceitação, decompor trabalho, rever resultados, testar e rejeitar o que não está suficientemente bom .
Queremos criar uma base de engenharia em que documentação, testes, ambientes reprodutíveis e regras de projeto permitam utilizar agentes com mais autonomia sem perder controlo sobre a qualidade do software.
Em algumas tarefas, um agente poderá executar uma parte significativa do trabalho. Isso não altera a responsabilidade do engenheiro pela arquitetura, pelos dados, pela segurança e pelo comportamento da solução em produção. Quem não sabe programar não sabe rever.
Responsabilidades
- Desenvolver e evoluir aplicações full-stack, APIs, serviços e integrações.
- Trabalhar sobre frontend, backend e modelo de dados, compreendendo o impacto das decisões no sistema como um todo.
- Assumir integrações críticas com portais imobiliários, ERP e faturação, pagamentos, crédito habitação, email e notificações.
- Desenhar processamento assíncrono resiliente, incluindo retries, idempotência, filas, dead-letter e alertas.
- Trabalhar com PostgreSQL ao nível de modelação, índices, transações, migrations, performance e qualidade de dados.
- Implementar e rever mecanismos de segurança, autenticação, permissões, RLS e RBAC.
- Reduzir dependências externas, pontos únicos de falha e concentração de conhecimento.
- Melhorar observabilidade, performance e controlo de custos dos diferentes serviços.
- Participar nas decisões de arquitetura e na evolução da stack.
- Tratar dívida técnica de forma estruturada, evitando que problemas recorrentes sejam resolvidos apenas com correções pontuais.
- Construir e manter testes, documentação e tooling que facilitem o desenvolvimento, a revisão e a operação do sistema.
- Participar no discovery técnico antes da implementação e acompanhar o que é entregue depois do deploy.
Primeiros 90 dias
- Mês 1 — conhecer o sistema a fundo e entregar em produção. Esperamos que faças perguntas difíceis e que apontes o que está mal, mesmo antes de teres contexto completo.
- Mês 2 — assumir ownership de pelo menos uma área crítica ponta a ponta, incluindo as suas integrações e o seu comportamento em produção.
- Mês 3 — propor e começar a executar uma melhoria estrutural que tenhas identificado. A iniciativa é tua; o que te damos é contexto, autonomia e tempo.
Experiência e competências
Como referência, procuramos 4 ou mais anos de experiência full-stack em sistemas de produção, idealmente com TypeScript/Node e React/Next.js ou tecnologias equivalentes.
- APIs REST, webhooks, integrações externas, autenticação, JWT, OAuth e SSO.
- React/Next.js ou frameworks equivalentes e capacidade para implementar fluxos de produto completos.
- SQL e PostgreSQL, incluindo modelação, queries, índices, transações, migrations e performance.
- Arquiteturas serverless ou edge, CDN, filas, jobs e serviços distribuídos. Experiência com Cloudflare, Vercel ou Supabase é valorizada, mas não obrigatória.
- Retries, idempotência, rate limiting, caching, concorrência, tolerância a falhas e observabilidade.
- Controlo de acessos, proteção de dados pessoais, gestão de secrets e princípios de segurança aplicados ao desenvolvimento.
- Utilização frequente de agentes de código e capacidade para validar criticamente o respetivo output.
- Português e inglês profissionais e capacidade para escrever especificações técnicas claras. Nesta função, especificação ambígua é bug.
Experiência adicional valorizada
Sistemas de agentes, tool use, MCP, RAG e avaliação de outputs de IA, bem como pagamentos, faturação, ERP, sistemas transacionais, observabilidade, FinOps, RGPD, segurança aplicada, CRM ou tecnologia imobiliária.
Não é necessário conhecer todas as tecnologias da nossa stack. É mais importante conseguir aprender rapidamente um sistema existente, perceber os trade-offs e tomar decisões técnicas fundamentadas.
Como trabalhamos
- Fazes as perguntas necessárias antes de iniciar a implementação, não a meio.
- Discutes produto e negócio antes de transformar o problema numa solução técnica.
- Preferes a solução mais simples que resolva corretamente o problema.
- Sabes quando utilizar um agente e quando trabalhar diretamente sobre o código.
- Rejeitas output tecnicamente plausível quando a validação não é suficiente.
- Dazes "isto foi feito por um agente, revi e assumo" — e assumes também quando corre mal.
- Documentas decisões e contexto para que o conhecimento não fique concentrado numa pessoa. Preferes deixar o sistema explicado a deixá-lo dependente de ti.
- Não te apegas à ferramenta do trimestre passado, nem à tua própria forma de trabalhar de há seis meses.
- Assumes responsabilidade pelo comportamento do sistema depois do deploy.
Contexto e condições
- Produto real, utilizado diariamente por uma grande rede imobiliária, com impacto direto na operação e no negócio.
- Equipa de produto e tecnologia em construção: as tuas decisões de arquitetura ficam visíveis em semanas, não em anos.
- Participação na definição de arquitetura, processos e standards numa fase em que estes ainda estão a ser consolidados.
- Autonomia técnica e acesso às ferramentas de IA necessárias ao desempenho da função — usar bem faz parte do trabalho, não é um extra tolerado.
Processo de recrutamento
- Conversa inicial — enquadramento da função, experiência, expectativas e forma de trabalhar.
- Exercício com agentes — apresentamos um problema técnico real e podes usar as ferramentas que considerares adequadas. Avaliamos como o problema é interpretado, especificado, executado e validado, incluindo aquilo que decides rejeitar. Não avaliamos velocidade a escrever código.
- Entrevista técnica e conversa final — arquitetura, dados, integrações e decisões técnicas sobre problemas reais, seguidas de alinhamento com a equipa sobre função, cultura e próximos passos.
Objetivo da contratação
A CENTURY 21 Portugal e Espanha quer construir uma capacidade tecnológica própria que transforme conhecimento do mercado imobiliário, escala operacional e dados numa vantagem competitiva para a rede.
Esta contratação faz parte dessa construção. Procuramos alguém que queira ter impacto técnico real e ajudar a criar uma equipa capaz de desenvolver, operar e evoluir tecnologia com maior autonomia, qualidade e velocidade.