Interresante tua pergunta. Vou favoritar essa discussão.
Mas vou tentar ajudar desde já.
Eu acho que eu começaria fazendo um projeto de escopo bem limitado e de algo muito específico, sabe? Pensa comigo, fazer algo pequeno mas com um certo grau de dificuldade já prova que você faz o basico, como os famosos (e chatos) CRUDs.
Eu por exemplo fiz meu portifólio em um repositório com um readme muito bem elaborado, o projeto, em node.js usando typescript, é um chat simples, mas que explora socket.io, mongodb (usei o driver), typescript. Tinha funcionalidades como listar as conversas, mandar msg pra uma conversa, bem como editar os teus dados como usuario (nome só kkkk). Eu fiz o chat em um arquivo html só bem básico pra mostrar o funcionamento mesmo.
Essa é a ideia, escopo limitado, KISS, keep it simple stupid, mas com um certo nível de complexidade!