
Discover more from maisquesenior.dev
Essa edição é especial por dois motivos. O primeiro é que eu conheço o Vinicius fazem alguns anos, tenho acompanhado sua carreira pois trabalhamos juntos e fiquei muito feliz quando soube da sua promoção para Staff. O outro motivo é essa ser a primeira entrevista de alguém que acaba de começar nesta posição, então achei interessante sabermos sua história, aspirações, expectativas em relação aos novos desafios. Acredito que algumas pessoas que estão lendo este texto estão em um momento parecido com o do Vinicius, então espero que aproveitem bastante.
Você foi promovido para Staff recentemente, certo? Conte um pouco sobre sua posição anterior. Que tipo de trabalho você fazia antes e como imagina que vai mudar a partir de agora?
Eu entrei na Voiceflow há um ano, para um cargo de Senior Software Engineer. Para dar contexto, nós temos uma ferramenta de criação e execução de voice assistants e chatbots.
A aplicação tem diversos micro-serviços, desde APIs para atender a ferramenta de design dos chats, até micro-serviços que são executados quando um usuário está interagindo com o bot em um website ou pela Alexa, Google assistant, entre outras plataformas.
Eu trabalho no time responsável pela ferramenta de design, que chamamos de creator-app. Isso abrange dar manutenção e implementar novas features no frontend que é em React, e também dar manutenção nos micro-serviços que existem para servir o creator-app, que são em NodeJS.
O que muda a partir de agora, é que será esperado que além de trabalhar nesses serviços, eu também trabalhe e dê suporte em outros serviços que fogem ao domínio do nosso time. Que eu atue mais ativamente em decisões técnicas que afetam toda a empresa e o projeto.
Que tipo de impacto você tem expectativa em gerar na sua nova posição? E como isso é diferente em relação a sua posição anterior?
Acredito que vou poder colocar em prática algumas ideias de melhorias que eu tinha para o projeto. Não que eu não pudesse fazer isso antes, mas acredito que o cargo traz mais confiança para eu poder colocar em prática. O impacto que eu espero trazer com essas melhorias, é simplificar a nossa arquitetura no frontend, facilitando a manutenção e reduzindo bugs a longo prazo.
Qual é o percentual de trabalho entre código e liderança que você desempenha hoje? Como você imagina que isso vai mudar a partir de agora?
Eu não tenho um papel ativo de liderança. O cargo atual é muito focado em desenvolvimento. Eu também atuo escrevendo technical designs, fazendo review de PRs, dando suporte e fazendo pair programming com outros devs. Entre desenvolvimento e essas outras atividades, eu diria que ficaria 80/20.
Como é um dia normal na sua rotina? Ou como é uma semana normal para você? Quais são suas rotinas principais?
A empresa em si não especifica nenhum horário, nem para começar, nem para terminar, nem para almoço, então eu acabei montando minha rotina.
Eu começo a trabalhar por volta das 9:30 da manhã.
Me acho mais produtivo pela manhã, então tento focar apenas no código até a hora do almoço. Meu almoço costuma ser rápido, apenas o tempo de comer, que leva de 15 a 20 minutos.
Meu time tem reunião de stand up todas as segundas, quartas e sexta-feiras. Temos pessoas na Europa, aqui no Brasil e no Canadá, para poder acomodar a todos, essas reuniões ocorrem ao meio dia.
Na parte da tarde eu costumo revisar PRs, continuar implementando features em andamento, mas também estou mais disponível para dar suporte a outras pessoas. Costumo fazer uma pausa às 16:00 para ir para a academia e volto a trabalhar às 17:30. Dependendo do que tem em andamento, eu apenas finalizo meu dia, fazendo algo pequeno que esteja pendente, como responder a algum formulário que a empresa solicitou, ou tirar dúvida de alguém no chat da empresa. Em alguns casos, se tem alguma feature que eu estou no meio de um raciocínio, posso estender até as 19:00.
Como você mede seu sucesso? Quando somos pessoas desenvolvedoras de software é comum medirmos nosso sucesso pelo número de commits, pull requests, entregas realizadas. Como você está se preparando para isso mudar com sua nova posição? Ou é algo que ainda não passou pela sua cabeça?
O cargo de Staff Software Engineer ainda é muito focado em desenvolvimento, então ainda a grande medida de sucesso é a entrega de tarefas e features. Também espero atuar mais ativamente nas decisões de arquitetura, então uma das medidas de sucesso, pelo menos pessoalmente, é o quão bem algo novo é implementado, e como a aplicação está escalando.
Que soft-skills você percebe que fizeram a diferença na sua posição e que colaboraram para sua promoção?
Empatia e comunicação.
Empatia para entender o momento do time e também de cada pessoa, e ser pró-ativo tanto na hora de oferecer ajuda a alguém ou sugerir soluções mais simples.
Comunicar progresso e possíveis atrasos em entregas, sempre de forma pró-ativa, sem que o líder tenha que ficar cobrando. Também me comunico com antecedência quando vejo que algo teve falha na definição técnica, ou que falta algo a ser definido.
Você dedica tempo para mentorar as demais pessoas dos times? Acredita que isso vai mudar agora?
Não de forma programada ou consistente. Eu ofereço suporte e estou sempre disponível para tirar dúvidas e fazer pair programming para implementar uma feature ou resolver um bug.
Nós temos um programa de mentoria de co-ops (equivalente a estagiários) dentro da empresa, que é formado por voluntários. Como temos muita demanda de desenvolvimento dentro do meu time, e como eu já faço mentoria fora da empresa, decidi que não era o momento de me comprometer.
Para chegar a esta nova posição, você entregou algum projeto especial, ou você sente que foi uma progressão pelo conjunto das suas contribuições?
Eu entrei na Voiceflow para trabalhar no time (squad) responsável pela ferramenta de design, que chamamos de creator-app. Meu trabalho diariamente era focado em implementar novas features e corrigir bugs dentro do creator-app e nos micro-serviços que atendem ele diretamente, o creator-api e o realtime.
Porém, não é incomum que surjam features que necessitem de alterações em múltiplos serviços, do domínio de diferentes times. A primeira vez que eu recebi uma feature assim, o time responsável pelo micro-serviço estava com alta demanda, e para entender melhor o projeto, eu me ofereci para implementar as alterações nos outros serviços.
Depois que isso aconteceu pela primeira vez e eu ganhei contexto dos outros serviços, mais features que tinham essa necessidade começaram a ser atribuídas para mim. Ao mesmo tempo, eu comecei a dar suporte para outros devs que precisavam dar manutenção nesses outros serviços.
Dentro da Voiceflow nós temos um engineering matrix, que descreve o que é esperado de cada nível de dev, desde Junior até Principal. Um dos grandes pontos da matrix que diferencia um Senior de um Staff, é a atuação e conhecimento em diferentes serviços, que fogem o domínio do próprio time.
Acho que foi nesse ponto que eu comecei a assumir um papel de Staff, que foi reconhecido oficialmente na reunião de avaliação de 1 ano.
Que dicas você pode dar para quem está decidindo se continua o caminho de desenvolvimento ou se deve ir para a área de gerenciamento de pessoas? O que levou você a escolher pelo primeiro caminho?
Antes de entrar na Voiceflow, eu atuei por quase 1 ano gerenciando um pequeno time na BEN. Eu vinha de um cargo de desenvolvedor, quando o time expandiu e me promoveram a líder.
Para esse cargo, não era esperado que eu desenvolvesse código, eu apenas liderava pessoas, participava de reuniões, gerenciava os tickets e gerava relatórios semanais a partir de métricas do time.
Aos poucos eu vi que o cargo não era para mim, pelo menos não naquele momento. Eu me sinto melhor focando apenas em uma coisa. A troca de contextos pra mim é super contraproducente, e como líder, a troca de contexto é constante.
Apesar de sempre receber feedbacks positivos, eu também não sentia que estava produzindo ou entregando algo, e também senti falta de poder me dedicar a desafios técnicos.
Se a pessoa é muito focada em desafios técnicos, em lógica e na engenharia por trás dos negócios, acredito que faz mais sentido continuar no caminho de desenvolvimento. Um gerente é o tipo de pessoa que quer resolver problemas que vão além do código, além da parte técnica, e que toca na parte humana do negócio.
Que não se importa de participar de várias reuniões e de ter uma troca de contexto frequente e que também quer melhorar a vida das pessoas dentro do time! Quer garantir que cada um tenha qualidade de vida, mas também tenha espaço para crescer dentro da empresa.
Você lembra de algum conselho ou dica que recebeu quando tomou sua decisão e que foi importante para você?
Não é um conselho que recebi, mas algo que percebi como verdade ao longo dos anos. Não pense em liderança como um cargo para ganhar mais. Há maneiras diferentes de ter uma remuneração melhor atuando apenas com desenvolvimento. Talvez essa forma não exista na sua empresa atual, mas existe.
Quais fontes você usa para se especializar? Blogs, livros, canais do Youtube.
Eu costumo iniciar em um tópico através de blogs ou Youtube, mas depois tento buscar a fonte original da informação. Por exemplo: se quero desenvolver uma API, pesquiso em blogs e vídeos para saber o que está sendo utilizado atualmente em termos de ferramentas. Com os nomes das ferramentas, eu busco as documentações.
As ferramentas costumam ser tão boas quanto as suas documentações, então se eu não encontro o que quero na documentação, provavelmente é uma ferramenta que não vale eu investir meu tempo.
Pelo twitter eu também consigo ver coisas novas que estão surgindo, sem necessariamente ser algo que eu esteja precisando ou esteja pesquisando. Sigo as pessoas certas e os conteúdos aparecem na timeline.
Onde as pessoas podem te encontrar? Site, Linkedin, Twitter, etc.
Linkedin é um dos lugares onde eu compartilho mais ideias atualmente: https://www.linkedin.com/in/viniciusdacal/
Também tem o Twitter: https://twitter.com/vinicius_dacal