Curriculum Vitæ
Sobre mim
Desenvolvedor autónomo que defende o software livre, a dignidade dos trabalhadores e a tecnologia ética..
- Full Stack (Frontend, Backend e DevOps básico) e Cientista da Computação;
- Capaz de projetar e arquitetar software;
- Capaz de construir APIs;
- Conhece algumas estruturas de dados e algoritmos e tem interesse em aprender mais sobre o assunto;
- Preocupa-se com a experiência do utilizador (UX);
- Preocupa-se com o desempenho;
- Preocupa-se com privacidade e segurança;
- Gosta de escrever sobre temas técnicos ocasionalmente;
- Conhecimentos de Android;
- Bases de dados relacionais e SQL, mas também experiência com algumas bases de dados NoSQL (como uma base de dados KV como Redis/KeyDB);
- Acha o desenvolvimento de jogos interessante, especialmente o lado do servidor.
- Nome
- João Augusto Costa Branco Marado Torres
- Ano de nascimento
- 2005
- Nacionalidade
- Português
- Redes sociais
-
Rede Social Nome de utilizador GitHub torres-engineer GitHub Marado-Programmer GitHub torres-developer ORCID 0009-0008-6827-1030 - Mensagens instantâneas
- Website
- Endereço
- Beja, Portugal
Experiência profissional
-
Dimmersions & Lim9 — Digital Agency, Funchal, Portugal
03/01/2023–28/03/2023
- Ocupação/Cargo
- Estagiário de Desenvolvimento de Software/Full-Stack (AR/VR/XR e Infraestrutura em Nuvem)
- Negócio/Setor
- Departamento de Imersão
- TI; XR; Microsserviços/Nuvem; Desenvolvimento de software
- Trabalho
-
Contribuiu para a Madalia
Atividades e responsabilidades:
- Revisão e refatoração do servidor de modelos 3D legado para uma arquitetura
mais modular e extensível;
- Suporte para diferentes formatos de modelos 3D e tipos MIME (USD e glTF);
- Front-end do navegador da Web para adicionar e substituir texturas e uma edição e manipulação de texturas, semelhante ao Microsoft Paint;
- Serviço web para transformações automatizadas de texturas usando
ImageMagick;
- Por exemplo, recoloração de tons dominantes;
- Projetou e implementou Cloudflare Workers para validação de solicitações (via IP, cabeçalhos HTTP, tokens, criptografia, autenticação HTTP básica) e geração segura de links temporários ;
- Trabalhei com o Cloudflare R2 para armazenamento de modelos 3D;
- Clonei o AlvaAR para tornar possível o rastreamento de imagens via Node.js;
- Usei o Puppeter nos estágios iniciais para que pudesse ser executado em um navegador sem interface gráfica;
- Implementei identificadores únicos baseados em áudio usando
Quiet.js;
- Havia uma interface web para gerenciá-los, definir quantas vezes um áudio poderia ser usado ou um tempo de expiração, quem poderia ter acesso a esse áudio (permissões), criação dinâmica de áudio;
- Poderia ser usado para disparar ações específicas usando áudios inaudíveis durante uma experiência imersiva;
-
Lim9 — Digital Agency, Funchal, Portugal
23/06/2022–29/07/2022
- Ocupação/Cargo
- Estagiário de Desenvolvimento de Software
Atividades e responsabilidades:
- Criei uma API usando Cloudflare Workers e Google Cloud TTS API;
- Um CRUD para diferentes tipos de recursos;
- Uma maneira de criar um ficheiro de áudio a partir de texto simples ou SSML (dado um idioma e um género suportados pela API do Google).
- Download de modelos 3D USD que vêm com áudio (os mencionados no ponto acima);
- Os modelos foram armazenados em um Cloudflare KV;
- Os Workers tinham um tempo de execução muito limitado, então criei um servidor
HTTP Node.js para manipular os modelos 3D usando o conjunto de ferramentas
USD;
- Criação, edição, verificação e atualização de áudio;
- Frontend para a API Cloudflare Worker;
- HTML, SASS, JavaScript;
- API IndexedDB;
- Iniciei um chat web de comunicação duplex;
- Chats globais e privados;
- Usando Cloudflare Durable Objects e WebSockets.
Educação e Formação
-
Licenciatura em Engenharia Informática
Instituto Politécnico de Beja, Beja, Portugal29/09/2023–(Current but probably 12/07/2026)
- Título da qualificação
Credencial concedida - Nível 6 EQF/NQF
- Organização
-
- Endereço
- Rua Pedro Soares
Apartado 6155
7800-295 Beja - Website
- Área de estudo
- Tecnologias da informação e comunicação
- Nota final
- 16,68/20 (atual)
- Tipo de créditos
- ECTS
- Número de créditos
- 114/180 (atual)
Assunto principal / Competências profissionais abrangidas
- Matemática Discreta, Análise Matemática, Álgebra Linear, Probabilidades e Estatística;
- Física Aplicada à Computação;
- Dinâmica de Grupos e Comunicação;
- Sistemas de Informação;
- Projeto Integrado;
- Segurança em Redes de Comunicação;
- Regulamentação de TI;
- Marketing e Empreendedorismo;
- Administração de Sistemas;
- Tópicos em Ciência da Computação;
- O resto foi basicamente uma revisão do que aprendi em Cristóvão Colombo.
Mobilidade e intercâmbio
-
Universidade Federal Fluminense, Niterói — RJ, Brasil
18/03/2025–26/07/2025
- Organização
-
- Website
Assunto principal / Competências profissionais abrangidas:
- Linguagens de programação;
- Interação humano-computador;
- Redes de computadores 1 e Redes de computadores 2;
- Estruturas de dados e algoritmos.
-
Altınbaş Üniversitesi, İstanbul, Türkiye
17/09/2024–19/01/2025
- Organização
-
- Website
Assunto principal / Competências profissionais abrangidas:
- Matemática Computacional (Análise de Algoritmos);
- Bases de Dados 2;
- Engenharia de Software;
- Introdução à Inteligência Artificial em vez de Tecnologias Web e Ambientes Móveis.
- Título da qualificação
-
Técnico Programador Informático
Escola Profissional Cristóvão Colombo, Funchal, Portugal09/2020–13/07/2023
- Título da qualificação
Credencial concedida - Diploma de Ensino Secundário e Nível 4 EQF/NQF
- Organização
-
- Endereço
- Avenida do Infante nº6
9000-015 Funchal - Rua dos Aranhas nº 100
9000-044 Funchal - Website
- Área de estudo
- Tecnologias da informação e comunicação
- Nota final
- 176/200
- Tipo de créditos
- horas
- Número de créditos
- 3281
Assunto principal / Competências profissionais abrangidas
- Tecnologias da Informação e Comunicação (TIC):
- Fundamentos da Web: HTML, CSS, Bootstrap;
- Pacote Office (com foco no Microsoft Excel);
- Edição de imagens e design de interfaces com Photoshop;
- Arquitetura de Computadores:
- Protocolos da Internet (DNS, pilha TCP/IP, HTTP, FTP, SMTP, DHCP, SSH);
- Topologias de rede e componentes de hardware;
- Operações lógicas (ALU: AND, OR, XOR, etc.);
- Arquiteturas Von Neumann e Harvard;
- Sistemas operacionais:
- Administração do GNU/Linux e Windows Server 2019;
- Configuração de servidores locais e gestão de utilizadores;
- Scripts Shell e utilitários CLI;
- Modelo OSI, modos de transmissão (simplex, half-duplex, full-duplex);
- Introdução à programação em C;
- Bases de dados e desenvolvimento backend:
- SQL e MySQL: design de esquemas, normalização, propriedades ACID, transações;
- Diagramas ER e modelagem de bases de dados;
- PHP (funcional, OOP e MVC com CodeIgniter 3);
- Integração web e geração de conteúdo dinâmico;
- Introdução à programação:
- Lógica algorítmica e pseudocódigo;
- Programação Pascal, Java e JavaScript;
- APIs de navegador, manipulação DOM, jQuery;
- Diagramas UML;
- Programação avançada
- Node.js: módulos
httpenet, sockets, APIs REST; - Integração de APIs web (OpenWeatherMap, Google OAuth);
- Desenvolvimento móvel: Android (Java), SQLite, JSON, processamento em segundo plano;
- React.
- Node.js: módulos
Senti que adquiri uma base tão sólida em desenvolvimento de software, redes, administração de sistemas e design de bases de dados que poderia projetar, implementar e documentar qualquer tipo de projeto de software e aprender o que não aprendi sozinho, o que foi comprovado pelo meu projeto final.
Experiência com aplicações desktop e web, arquiteturas cliente-servidor e sistemas móveis.
Prova de Aptidão Profissional (Projeto Final)
- Nome
- Bloqs Sites — Marketplace
- Website
Um modelo base para um mercado (comércio eletrónico). Um modelo base modular e de código aberto para mercado, concebido tanto como prova de conceito quanto como modelo base para sistemas de comércio eletrónico descentralizados e personalizáveis.
Originalmente concebido como um simples site de mercado, o projeto evoluiu para uma coleção de microsserviços interoperáveis conectados por meio de REST (com a ideia de um futuro GraphQL) API. Cada serviço foi desenvolvido para operar de forma independente — incluindo autenticação, armazenamento de dados e armazenamento e otimização de imagens com ImageMagick — permitindo escalabilidade, facilidade de manutenção e liberdade de implementação.
Isso também permitiu a existência de várias interfaces de utilizador.
Um sistema de autorização e autenticação usando JWT.
Espero um dia, no futuro, voltar a este projeto.
Principais recursos e tecnologias:
- API RESTful para integração flexível com o cliente;
- Arquitetura modular de microsserviços (autenticação, mídia, API principal, cliente UI);
- Configuração baseada em JSON para personalização de instâncias;
- Autenticação e autorização com JSON Web Tokens (JWT);
- Arquitetura aberta e auto-hospedável que promove a descentralização;
- Construído com software livre e de código aberto (abordagem FOSS-first);
- Foco em acessibilidade (a11y), SEO e conformidade com padrões;
- Experimentação com gRPC para comunicação de serviços;
- Cliente browser-first projetado para extensibilidade e futura integração AR/VR.
Objetivos e visão:
O projeto teve como objetivo demonstrar autonomia, maturidade técnica e consciência ética no design de software, aplicando as competências profissionais adquiridas durante o curso e estágios a um sistema do mundo real.
- Promover a liberdade de software e evitar a dependência de fornecedores;
- Permitir a propriedade do utilizador por meio da descentralização e personalização;
- Explorar a integração de tecnologias voltadas para o futuro (Blockchain, IA, web imersiva);
- Projetar um sistema capaz de evoluir para uma rede federada de mercados independentes.
Resultados de aprendizagem pessoais
- Compreensão avançada do design de API e orquestração de microsserviços;
- Experiência prática em engenharia de backend, conceitos de DevOps e segurança (autenticação baseada em token, CORS, validação de pedidos);
- Título da qualificação
Competências linguísticas
- Língua Materna
- Português
- Outra Línguas
-
Proficiência linguística. Língua Compreensão Expressão oral Expressão escrita Compreensão oral Leitura Interação oral Produção oral English C2 C2 B2 C2 C2 Français B1 B2 A2 A1 A2 Türkçe A2 A2 A2 A1 A1 Italiano A2 B1 A2 A1 A1 - Línguas Gestuais
- N/A
Competências
Linguagens de programação
Basicamente, sinto-me à vontade com qualquer linguagem. Sou programador e não dependo de uma linguagem específica.
Também sabe escrever SQL. Trabalhou um pouco com Cypher para Neo4j e SPARQL.
Experiência com gRPC, também vale a pena mencionar.
Linguagens de marcação
Confortável com: HTML 5 (qualquer XML) e CSS; LaTeX; GNU roff; Markdown; AsciiDoc. PlantUML.
Fluxo de trabalho
- Linux, mas confortável com qualquer FLOSS semelhante ao UNIX, como OpenBSD;
- (neo)vim;
- SSH;
tmuxou um gestor de janelas em mosaico;- Git;
rsync;- Shell POSIX.
Competências sociais
- Coordenação de equipas;
- Autonomia;
- Comunicação técnica;
- Melhoria contínua, transformação e aprendizagem;
- Capacidade analítica profunda;
- Pensamento estratégico;
- Gosta de compreender sistemas complexos;
- Avaliação crítica de processos;
Atividades sociais e políticas
Embora não seja realmente ativo (pelo menos ainda), quero no futuro:
- Envolver-me mais nas iniciativas da comunidade FLOSS (online e IRL);
- Produzir conteúdo educativo sobre privacidade, FLOSS;
- FLOSS não é suficiente, precisamos que o hardware e a infraestrutura também sejam libres. Quero expandir isso;
- Defender o acesso equitativo ao conhecimento, a autodeterminação digital e formas cooperativas de produção tecnológica;
- Estou interessado em redes comunitárias, infraestrutura auto-hospedada e modelos de educação coletiva;
Projetos
Pode explorar os meus perfis no GitHub e tudo mais, mas aqui estão alguns destaques.
Minerals House
Um projeto escolar. Um jogo feito para você aprender quais minerais são usados nos seus equipamentos do dia a dia. O jogo foi criado para ensinar sobre os minerais que são usados em nossos equipamentos do dia a dia.
SeUnem
Um projeto escolar. Por enquanto, é apenas uma espécie de plataforma democrática de gestão de eventos que será uma forma de eu estudar como a tecnologia deveria ajudar na participação democrática.
Splikan
Splikan é uma plataforma que ajuda os alunos de duas maneiras:
- Se quiser dar aulas particulares por qualquer motivo, pode facilmente partilhar a sua disponibilidade com toda a comunidade escolar;
- Se quiser aulas particulares, haverá uma lista de outros alunos da sua comunidade escolar que, como alunos, sabem o que está a passar e podem ser capazes de ajudá-lo de uma forma que os professores não conseguem.
Ainda está em desenvolvimento. A ideia está bem definida, só preciso terminar a implementação.
Bloqs
O meu projeto final sobre Cristóvão Colombo.
Ele consiste em vários módulos e partes, então há muito para ver.
Por exemplo, há esta biblioteca que criei, que fornece uma interface para o serviço web LibreTranslate, que usei para as traduções do frontend.
langid
Um projeto que criei para apoiar um trabalho que tinha de fazer.
Aprender os conceitos básicos de Machine Learning e explorar como poderíamos identificar em que idioma uma frase foi escrita.
O curso era apenas teórico, eu fiz a prática.
https://github.com/Marado-Programmer/langid
https://github.com/Marado-Programmer/langid/blob/master/paper/paper.pdf
JustStudents & BetterOghma
Scripts de utilizador para melhorar a plataforma web das nossas escolas. Pode utilizá-lo com o Violentmonkey, por exemplo.
Bouncing-Object
Onde tentei aplicar a física que estava a aprender na escola a uma visualização de uma bola a ser lançada verticalmente para o céu.
Seria o meu primeiro projeto.
Mais informações no arquivo README.
Publications
- Costa Branco Marado Torres, J. A. (2025). langid. Zenodo. https://doi.org/10.5281/zenodo.17502601