Saltar para o conteúdo
Telmo Silva/hub

Trabalho

Quatro coisas construídas, com o estado verdadeiro e a parte difícil de cada uma.

Escolhi quatro em vez de listar tudo o que já construí. A razão está escrita no primeiro capítulo do guia de validação: uma pasta com quarenta projetos começados não é prova de criatividade, é o registo de quantas vezes a parte difícil foi adiada. Estas quatro abrem-se e verificam-se. Para cada uma escrevi qual foi o problema a sério, que costuma dizer mais sobre quem constrói do que a lista de tecnologias.

Compartmentalizer

Em produção, 16 aplicações

A plataforma que faz o deploy de tudo o resto desta página. Um PaaS próprio, numa VPS: recebe um commit, constrói a imagem, troca a versão em execução e mantém cada aplicação isolada da seguinte, com backups cifrados fora da máquina.

Não há link para abrir, porque isto não é um site. A prova é que esta página, e as outras três desta lista, estão a correr em cima dela neste momento.

A parte difícil

Trocar a versão de uma aplicação sem a deitar abaixo. A troca só acontece depois de a versão nova responder a um health check, com a antiga ainda de pé a servir pedidos, e reverte sozinha se a nova não responder. As aplicações que seguram chaves são a exceção deliberada: essas param primeiro, porque duas instâncias a segurar a mesma chave é um problema pior do que um segundo de indisponibilidade.

Moto Spotters

Online

Plataforma comunitária para motociclistas em Portugal, em Next.js e PostgreSQL, com pagamentos em euros, subscrição freemium e aplicação Android.

motospotters.pt

A parte difícil

A moderação. O conteúdo que os utilizadores escrevem passa por um LLM antes de ficar visível, em mais de 25 tipos de conteúdo, cada um com o seu critério. Ligar o modelo foi a parte fácil. O difícil foi decidir o que fazer quando ele hesita: bloquear a mais mata a comunidade, bloquear a menos deixa passar o que não pode passar, e a resposta não é a mesma para uma fotografia e para uma mensagem privada.

DoutorWeb

Online

Agência de web design a preço acessível, com doze ferramentas gratuitas que qualquer pessoa usa sem se registar: gerador de orçamentos, cartão digital, menu digital, QR de wifi, compressor de imagens, verificador de SEO e mais.

doutorweb.pt

A parte difícil

Manter o site rápido enquanto lhe acrescento ferramentas. Cada ferramenta nova é mais uma página que tem de abrir depressa num telemóvel com rede fraca, que é exatamente onde está o cliente deste serviço. É fácil ter um site rápido no dia do lançamento e é difícil ainda o ter seis ferramentas depois.

Carteira de conta inteligente em CKB

Testnet, repositório privado

Uma carteira em que perder o dispositivo não perde o dinheiro. Quem gasta confirma com o Face ID ou a impressão digital do próprio telemóvel, e a assinatura é verificada pela cadeia, não por um servidor meu: a chave nunca sai do dispositivo e a página não guarda nada. Recuperar o acesso exige que um número mínimo de guardiões escolhidos por ti concordem, com um prazo de espera durante o qual o dono pode vetar.

Ver a transação na Pudge

A parte difícil

Pôr um passkey de hardware a autorizar uma transação sem intermediário nenhum. O desafio que o dispositivo assina tem de ser exatamente o resumo da transação, só que esse resumo depende do tamanho da assinatura, e o tamanho só se conhece depois de o dispositivo assinar. É circular, e é aí que isto costuma partir. A solução foi fixar o campo da assinatura num tamanho constante, com enchimento no fim, para o resumo ficar determinado antes de alguém assinar. Ninguém repara nisto quando funciona.

O que ainda não está feito

Está em testnet e continua em testnet até haver auditoria externa feita por outra pessoa. A chave que permite atualizar o contrato ainda está comigo, e é a última coisa a fechar, depois da auditoria. Escrevo isto aqui porque o contrário seria exatamente o erro que o guia de validação passa doze secções a tentar evitar.

O percurso completo, com datas e funções, está no currículo. Como cheguei aqui está em sobre.