setup #28

Quem é você e o que faz?

Muitos que ouvem falar de "Fabio Akita" pensam imediatamente num "rubista", no sentido de que é a única coisa que sei fazer. Vou tentar resumir 25 anos 1 parágrafo:

Eu sou programador desde 1990. Isso mesmo. Comecei aprendendo Basic e dBase, imediatamente pulei para Clipper, depois Foxpro. Comecei a faculdade de Ciências da Computação na USP em 1995. De lá aprendi mais sobre a base da computação, evoluí para Pascal, Turbo Pascal, Delphi. Ao mesmo tempo vi o nascimento do Java 1.0, o nascimento do Javascript 1.0, o nascimento do Delphi 1.0, o nascimento do J2EE, o nascimento do .NET. Nesse período vi a queda do Perl, a estabilização do Visual Basic, a estabilização do PHP, a estabilização do Python. Aprendi todas elas, trabalhei profissionalmente com todas elas. Participei da Bolha da Internet dos anos 1999-2001. Depois disso fui de cabeça para o mundo super-corporativo SAP onde fui integrador de 2002 a 2006.

Finalmente resolvi aprender Ruby quando vi o nascimento de Ruby on Rails somado ao reinício de uma nova era de startups quando começamos a cunhar a "Web 2.0". SEO, redes sociais, geolocalização, Software as a Service, mobile, tudo nasceu nesse mesmo período. Entendendo o rumo da indústria e o potencial papel que o Rails poderia ter nisso, investi todo meu tempo nisso. Mudei de emprego, procurei empresas onde eu pudesse exercitar Ruby. Entrei na onda dos "blogueiros" e comecei a postar sobre Rails e as tendências da próxima década. Com sorte, encontrei a Locaweb e firmamos uma parceria que dura até hoje, onde já realizamos 9 conferências Rubyconf Brasil de muito sucesso, nos tornando referência.

Durante esse período eu entendi que software e técnicas resolvem metade do problema. A outra metade é hackear pessoas. E isso exige um conjunto completamente diferente de ferramentas. Estudei a fundo gerenciamento de projetos, gerenciamento de pessoas, noções de sociologia, a evolução das diversas "modas" no mundo de gestão, quebrei a maioria das superstições e derrubei as bobagens que muito da auto-ajuda derivada dos anos 80, 90 e 2000 que até hoje ainda permeiam nossa indústria e sempre que palestro tento trazer de volta a "ciência" da "ciência da computação". Das mais de 100 palestras que dei nos últimos 10 anos, mais da metade trata de assuntos práticos de projetos do que especificamente "evangelizar" Ruby. Você pode ver os slides de todas as minhas palestras no Slideshare e assistir a algumas delas no YouTube e na Eventials.

Atualmente além de Ruby, meus estudos se voltam particularmente para as linguagens Elixir e Crystal, que são os assuntos dos posts mais recentes no meu blog.

Qual hardware você usa?

Desde 2004 eu sempre usei Macs. Depois de todos esses anos eu acredito que ainda não existe nenhuma combinação de hardware e software que consiga superar um bom Mac, não importa o modelo. No fim de 2015 eu me forcei a usar um Dell Inspiron 15 até a metade de 2016. Uma excelente máquina com Core i7, 16GB de RAM, 1TB de HD, tela 15" high-res rodando Ubuntu. Depois de várias customizações escolhi ficar com o Cinnamon em vez do Unity e, no geral, o conjunto funcionava para 80% do tempo com desenvolvedor de software. Acredito que é o melhor custo benefício no Brasil hoje. Infelizmente o hardware da Dell é terrível em seu acabamento, o teclado é extremamente ruim (pra mim exige um teclado externo), o trackpad é inusável, Ubuntu não suporta multi-touch decentemente até hoje. Então "dá pra usar".

Workspace de Fabio Akita.
Workspace de Fabio Akita.

O ecossistema da Apple tem todos os problemas "morais" de um "walled garden", mas eu realmente não me incomodo com isso. Até hoje o teclado da Apple é um dos mais ergonômicos, o trackpad realmente funciona, o sistema operacional é um UNIX - que todo desenvolvedor obrigatoriamente necessita - mas a interface até hoje ainda é melhor que o melhor Windows 10 em usabilidade, fluidez, consistência.

Para meu conforto, já tentei usar 2 monitores, mas no final eu sou mais produtivo somente com um monitor mesmo. Gosto de usar meu MacBook Pro 15" (modelo 2013, 16GB, 1TB SSD) como um "desktop-replacement", então coloco ele num pedestal para o monitor alcançar a altura dos meus olhos. Eu gosto do teclado externo da Apple, mas por nostalgia escolhi o excepcional dasKeyboard sem teclado numérico, e embaixo dele posiciono o Apple Magic Trackpad 2 que é o melhor que existe. Eu não gosto de ser interrompido enquanto trabalho. Para garantir conforto e concentração sem prejudicar minha audição (fones in-ear não devem ser usados o dia todo!) resolvi investir num excelente headset Bose QuietComfort 35 wireless. O principal: active noise cancelling! Toda a mobilidade, conforto e concentração que eu preciso para trabalhar.

Qual software você usa?

Como disse antes, nada supera o macOS. A combinação única de um core BSD com um desktop manager fluído, de baixa latência. Nenhum outro OS tem o mesmo nível de "fluidez". Antes eu usava tudo integrado com serviços da Apple, incluindo iCloud. Mas como minha empresa usa Google Apps, meu email, calendários, contatos, estão todos no Google. E felizmente nas versões mais recentes do macOS os principais aplicativos como Calendar, Mail, Contacts, Messages, todos integram bem com serviços externos, incluindo LinkedIn, Facebook e Twitter, então gosto de usar tudo que vem no macOS.

Não existe nenhum pacote de "Office" melhor que o "Office". Quando usei Linux por meses fui obrigado a usar Libreoffice e, embora seja "suficiente", está longe de ter o mesmo nível de acabamento, principalmente o Libreoffice Impress, que é extremamente ruim. Os apps web do Google para office também, servem para o básico. Nada supera Word e Excel, e no Mac também é assim.

Por outro lado nada supera o Apple Keynote para apresentações. Nem mesmo Powerpoint chegou na mesma combinação de ferramentas e facilidade de uso. O mesmo pode ser dito para o Apple iMovie para edição rápida de vídeo com qualidade. E obviamente nada supera Adobe Photoshop e Adobe Illustrator para graphics design. Dei toda a chance do mundo para alternativas Gimp e Inkscape, mas, embora competentes, ainda não chegam no mesmo patamar. E isso eu digo depois de anos de tentativas.

Para desenvolver software, eu uso uma combinação de Homebrew no macOS para instalar algumas ferramentas, mas eu prefiro não poluir demais porque isso dificulta atualização de OS no futuro, então o grosso ainda fica dentro de uma máquina virtual VMWare com Ubuntu 16.04 (eu sempre uso somente os LTS) orientado via Vagrant. VMWare é extremamente superior a Virtualbox e eu não usaria outro.

Como editor eu prefiro a combinação do MacVim (não Vim no terminal como muitos preferem, porque eu gosto da conveniência) com o melhor conjunto de "dotfiles" que é o YADR. Ele vai configurar coisas como o ZSH (que é obviamente melhor que Bash) e o Vim com todos os principais plugins e com a melhor configuração estética.

Estamos em 2016, não existe mais discussão sobre versionamento de código. Desde 2007 venho evangelizando e ensinando Git, e desde que Github se tornou a Meca do código, apenas devemos usar Git.

Como sou desenvolvedor Ruby, uso tudo que nosso ecossistema criou: RVM, Bundler, Rake tasks para eventuais automatizações, mas eu não perco muito tempo criando pequenos scripts pra automatizar coisas triviais. Coisas triviais eu recorro ao history do shell, autocomplete do Zsh e pronto. Deployment em servidor sempre uso Heroku, então "git push heroku master" é tudo que preciso para subir projetos em produção. Só de subir o código para nosso Gitlab interno tenho o Gitlab CI configurado para rodar builds das suítes de testes de cada projeto e integração com CodeClimate para garantir a mínima qualidade do código.

No dia a dia eu e minha equipe estamos sempre online pelo Mattermost. Toda minha infraestrutura fica na [DigitalOcean][digitalocean]. No geral isso resume meu ambiente principal.

O que te motiva a fazer o que faz?

Como eu disse, sou programador desde 1990 quando fazia pequenos trabalhos como freelancer com Clipper. Aprendi Basic aos 12 anos. Eu vi com meus próprios olhos o nascimento da era do Desktop nos anos 80. Vi propagandas do recém-lançado Macintosh. Vi o primeiro monitor colorido VGA e como isso era revolucionário comparado ao meu CGA verde. Vi o nascimento do Windows que era anos-luz à frente do meu primitivo DOS. Eu vivi a sensação de ser um dos poucos no mundo a receber e enviar bits pela linha telefônica no início dos anos 90, com modens ultra lentos de 1200bps. Eu baixei o primeiro alpha do Java quando ele se chamava Oak, via FTP da Unicamp quando eu estava na USP. Eu vi a banda larga nascer no meio dos anos 90. Eu vi os primeiros grandes sites nas versões iniciais como a Amazon, search engines do início como Webcrawler e Altavista. Eu vi o nascimento e o estouro da Bolha. E finalmente eu me vi participando de todos esses eventos. Eu comecei a usar "palmtops" no meio da década de 90, 10 anos antes do lançamento do iPhone. O século XXI começou e eu vi a consolidação do "Hub", integrando a tecnologia "bege" com o entretenimento do dia a dia. Vídeos, fotos, músicas. A queda do modelo de "assistir o que nos dão" para "escolher o que assistir" (Netflix, Youtube). A queda do modelo "ligar para um amigo" para redes sociais.

Eu me considero extremamente sortudo de ter essa sensação de ter nascido e vivido na era certa, onde eu sei de onde as coisas vieram, e fico imaginando para onde as coisas vão, uma descoberta de cada vez. E tecnologia não desacelera, ela só vai mais rápido e eu quero ver pra onde as coisas vão. Sou um expectador assistindo o melhor filme do mundo, e não pretendo sair dessa sala de cinema tão cedo. Eu gosto de tecnologia, o que eu lembro de mim mesmo desde o começo é tecnologia, foi como eu cresci, é o que me define.

Um desejo?

Não sou mais um programador em seus primeiros anos, já fiz um pouco de tudo, como freelancer, como empregado, como programador, como gerente, passando por diversas áreas de uma empresa que não é tecnologia - como comercial, marketing, vendas, compras, contabilidade, etc. Depois disso abri minha empresa em 2011 e estamos no caminho para realizar o que eu queria desde que iniciei com Ruby: ajudar a criar um mercado independente de estatais, onde vale a Lei de Mercado Livre, com concorrência baseado em competência e qualidade, achando programadores comprometidos com o ideal de serem cada vez melhores no que fazem e atingir um nível de excelência que não deixa a desejar nem pelos níveis de Silicon Valley. Mas tudo isso sem enaltecer falsamente via auto-ajuda ou discursos bonitos e vazios sobre “excelência” sem nunca fazer nem uma linha de código. Prática, prática e prática, é o que leva à excelência e é isso que eu, minha empresa e meus desenvolvedores sempre vamos continuar buscando.

Estou anos luz de distância de uma Apple ou Google, mas dentro do nosso pequeno universo, acho que o que eu faço por mim mesmo, pelos meus próprios interesses de evoluir eu mesmo ao mesmo tempo ajudou outras pessoas pelo caminho, e isso é o que devemos buscar: cada um buscar sua própria evolução e, como consequência, ajudar os demais pelo caminho.