A bolha dev muito comenta sobre o mito do sênior de 2 anos, mas vocês já ouviram falar no staff de 4 anos?!
Isso mesmo, o Ryan Peterman fez um speed run nas FAANGs: começou como júnior na Amazon e posteriormente foi para o Instagram. Lá ele conseguiu ir de júnior até o cargo de senior em 3 anos e em um ano virou Staff Engineer, um dos maiores cargos atingíveis como IC. Claro que pra chegar nesse nível ele precisou de muito conhecimento em engenharia de software, talento, mas também estratégia. E nessa thread vou resumir a estratégia que ele utilizou em cada nível para ir progredindo na carreira de forma tão rápida.
A principal estratégia é sempre buscar desenvolver os comportamentos do próximo nível. É júnior e quer virar pleno? Analise o que os plenos do seu time estão fazendo e tente incorporar esses hábitos no seu dia-a-dia. Além disso, sempre pense no porquê. É incrivelmente fácil se pegar trabalhando em tarefas com baixo impacto e que não te ajudam nessa progressão.
Own the health of what you do (Júnior -> Pleno)
Júnior e pleno são os níveis mais similares em senioridade. Ambos são capazes de escrever código de qualidade, mas a principal diferença entre eles se dá na iniciativa em melhorar a codebase e no escopo das tasks. A principal dica para migrar de júnior para pleno é implementar tasks de porte médio/grande e entregá-las com o nível esperado de qualidade. Foque em refatoração, limpeza de código, code reviews, testes. Como o título diz, se importe com a saúde da codebase e tenha iniciativa.
Impact is key (Pleno -> Sênior)
A diferença entre pleno e sênior acaba sendo maior, justamente por essa transição envolver mudanças comportamentais. Um sênior tem como principal responsabilidade liderar e influenciar o resto do time. Além disso, sênior é o primeiro nível em que se espera que você ajude no crescimento dos outros. Nessa transição o importante é focar no impacto que você causa no time. Liderar projetos, melhorar processos, compartilhar conhecimento, realizar mentoria, se envolver em recrutamento podem ajudar nessa transição.
You’re now a reference between teams (Sênior -> Staff)
A principal diferença entre esses níveis está no nível de influência e escopo. Staffs lideram iniciativas entre times e usam sua influência para melhorar a cultura de engenharia por onde eles passam. Eu diria que o trabalho de um staff consiste em encontrar oportunidades de alto impacto, lidar com ambiguidades e definir escopo.
Se vocês curtiram esse post, recomendo muito que vocês deem uma olhada na newsletter do Ryan. Ele posta vários conteúdos sobre carreira em https://t.co/G5Mmxgo938
cc @RealGalego@sseraphini #bolhadev
3 ways to share code in React:
Problem: Two components have different logic, but nearly identical JSX.
Solution: Create a reusable component that contains only the JSX.
Problem: Two components have the same logic, but different JSX.
Solution: Create a reusable hook that contains the shared logic. Call the hook in both components.
Problem: Two components have similar logic and JSX.
Solution: Unify the components. Add props to handle the differences.
Summary:
Repeated logic? Use a hook.
Repeated markup? Create JSX-only component.
Repeated logic and markup? Create a component.