40 pontos por spilist2 2022-12-30 | 3 comentários | Compartilhar no WhatsApp

A história do desenvolvimento frontend é curta, e muitas organizações querem bons engenheiros seniores de frontend, mas têm dificuldade para encontrá-los; por isso, muitos CTOs de startups pequenas e médias acabam tendo preocupações parecidas.

  • O nível técnico exigido de frontend não é tão alto, então há pouca motivação para o engenheiro evoluir suas competências
  • Há poucos modelos de referência por perto de pessoas vindas de frontend que construíram uma boa carreira, o que dificulta planejar a própria trajetória
  • Na ausência de engenheiros seniores de frontend dentro da organização, espera-se mais liderança dos profissionais de nível pleno

Este texto foi escrito para engenheiros de frontend que têm essas dúvidas, e para team leads e CTOs que pensam em como guiá-los. Espero que sirva como um guia útil sobre em que direção um engenheiro de frontend pode especializar sua expertise e como construir uma carreira como sênior.

1. Tornar-se um engenheiro excepcional

A frase “quero me tornar um excelente engenheiro sênior de frontend” pode ser interpretada sob três aspectos.

  • Quero me tornar um engenheiro excepcional (sênior de frontend).
  • Quero me tornar um engenheiro de frontend excepcional (sênior).
  • Quero me tornar um engenheiro sênior excepcional (de frontend).

Segundo o artigo What Makes a Great Software Engineer?, um engenheiro excepcional escreve bom código, maximiza o valor atual do trabalho, toma decisões com base em dados, ajuda colegas a tomarem decisões eficazes e aprende continuamente. Se você se esforçar para desenvolver essas cinco competências, se tornará um bom engenheiro.

Além disso, com o fortalecimento gradual da inteligência artificial, habilidades de comunicação e escrita se tornaram muito mais importantes. Em vez de ter seu trabalho de desenvolvimento substituído pela IA, é melhor usá-la como assistente para trabalhar de forma eficaz; para isso, vale estudar escrita em inglês e técnicas de entrevista sob a perspectiva de Prompt Engineering.

2. Tornar-se um excelente engenheiro de frontend

Além dessa base, pensei em três trilhas nas quais um engenheiro júnior de frontend pode desenvolver sua especialização. Como cada trilha é complementar às outras, quem já tem bastante especialização em uma delas terá muito mais facilidade para desenvolver competência nas demais e, naturalmente, as carreiras possíveis em cada trilha como sênior também se sobrepõem em parte.
(A “trilha de operações” inclui tanto aspectos de DevOps quanto aspectos de processo/operação organizacional, mas não é obrigatório levar essas duas competências juntas para construir uma boa carreira. Também pensei em criar uma trilha separada de “especialização em processos”, mas ainda me faltam competências para tornar uma quarta trilha realmente significativa, então por enquanto juntei tudo em uma só.)

Trilha especializada em web (Software Engineer)

  • Principais características
    • Entende e utiliza com profundidade internet, navegador, HTML/CSS/JS
    • Conhece vantagens e desvantagens das ferramentas que compõem o ecossistema web e tem experiência em troubleshooting em vários ambientes
    • É sensível às novas tecnologias que surgem na web e tenta aplicá-las na prática
  • Vantagens e desvantagens
    • Até certo nível, é fácil evoluir sozinho
    • Em organizações cujo produto ainda não tem complexidade/maturidade suficientemente alta, há poucas oportunidades de mostrar essa especialização e ser reconhecido por ela
  • Como evoluir as competências
    • Estudar livros e conteúdos da internet seguindo as palavras-chave do roadmap e usar isso em projetos paralelos
    • Assinar newsletters, contribuir com open source, testar novas tecnologias, entender o funcionamento e os limites das ferramentas que usa e, às vezes, criar suas próprias ferramentas
    • Fazer troubleshooting em diversos ambientes e melhorar desempenho
  • Possíveis carreiras depois, como sênior
    • Instrutor de cursos para elevar competências em web
    • Engenheiro de software (em organizações que criam ferramentas do ecossistema web)
    • Engenheiro de software (em organizações que lidam com produtos de alta complexidade)
    • Tech lead de frontend

Trilha especializada em produto (Product Engineer)

  • Principais características
    • Consegue gerar resultados iniciais de produto combinando várias ferramentas mesmo com pouca codificação
    • Tem alto entendimento de mercado e cliente, e sabe aplicar no trabalho diferentes métodos para aprofundar esse entendimento
    • Comunica-se com frequência para ajudar as áreas de marketing e vendas a entenderem o produto
  • Vantagens e desvantagens
    • É muito bem recebido por startups em estágio inicial que buscam validar o produto no mercado
    • Se ficar apenas em um espaço seguro, pode acabar sendo deixado para trás pela própria organização de produto que ajudou a construir
  • Como evoluir as competências
    • Usar de forma analítica ótimos produtos do seu domínio, observar clientes e desenvolver product sense
    • Não se apegar à combinação de ferramentas com a qual já está acostumado e continuar renovando sua caixa de ferramentas
    • Resistir junto ao produto inicial que você liderou quando ele der resultado e chegar o momento de refazer a estrutura e o código, trocando as rodas com o carro em movimento
  • Possíveis carreiras depois, como sênior
    • Engenheiro de software (em qualquer organização buscando PMF)
    • Growth engineer, consultor de growth
    • Tech lead de frontend, technical program manager
    • PM, PO, CPO

Trilha especializada em operações (Full-Stack Engineer)

  • Principais características
    • Tem grande interesse por estrutura de projeto, integração, testes e deploy
    • Sabe criar APIs simples por conta própria e montar a infraestrutura necessária
    • Percebe lacunas e ineficiências que surgem com o crescimento da organização, resolve na prática e melhora processos
  • Vantagens e desvantagens
    • Há oportunidades de reconhecimento ao cobrir uma ampla faixa de trabalho e colaborar com muitas pessoas
    • Se não houver esforço consciente, as competências técnicas podem ficar para trás e a pessoa pode entrar em burnout fazendo apenas trabalho repetitivo
  • Como evoluir as competências
    • Ampliar o escopo implementando APIs administrativas de backend e montando infraestrutura de frontend
    • Atuar em resposta a tráfego em grande escala e incidentes em organizações com crescimento explosivo
    • Investigar processos operacionais e diretrizes de grandes empresas, ou ouvir mentorias/palestras e adaptá-las à sua organização
  • Possíveis carreiras depois, como sênior
    • Engenheiro de software (em grandes organizações com produtos diversos)
    • Tech lead de frontend, technical program manager
    • Engineering manager, agile coach, VP of Engineering
    • CTO

3. Tornar-se um excelente engenheiro sênior

Então, como alguém que construiu especialização como acima pode se tornar um excelente engenheiro sênior? Com base em como eu próprio assumi um papel de sênior e em que tipo de pessoas eram os ótimos engenheiros seniores que encontrei, destaco três pontos para se tornar um excelente engenheiro sênior.

  • Esforça-se para ser fiel ao básico: as cinco competências de um engenheiro excepcional, naturalmente, se aplicam da mesma forma também aos engenheiros seniores.
  • Age como líder mesmo sem ser um líder formal: liderança pode ser demonstrada plenamente mesmo sem um cargo formal e, às vezes, uma ação exemplar de um colega pode ter mais impacto do que inúmeras palavras de um líder formal. Se você se empenhar para gerar impacto positivo no produto, no time e na organização como um todo, independentemente do papel que recebeu, em algum momento será reconhecido como sênior.
  • Gera grande impacto em qualquer situação: mesmo em ações pequenas, como debug, um sênior exerce um impacto muito maior do que um júnior. Quem não se contenta apenas em concluir bem a tarefa recebida, mas observa o contexto antes e depois, se comunica com várias pessoas e cria grande impacto, crescerá como um sênior em quem se pode confiar com tranquilidade para assumir uma parte do produto, do time ou da empresa.

3 comentários

 
devsepnine 2023-01-03

Sou um desenvolvedor júnior com 3 anos completos de experiência, e realmente acho que, dependendo do nível de dificuldade do trabalho e do ambiente da empresa, não é tão fácil experimentar certas coisas no dia a dia... Estou tentando construir isso com projetos paralelos, mas não é fácil manter a disciplina... rs

 
hohpark 2023-01-02

É um texto muito bom. Acabei entrando no front-end web meio por acaso, e já se passaram bem mais de 10 anos desde então. Além das minhas próprias preocupações com a carreira, sempre foi muito difícil orientar profissionais júnior sobre carreira. Acho que vai dar para usar muito bem isso como guia em forma de roadmap de carreira.

 
spilist2 2023-01-02

Escrevi pensando tanto nos juniores quanto nos seniores, então fico feliz que tenha parecido útil. Obrigado pelo comentário!