Executando verificação de segurança...
7

[Dúvida] Experiência com Microservices é Essencial para um Backend Pleno/Sênior com Base no Que o Mercado Exige?

Ultimamente, tenho participado de processos seletivos e entrevistas técnicas para vagas de desenvolvedor backend pleno/sênior, com o objetivo de analisar o mercado, identificar as tecnologias mais utilizadas e entender quais conceitos estão sendo mais requisitados. Durante essa observação, percebi um fato: não encontrei sequer uma vaga ou processo seletivo que não exigisse experiência e conhecimento em microservices.

Isso me leva a uma reflexão: será que experiência com microservices realmente se tornou o mínimo necessário para um desenvolvedor backend pleno/sênior nos dias de hoje?

Carregando publicação patrocinada...
4

Não, até porque quase ninguém precisa disto. Muita gente acha que precisa só porque não quer se sentir excluído aí cria algo complexo sem necessidade.

E é verdade que em alguns casos não fica tão complexo assim, a pessoa é tão sem noção que ela fala que faz microsserviços, mas não faz, ela sequer sabe o que é.

Para aprender microsserviços de verade, na prática você não consegue. Cada vez mais eu vejo a pessoa falando que sabe e ela fez tudo sozinha, então ela não aprendeu a fazer, ela só decorou umas coisas que leu em algum livro ou outro local e reproduziu algo muito simples que indicaram. Isso não está nem perto de fazer microsserviços. E é o mesmo que dizer que você aprendeu construir um carro, você só saberá em equipe ou de um jeito tão artesanal que não tem valor algum.

Você já ouviu a expressão "vagas arrombadas"? Então, é o que está achando, estão pedindo por via das dúvidas, ou para fazer as pessoas mais fracas desistir ou ainda querem mesmo mexer com isso mesmo sem a menor noção do rolo que estão se metendo, portanto é um lugar ruim de se trabalhar.

De qualquer forma eu vejo tantas vagas que não pede isso, sei lá o que acontece.

Inclusive os lugares que realmente precisam (e olhe lá) que eu conheço tem uma equipe que precisa saber mesmo, poucas pessoas que cuidam disso, o resto, uns 98% da equipe faz sua parte sem precisar saber nada disso mesmo rodando tudo em microsserviços, ou seja, pelo menos é quem sabe o que está fazendo. Basta saber fazer direito, modularizado, usando técnicas adequadas para qualquer software complexo e depois aprender alguns mecanismos específicos do ambiente, que você só terá experiência lá dentro.

Se você quiser entrar nessas vagas, aí faz o que elas acham que é o certo, e torce para encaixar. Eu gastaria meu tempo com vagas melhores, mas só você sabe o que é bom para você.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).

1

Sobre o pessoal não saber usar ou não usar corretamente, isso é algo comum, mesmo com outras arquiteturas, design patterns, ferramentas e linguagens. Sempre aconteceu na nossa área. A questão é que algo pode se tornar um conhecimento exigido pelo mercado, mesmo que não faça sentido algum. Se esse for realmente o caso, cabe a nós apenas conhecer e estudar para estar preparados.

Estou acompanhando vagas para backend sênior, e um amigo meu está olhando para backend pleno no LinkedIn e GeekHunter. Por enquanto, foi o que apareceu. Ainda não fiz uma análise de dados mais profunda, mas escrevi um script em Python para coletar centenas de vagas e filtrar as palavras que mais aparecem. Algumas que surgiram com frequência foram Kubernetes e microservices. Nos processos seletivos que eu e ele fizemos, o conhecimento nesses temas foi praticamente obrigatório, incluindo experiência prática. No entanto, minha amostragem ainda é limitada e pode ser enviesada. Talvez valha a pena analisar melhor.

0

Não existe conhecer microsserviços sem prática forte, e a prática você só obtém fazendo em uma equipe grande, então essas vagas, se fizerem certo, só serão preenchidas por quem está trabalhando com isso e quer trocar de emprego.

2

Faz sentido. Microsserviços sem prática real são difíceis, ainda mais porque exigem experiência em ambientes grandes. Essas vagas acabam sendo mais para quem já trabalha com isso e quer trocar de empresa. Mas conhecer os conceitos ajuda a entrar nesse mundo mais facilmente e a responder perguntas teóricas na entrevista de emprego, o que pode aumentar as chances de ser selecionado.

2

Me aplicando recentemente para vagas pleno/sênior, percebi, na prática, que exigem mais o conhecimento sobre o que são e como funcionam do que a aplicação no dia-a-dia.
Eu sempre digo que só tive uma experiência com microsserviços, e ainda assim só por fora, como líder técnico, do que pondo a mão na massa.
Então diria que o conhecimento do conceito é sim importante, inclusive pra dizer quando não aplicar, mas o conhecimento prático não é obrigatório.

2

Realmente concordo com você, até porque, nas entrevistas que fiz, não houve testes práticos de desenvolvimento de projetos, e sim uma lista de perguntas conceituais e teóricas. A prática, então, mesmo que seja um diferencial, não foi de fato obrigatória.
Inclusive um livro que me ajuda bastante é o "Building Microservices: Designing Fine-Grained Systems"

2

Experiência? Não, saber o que é e em quais situações é adequado usar com certeza. Pleno/sênior não precisa só saber apertar parafuso, mas saber qual tipo é mais adequado para cada situação. Eu creio que padrões arquiteturais são sim conhecimentos essenciais para quem quer deixar de ser júnior

1

Faz sentido mesmo, é difícil cobrar experiência, já que nem toda empresa usa isso, e a pessoa pode ser um profissional super capacitado, mas nunca ter trabalhado com essa arquitetura. No entanto, conhecer é outra coisa – ter um leque de ferramentas e arquiteturas disponíveis para aplicar no melhor cenário possível, faz parte de ser um senior mesmo.

1

Meus 2 cents:

Meu palpite ? Sim.

Indo contra a mare dos comentarios que vi, acho que sim, no conhecimento de microservicos como diferencial para o desenvolvimento de sistemas modernos. Nao minimo (ainda) - mas um diferencial importante.

Em sistemas compilados (p.ex. Delphi, .NET) - era comum incorporarmos bibliotecas de terceiros para trazer certas funcionalidades, nem se questionava muito isso - era so uma questao de: eh util ? preciso disso ? quanto custa ? incorpore e use.

Microservicos estao se tornando cada vez mais as bibliotecas de ontem - os frameworks e boilerplates trazem a pre-estrutura basica e vamos preenchendo com microservicos que realizam algumas das tarefas que sao necessarias - claro que outras terao de ser desenvolvidas.

Mas preparar os sistemas modernos para usar chamadas (webhooks/API) de terceiros e/ou disponibilizar webhooks/API para terceiros eh algo absolutamente comum - alias, tao comum que quando um sistema nao disponibiliza alguma forma de integracao eh que eh "esquisito".

"Ah, mas microservicos nao sao apenas webhooks/API" - claro, mas sao parte importante deste ecosistema, entao faz parte do processo (p.ex. entender como o processo de integracao eh realizado, autenticacoes, sessoes, etc) entender como eles funcionam.

So para finalizar: estou falando de microservicos nao SaaS - que sao coisas diferentes.

1

Valeu pelo comentário! Concordo que microserviços já são um diferencial e caminham para se tornar padrão, assim como antes incorporávamos bibliotecas sem pensar duas vezes. Integrações via APIs e webhooks já são esperadas, e quem desenvolve sistemas modernos precisa entender bem esse ecossistema. Não é obrigatório ainda, mas saber como funcionam já faz diferença.

1

As vagas por aí são copia e cola e muito recrutador nem sabe direito o que está pedindo, principalmente se for de RH. Micro serviço é algo muito específico e só mesmo se a empresa usar isso no seu dia a dia o que é muito raro.

1
1

Bom, vou trazer minha visão de recrutador técnico.

A resposta curta é não. Não vejo isso como o mínimo necessário.

Eu julgo mais a capacidade da pessoa em saber resolver problemas. Inclusive, uma das perguntas que eu faço é: qual foi o problema mais difícil que você já resolveu? E como que você resolveu?

A questão é que micro serviços é uma forma de resolver problemas (que muitas vezes nem precisava). A questão é que, de alguma forma, surgiu um hype tão grande em volta disso, que todo mundo acha que deve usar.

Outra coisa que tem que ficar claro, é o seguinte: boa parte dos anúncios de vaga não são feitos por pessoal técnico, mas sim pelo próprio pessoal do RH.

Claro que o pessoal de RH vai perguntar:

  1. Quais são os requisitos da vaga?
  2. Existe algum diferencial que podemos colocar?
  3. Qual a stack que precisa ser divulgada na vaga?

Porém, veja bem, quem monta a vaga, na grande maioria das vezes, é o pessoal de RH.

Agora, se mesmo nas entrevistas técnicas estão solicitando micro serviço, acredito fortemente que se enquadra no que comentei acima: virou moda, e as pessoas acham que precisam.

Mas que fique claro, edta é apenas a minha opinião.

1

Eu também não veria isso como o mínimo necessário e nem acho que o pessoal mais técnico deveria ver assim, a menos que a empresa viva e respire isso todos os dias e queira alguém que já chegue produzindo e contribuindo. No final, nossa capacidade está em saber aprender. Se eu não conheço um pattern ou uma arquitetura, consigo estudar, me preparar e colocar em prática, mesmo que nunca tenha ouvido falar antes. Mas, sim, eles acabam seguindo um checklist, e o "Sim" ou "Não" conta muito nesse pente fino. No fim do dia, o que importa é resolver problemas e saber se virar. Ótima reflexão de um recrutador técnico! Muito obrigado!