Minha rotina como desenvolvedor Rails em uma startup — 2018

Hugo Dias
Experience Valley
Published in
7 min readJan 17, 2018

--

Achei fantástica a ideia do Felipe Fialho. Desde 2015 ele conta sobre como é seu dia a dia sendo um desenvolvedor e decidi fazer um post com uma proposta parecida.

Muita gente me pergunta como é trabalhar em uma startup como a Rock Content e ainda mais, como é meu dia a dia sendo desenvolvedor rails.

Pensando nisso vou descrever como seria um dia comum no trabalho, as ferramentas que utilizo, as pessoas com quem tenho contato e como arquiteto e produzo código.

Workplace

Excelente lugar para descansar depois do almoço

Uma das maiores dúvidas que tinha antes de trabalhar na Rock era saber como funcionava este ambiente tão famoso de Startup.

Quando cheguei para fazer a entrevista fiquei impressionado com o lugar.

Totalmente aberto, sem paredes, bicicletas nas paredes, e até uma piscina de bolinhas!

A proposta de um open floor é muito interessante.

Dá a impressão de que não existe hierarquia, e que todos que estão ali trabalham juntos com o mesmo objetivo, o que facilita chegar e conversar com qualquer pessoa da empresa.

Hoje graças a este ambiente tenho contato com pessoas de todas as áreas, o que ajudou bastante na adaptação.

Ambiente de Startup

Outro fator que impressiona ao começar a trabalhar em uma empresa assim são os detalhes e benefícios que fazem uma grande diferença na vida de quem sabe aproveitar.

Minha mesa na sede antiga da Rock Content — Em uma sexta-feira depois das 18h

Na primeira semana, todo funcionário passa pelo onboarding, onde colaboradores de todas as áreas apresentam a empresa explicando um pouco do trabalho de cada setor.

Neste dia já é possível ver como o ambiente de startup é diferente.

Assim que chego na cozinha vejo que temos acesso a café, paçoquinha, refrigerantes, sanduíches, bis …

A empresa não tem Dress Code. Então se está calor o melhor é ir de bermuda e chinelo!

Gela

Durante as sextas-feiras às 18h temos um Happy Hour dentro da empresa, o famoso Office Gela, com cerveja liberada, música, sinuca, fliperama e totó.

Rotina

Minha rotina, assim como grande parte do time de engenharia é bem corrida, com muitas atividades, e entre elas, várias reuniões.

Meu horário de trabalho é basicamente o mesmo todos os dias. Chego por volta das 9:45 e saio 18:45, mas se precisar chegar mais tarde ou sair mais cedo é bem flexível — outra característica comum em startups.

Reuniões

A cada duas semanas temos a planning meeting e a review & retrospectiva — cerimônias da métodologia scrum. Neste período de duas semanas ainda temos algumas reuniões de grooming.

Todo os dias nos encontramos às 10h para falar como foi o dia anterior, o que faremos no dia atual e se existe algum impedimento para seguir em frente. — estas são as daily meetings.

Coding

Depois da reunião diária é hora de colocar a mão na massa e seguir com as atividades que planejamos no começo da sprint.

Quebramos histórias em stories no Jira e seguimos no quadro de kanban até que elas estejam concluídas. Geralmente cada sub-task vira um Pull Request, que controlamos pelo Github — Salvo as tarefas de spike, estudo, experimento, etc.

Tentamos fazer review no código dos outros desenvolvedores com bastante frequência, então o ideal é que quando você acaba uma tarefa, a primeira coisa a se fazer é procurar algum Pull Request para fazer o review, lá no Github mesmo.

Hardware para codar em casa e no trabalho

Home office

No dia que escrevo este post estou num período onde grande parte da empresa está de home office — algo muito comum de se fazer em startups

Então vou descrever o que utilizo em ambos os ambientes, em casa e no trabalho.

Home office

Trabalho com OSX a pelo menos 6 anos e é muito difícil de largar! Apesar de que grande parte dos softwares que utilizo funcionam tanto no Mac quanto no Linux.

Trabalho com um Macbook Pro de 13, ligado em um monitor Dell 23 P2314H, que vira 90 graus — excelente para ler logs hahah

Se você é desenvolvedor sabe que um fone de ouvido é essencial. Consegui comprar o XB650BT da Sony na Black Friday muito abaixo do preço de mercado.

Na empresa

Vista da Rock Content em Belo Horizonte

Trabalho com um Asus de 15 polegadas, processador Intel Core I5, 8GB de RAM e 250GB SDD rodando Arch Linux, mais do que o necessário para fazer tudo que preciso no dia a dia.

Temos também monitores ligados nos notebooks, a grande maioria tem por volta de 20 polegadas.

Minhas responsabilidades

Linguagens

Hoje na Rock trabalho principalmente com Ruby on Rails, mas atualmente o Vue.js está fazendo cada vez mais parte do meu dia!

Sempre fui fã de frameworks javascript. Trabalhei com AngularJS e ReactJS por um tempo, mas hoje prefiro o Vue.js. Este framework me surpreendeu muito nos últimos meses. — O Silvio, que também trabalha no time de Engenharia da Rock, fez um post excelente explicando porque escolhemos Vue.js

DevOps

De vez em quando precisamos alterar alguma configuração nos servidores de produção. Hoje temos duas plataformas rodando, tanto na AWS quanto no Heroku.

Trabalho principalmente com a plataforma que está na AWS, então as vezes é preciso colocar o chapeuzinho de DevOps e criar ambientes para testes, atualizar software existente e outras tarefas de manutenção nos servidores.

Ferramentas que utilizo no dia-a-dia

Sistema operacional

OSX em casa, Arch Linux no trabalho.

Editor de texto — Neovim

Por muito tempo usei o Sublime e até um pouco do Atom, mas depois que comecei a trabalhar com Neovim / Vim tudo mudou e não tem mais volta hahah.

É difícil explicar para uma pessoa que é fã do Sublime as vantagens do vim, porque eu já fui esse cara, mas confie em mim, se você ainda não conhece o editor, crie uma meta pessoal e tente, não vai se arrepender.

Comecei a aprender vim depois de conhecer este jogo sensacional que vai te ensinar os atalhos enquanto você passa de fase.

Utilizo o Neovim tanto no OSX quanto no Linux do trabalho.

Deixei meu arquivo de configuração do Neovim disponível neste gist.

Terminal: iTerm 2 + TMUX

No OSX utilizo o iTerm2, no Linux o terminal que já vem no Gnome 3 mesmo. Junto com eles, tenho instalado o TMUX, que se você ainda não usa para de ler este post e instala agora! — mas depois volta e continua lendo :D

Também disponibilizei minha config do TMUX.

E para concluir a parte de terminal, uso o zsh com oh-my-zsh em ambos os sistemas operacionais.

Containers: Docker

Utilizo Docker para as aplicações que temos na Rock, o que facilita minha vida em 1000%.

Com apenas um comando já está tudo funcionando, o servidor, banco de dados, worker, email, tudo!

Infelizmente o Docker não se dá muito bem com OSX então é praticamente inviável usar ele em casa. Para contornar este problema uso o Foreman para não precisar subir tudo separado — Must have para quem desenvolve em Rails no OSX.

Controle de versão: Git + Github

Não tem muito mais o que falar né?

Tasks & Project Manager: Jira

Como falei no começo do post, usamos o Jira para auxiliar no Scrum. Se abrir meu navegador a qualquer hora do dia com certeza vai ter uma aba fixada dele lá.

Notes: Evernote

Uso o Evernote para anotar tudo que preciso, principalmente quando estou planejando o funcionamento de uma nova feature. A extensão dele para o chrome é excelente para salvar links para per depois.

Outra vantagem é a compatibilidade com praticamente todos os sistemas operacionais. Tenho Evernote no telefone, no Mac e no Linux uso pelo browser.

Mensagens: Slack

Praticamente todo mundo usa hoje em dia, né? Longe de ser o meu favorito, mas faz o que deveria fazer.

Password Manager: 1Password

Utilizo ele em todos os dispositivos que tenho acesso no dia a dia. Funciona em Mac, Linux, Iphone, Android.

O que ainda quero realizar em 2018

Agora que já escrevi sobre as ferramentas e metodologias que utilizo no dia-a-dia, porque não falar do que eu ainda quero aprender ou fazer?

Criar um aplicativo mobile

Penso que todo desenvolvedor tem vontade aprender novas tecnologias e linguagens de programação. Não sou diferente, então coloquei como uma meta para este ano criar um aplicativo IOS e disponibilizar na Apple Store.

Fazer um nanodegree da Udacity em Data Science

Sempre gostei de Inteligência Artificial e até comecei a aprender algumas coisas sobre o assunto, mas nunca dei continuidade. Então para não ficar nesse vai ou não vai defini uma meta sólida. Vou fazer um curso de Data Science da Udacity, para depois me aprofundar em Inteligência Artificial.

Ir para o trabalho de bicicleta

Agora que a Rock Content vai mudar de lugar resolvi aproveitar esta oportunidade para também fazer uma mudança na minha rotina. Por que não encarar e ida e volta do trabalho com uma perspectiva diferente? Vou comprar uma bike e começar a ir para o trabalho pedalando!

Publicar no mínimo 12 artigos no Medium

Contando com este ok? Então 11 more to go.

--

--