Algumas dicas a terem em relação ao vosso CV e ao vosso posicionamento em TI.

Olá a todos.

Tenho visto muitos posts no reddit de recém-licenciados curiosos sobre qual o melhor percurso para fazer carreira em IT, qual a melhor forma de conseguir uma contratação, etc e decidi fazer este post com os meus pensamentos sobre o assunto.

Pessoalmente trabalho nesta area desde 1993 e já trabalhei  em empresas grandes e startups menores, em Portugal, Europa, Asia e USA.
Devido a minha progressão natural de carreira, está incluído no descritivo das minhas funções o processo de analisar e avaliar pessoal de IT, especialmente em campos de infraestrutura e opensource.
Ainda hoje sou surpreendido com os erros básicos que vejo em pessoal dito senior e não sénior cometer e a incapacidade muito grande de alguns evoluírem mesmo depois de contratados.
Assim sendo, irei dar algumas opiniões pessoais (!)  baseadas nas minhas experiências profissionais que talvez vos possam vir a ser úteis. Algumas irão ser controversas, mas é a minha experiência até hoje.

250+ Cartoon Of The Dead Cow Stock Illustrations, Royalty-Free Vector Graphics & Clip Art - iStock

1 – A verdade que toda a gente que está à procura de um trabalho novo decide ignorar e fazer de conta que esta realidade não está lá: o mercado em 2024 está completamente diferente.

Há 2 anos atrás, quando uma vaga era aberta que envolvia um componente de development apareciam 15 elementos. Com muita sorte, apareciam  25. Abria uma de infraestrutura (por exemplo administração Linux) e apareciam 5/6/7.
Em 2024 vi abrirem 2 processos para developer e cada um recebeu em média 400 candidatos (entre portugueses, brasileiros e outras nacionalidades). Vi igualmente 3 ou 4 processos a abrirem para Linux e infraestrutura e apareceram 3 – em cada – que se podiam considerar válidos para o nível pretendido pelo Cliente.
A concorrência aumentou drasticamente para development devido a grandes layoffs, a migração em massa de carreiras para desenvolvimento, e outras mudanças no contexto económico global.
OU seja, na minha parca opinião, quem decidiu atirar se borda fora para ser developer agora está a lutar pelo seu lugar ao sol enquanto outros campos – igualmente desafiantes – estão com falta crónica de pessoal.

2 – Falta de Inglês básico -> direto para /dev/null

Fala-se bastante hoje em dia que inglês é fundamental para trabalhar num palco global. Engano GRAVE. Qualquer empresa, seja nacional, seja internacional, precisa de inglês num nível intermediário no MÍNIMO  para conseguir lidar com os desafios que trabalhar em IT nos traz. A menos que trabalhem com um sistema estático que nunca tenha bugs (digam-me onde e qual é essa arquitetura que estou seriamente interessado), vocês terão de procurar soluções, ler documentação, e saber perguntar.
Sim, o ChatGPT/Bard/Copilot ajuda o nosso trabalho em muito,  mas o Stack Overflow, Github issues, e outros continuam a ser onde todos estes AI’s vão beber informação. E por vezes não a bebem bem.
Ainda sobre a proficiência da lingua inglesa, existe também a regra do arredondamento para baixo. Na visão de quem contrata, sempre existe a possibilidade de verem o vosso currículo assim: Inglês básico = não sabe nada de inglês. Intermediário = básico. Avançado = intermediário. Fluente = avançado.

3 – Se somos seniores especializado em tecnologia X, e a oportunidade pede tecnologia Y, então tu não és um senior em Y.

Já vi muitos syadmins a pensarem que a sua superioridade numa tecnologia automaticamente se traduz em superioridade de outra. Já vi mega-seniors pedindo sessões de acompanhamento partilhadas em teams com juniores por não saber usar ou fazer algo algo. Atenção: Nada contra, EU FAÇO ISTO QUANDO NÃO SEI.  Apenas não afirmo que sou senior se estou a precisar de um apoio assim tão evidente naquela tecnologia.

Na minha visão, a ideia que ser sysadmin universal é um mito: Tecnologias não são apenas POSIX e Windows, .NET ou Javascript, mas são acompanhadas de todo um ecossistema, interfaces, e outras características únicas.
Como sysadmin, eu acho muito mais interessante aplicar-me para conseguir vagas específicas para a minha “stack” do que disparar para todos os lados.
Notem que falei em “aplicar-me”. Traduz-se em  fazer o trabalho de casa, estudar, praticar, ganhar experiência não apenas em conta kms de relógio de função mas em termos de praticabilidade e conhecimento do que se está a fazer.

4 – Tecnologias future-proof são as open source, sempre.

Quando eu comecei, aplicações ricas em features eram as proprietárias. Monitorização? HP Operations. Backups? Netbackup/Dataguard, Virtualização? Vmware!! etc,etc,etc
Muitos profissionais especializaram-se em hpux, Solaris, OVO e tantos outros sabores mais de tecnológica. Aos poucos a comunidade foi melhorando conceitos como kvm/libvirt/bareos/nagios/zabbix/etc e agora é possível ver onde está o grosso das oportunidades de trabalho.
Eu, embora tenha começado em hpux, decidi-me especializar em Linux desde muito cedo e hoje é a minha go-to stack na qual trabalho diariamente. Ao escolher uma tecnologia, optem sempre pelo caminho que tem uma comunidade forte open-source por detrás dela. Não cometam o erro de se colocarem em nichos que tem o risco muito real de acabarem (vejam o que aconteceu com a compra da vmware pela broadcom).
Eu estava lá quando o windows passou a ser mais de uma GUI (3.0 –> 95). Provavelmente estarei também cá quando o windows se juntar ao hall de coisas do passado. No entanto duvido que alguma vez irei ver o fim dos sistemas POSIX/Unix/Linux based.

5 – AI pode ser bom ou mau.

Tecnologias AI/LLM são ótimos guias para fazer coisas que já saibamos ou tenhamos uma noção boa de como se efetua, mas usar um LLM sem senso crítico gera problemas bizarros e soluções horríveis.
Basta para isso termos em conta por exemplo, do GPT ao “alucinar” gerar soluções absurdas. Um junior a debitar comandos – que tenha lido no chatgpt/bard/etc – num sistema, é como se tivesse na mão uma arma e não sabia o que fazer com ela.
Em muitos casos (talvez na maioria), ler documentação é mais valioso profissonalmente que usar LLM’s.

6 – Conhecimentos BASE em Sistemas Operativos, git, networking, etc, são essenciais.

Este é um problema generalizado que encontro regularmente na altura de efetuar entrevistas técnicas: O colega está a ter um processo que se pode considerar bom, até chegar a parte da entrevista técnica: “Como podemos fazer para enviar um email para o utilizador batatinhas todos os dias úteis as 4 da tarde?”.
A minha expectativa é que um júnior consiga responder a esta pergunta com tranquilidade, mas acreditem que já vi candidatos seniores a responder –  “Ah, deixa-se um script a correr em screen, e em loop durante 24 horas por dia que dispara quando tiver no horário.” – Bem, errado não tá, mas está a tentar resolver com código algo que pode facilmente ser resolvido com o sistema operativo.
Outro exemplo que eu me deparo regularmente é com o desconhecimento completo do stack de rede do sistema operativo. Por exemplo com a pergunta: “Como faria para o seu servidor que tem a default gw 172.16.5.254, comunicar com a rede 172.16.4.0/24 que está por detrás do IP 172.16.5.253? Uma grande parte dos candidatos infelizmente irá dizer, regras de firewall ao invés de dizer adicionar uma rota, e a sintaxe para tal (se quiser pontuação máxima na pergunta).”
O simples fato do candidato desconhecer o funcionamento do cron, ou colocar rotas num sistema que são coisas básicos em Linux, custar-lhe-á esta oportunidade.

Resumo: Programar não é só bater código, ser sysadmin não é so start/stop de serviços e instalar pacotes. Se estão constantemente a interagir com diversos componentes do servidor, no browser, nos filesystems, memória, rede, etc, não conhecer isso vos deixará muito propensos a gastar tempo com soluções péssimas que em ultima analise vos irão tramar.

7 – Lógica de em computação vai muito além de if/else/for/switch. Seja em development, administração ou automação.

É muito habitual que pessoal que vem de bootcamps sejam de programação, sejam de administração não conhecerem ou apenas saberem superficialmente conceitos como funções de OS, estruturas de dados avançadas, algoritmos eficientes, LVM, etc. Mais cedo ou mais tarde irão vai precisar delas. Saibam como funcionam, quando usar, e como as aplicar.

8 – Síndrome do Impostor.

Este é um favorito meu. Todos nós em algum momento na nossa carreira sentimos síndrome do impostor. Alguns, nos quais  eu me incluo, sentimos isto várias vezes na carreira.
É mais fácil aprenderem a lidar com este sentimento respirando fundo e fazendo o básico extremamente bem do que serem mestres em tudo. O aprofundamento vem com o tempo. E irão o conseguir, mas lembrem-se… Roma e Pavia não foram feitas em um dia.

9 – Síndrome do Impostor ao contrário (Efeito Dunning-Kruger).

Efeito Dunning-Kruger em IT é sobrestimar a capacidade de fazer algo simplesmente por desconhecer a complexidade envolvida. Tasks que inicialmente se estimavam demorar uma semana para entrega  transformam-se em meses de chasing tail…
E sobretudo, profissionais IT  “sabem-tudo” com alta autoestima podem ser altamente problemáticos para todo o ecossistema e para a equipa quando lhes falta humildade.

Modéstia e disposição para aprender são fundamentais e essenciais nesta profissão.

10 – Pensem duas vezes. Apliquem uma.

Quando eu era um sysadmin a brincar aos sysadmin’s grandes, eu perguntei a um sysadmin mega team leader senior blablabla porque é que ele não usava um aplicativo xpto, que era melhor para achar bugs e fazer code prediction para diminuir a falha em scripts. Ele respondeu: “Não me faz grande diferença, quando eu estou a preparar algo, eu passo muito mais tempo a pensar do que escrever. Assim não corro o risco de ter buracos por fechar”  – Lembro-me desta resposta como se fosse hoje.

11 – Conceitos de segurança são extremamente importantes.

Nunca vi nem sei de quem tenha deixado de ser contratado por não saber comandos de SELinux, e conceitos de segurança (validações, race conditions, OWASP, etc). Mas já vi sysadmins e dev’s a serem mandados embora por não concordarem o importante que é. Assim como saber inglês, segurança não é um opcional. É o básico fundamental.

E pronto chegamos ao fim de mais um post semanal, desta vez mais sobre um formato de pensamento do que propriamente algo técnico. Esta é a minha experiência, e a minha opinião.
Caso discordem, sabem onde me encontrar, e curtam este feriado.

Abraço!
Nuno