Tenha domínio em algoritmos mais avançados que incluam grafos, programação dinâmica e estruturas de dados. As mais importantes empresas de softwares utilizam problemas com esses conteúdos em suas entrevistas. Leitura recomendada.
Tenha domínio em Python, C++, Java e JavaScript. Estas linguagens cobrem pelo menos 90% de todas as linguagens de programação exigidas em processos de seleção. Se não tem domínio em todas as 4, foque principalmente em Python e C++.
Saiba programar e compreender códigos que usam programação paralela, principalmente códigos usados em GPU e em sistemas de tempo real. Com o advento da inteligência artificial, e o uso da computação distribuída, muitas empresas estão utilizando técnicas de programação paralela para tornar mais eficiente suas aplicações.
Tenha domínio teórico em engenharia de software, principalmente relacionado a processos de desenvolvimento, análise de sistemas e teste de software.
Saiba se comunicar em inglês, principalmente se você pretende trabalhar home office. A língua inglesa pedida em processos de seleção é referente à língua falada. Não adianta você saber ler, escrever, e até entender bem o inglês se não souber se comunicar na língua inglesa.
Seja autodidata. Se vocẽ é do tipo de profissional que precisa fazer minicursos para compreender um novo framework de javascript, por exemplo, você sempre ficará atrás na fila.
Desenvolva projetos pessoais. Em muitas entrevistas, os recrutadores querem saber o que você desenvolveu fora do ambiente de trabalho. Isso demonstra criatividade, proatividade e autonomia.
Desenvolva suas habilidades interpessoais. Não adianta dominar todos os pontos acima, se você é uma pessoa de dificil comunicação, que tem dificuldade em seguir regras e respeitar a hierarquia da empresa.