Você precisa contratar um(a) engenheiro(a) de software mas as funções dele(a) em cada nível da hierarquia não estão claras, assim como a faixa salarial adequada para cada um? A GeekHunter está aqui pra te ajudar a esclarecer essas dúvidas, então vamos lá!
Onde trabalha o engenheiro de software?
“Engenheiro de software” se tornou um termo comum para descrever pessoas que escrevem, implantam, arquitetam ou, às vezes, simplesmente testam código, e essa abrangência toda, assim como em muitas áreas, torna o termo pouco específico e pouco claro, sendo difícil entender quem realmente se precisa contratar.
Então aqui eu procuro descomplicar o termo, mas um conselho que sempre vale é alinhar o seu entendimento sobre as especificações desse cargo (ou de qualquer outro) com o responsável técnico por essa contratação na sua empresa, se houver um.
Assim, se o seu engenheiro de software sênior te solicitou a contratação de um júnior ou um pleno, é muito importante saber quais são as expectativas dele em relação a esse futuro novo membro da equipe, ou seja, qual o tipo de programador exatamente sua empresa precisa.
Ou se você tem um engenheiro iniciante e precisa de um profissional com perfil autônomo e experiente, também vale a pena conversar com os juniores para saber que tipo de apoio e orientação vai ajudá-los a fazer um trabalho melhor (essa é uma prática ainda pouquíssimo aplicada no Brasil, mas saber do que a equipe sente falta é um bom caminho para aumentar sua produtividade e evitar uma má contratação).
Quando puder, tire um tempo para ler mais dicas de como ser um(a) recrutador(a) de sucesso.
Um engenheiro de software, então, é aquele que entende de ciência da computação bem o suficiente para fazer um trabalho desafiador e inovador ao projetar e desenvolver softwares.
Uma pessoa que tem como alguma de suas características principais estudar muito, ser muito curiosa e estar sempre se atualizando.
Claro que não é alguém que vai conhecer tudo nem todas as tecnologias, pois isso é impossível (especialmente nesse ramo), mas se seus projetos são muito desafiadores, você definitivamente precisa de alguém que não se acomode.
No sentido técnico, um engenheiro(a) de software aplica a análise matemática e os princípios da ciência da computação para projetar e desenvolver softwares para computadores, celulares, tablets e máquinas em geral.
Existem muitos tipos de software que um engenheiro pode desenvolver. Então, desde que tenha as qualificações adequadas, é alguém que pode trabalhar em quase qualquer setor e com qualquer tipo de organização.
Esses profissionais podem trabalhar como engenheiros front-end e back/end, então também é importante saber qual é a necessidade atual para não escolher a pessoa com a experiência que não te serve.
Dica de leitura: o dicionário indispensável de ti para profissionais de RH
Engenheiro de software júnior, pleno e sênior
A diferença entre os cargos não se resume a ter mais ou menos anos de experiência.
Existem habilidades distintas que o profissional precisa ter desenvolvido além da experiência técnica de ser um bom (ou até um excelente) engenheiro de software, como por exemplo, ótima comunicação.
Resumidamente, o funcionamento da hierarquia ideal é o seguinte: os engenheiros de software sêniores encontram problemas e concentram as equipes nesses problemas.
Plenos precisam pegar esses problemas e encontrar soluções para eles. Em seguida, esses engenheiros de nível médio devem explicar a solução encontrada para os engenheiros juniores que vão trabalhar na codificação de uma parte dessa solução.
Júnior
Habilidades:
- Proficiência em uma ou duas linguagens de programação e ter alguma noção sobre outras;
- Compreender a base de código e dar conta da solicitação atribuída para melhorá-la, como migrá-la para um framework modernos e incluir testes que estejam faltando;
- Projetar um código bem organizado;
- Ser capaz de completar funcionalidades de médio a grande porte.
Essa posição costuma ser o primeiro trabalho de engenharia de software que alguém desempenha em tempo integral. Não se espera que os engenheiros nesse nível tenham muita autonomia (ou visão de dono) sobre o produto da empresa.
Em vez disso, eles trabalham em atribuições dadas a eles por pessoas que decidiram sobre a direção do produto, o que significa que eles vão precisar de algum grau de supervisão sobre o trabalho deles.
Os engenheiros de software júnior precisam ser competentes, mas não especialistas. É importante a empresa saber que haverá um processo de aprendizado e que os júniores vão precisar do apoio e orientação dos plenos e sêniores. Então o que você procura é alguém que aprenda rápido, que seja criativo e que possa trabalhar bem em equipe.
Pleno
Nesse nível, o engenheiro deve se comportar como o dono de um recurso ou sistema, sendo alguém com um conhecimento especializado de ponta a ponta e com habilidades de comunicação e liderança, que o júnior não precisava demonstrar ainda.
Habilidades:
- Proficiência em duas ou mais linguagens de programação e experiência full stack (conseguir lidar com back-end, front-end e bases de dados);
- Ser capaz de projetar, decompor e concluir um projeto de grande, com alto nível de produtividade;
- Encontrar problemas no sistema/produto de forma proativa e oferecer soluções;
- Ser capaz de liderar um projeto com um pequeno grupo de pessoas, incluindo reuniões de alinhamento semanais, e se comunicar bem com outros por escrito;
- Fazer contribuições para melhorar a equipe de engenharia (entrevistas ou mentoria, por exemplo);
- Ser capaz de fornecer feedback para a equipe que seja pontual e factível.
Sênior
O engenheiro de software sênior e o gerente são corresponsáveis pelo sucesso da equipe.
No aspecto técnico, a maior diferença é que um engenheiro sênior é capaz de identificar e resolver um problema técnico que poucos conseguem.
Habilidades:
- Proficiência em nas linguagens mais modernas de programação, ser capaz de se adaptar rapidamente para linguagens novas e ter habilidades de arquitetura de sistemas;
- Ser capaz de implementar a parte mais difícil de um sistema/produto;
- Ser capaz de enviar um trabalho de alta qualidade com as melhores práticas, como testes adequados, implementação bem planejada e monitoramento;
- Ser capaz de liderar o esforço de definir a direção para a equipe, como o roteiro de uma nova temporada;
- Ser capaz de identificar o maior ponto problemático do sistema / produto / org e propor soluções. Uma solução com resultados e marcos claros e que pode levar vários anos para ser implementada;
- Seja um excelente comunicador, tanto na forma oral como escrita;
- Ser capaz de alavancar recursos que não são atribuídos à equipe;
- Ser capaz de recrutar e integrar novos membros na equipe;
- Ser capaz de influenciar a cultura de engenharia da organização, como adotar as melhores/mais recentes práticas de codificação.
Quanto ganha um engenheiro de software em 2021
Os engenheiros de software são profissionais cada vez mais requisitados. Profissionais de tecnologia que trabalham em áreas com demanda muito alta podem chegar a receber muitas propostas de recrutadores por mês, então é importante saber não apenas encontrar o profissional adequado para a sua empresa mas entender que, dependendo do caso, você pode ter que dar mais atenção para um pacote de benefícios que atraia e mantenha esse profissional na sua empresa – além de dar bastante importância ao fit cultural entre vocês (ou o match cultural) pois isso faz cada vez mais diferença na maneira dos trabalhadores definirem onde querem trabalhar.
Em engenharia de Software, o salário (ou faixa salarial) vai depender de alguns fatores, como da qualificação técnica do profissional e da experiência dele naquele cargo (um engenheiro de software pleno geralmente vai ganhar mais em uma vaga para esse mesmo nível que um engenheiro júnior que você julgue estar apto para encarar uma vaga um passo acima).
Falando apenas de salário, um engenheiro de software júnior costuma ganhar entre R$4.500 e R$5.000 no Brasil, um engenheiro de software pleno entre R$6.000 e R$8.000 (mas pode chegar a R$13.000) e um sênior fica na faixa de R$10.000 a R$17.000, mas pode passar de R$30.000.
Como eu disse, existe um espectro de experiência e aptidão do profissional que vai se encontrar com a necessidade do contratante, e é nesse encontro que você deve definir o equilíbrio entre o que sua empresa precisa desse engenheiro e o que vocês oferecem a ele(a).
Espero ter ajudado a esclarecer as suas dúvidas 🙂
Nós da GeekHunter conhecemos os melhores engenheiros de software para serem recrutados, então conheça as vantagens de usar um software de recrutamento, anuncie sua vaga aqui conosco e vamos trabalhar juntos nesse match aí!