Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pet projects como meio de aprendizado

Sérgio Vilar
September 16, 2017

Pet projects como meio de aprendizado

Esta palestra dá dicas de como ter um pet project e fala como um pet project pode ser efetivo como meio de aprendizagem além de mostrar o case do RagMercado como um pet project na qual foi possível aprender muito.

Sérgio Vilar

September 16, 2017
Tweet

More Decks by Sérgio Vilar

Other Decks in Programming

Transcript

  1. COMO SE MANTER
 ATUALIZADO? • Acompanhar Podcasts • Seguir outros

    desenvolvedores no Twitter • Seguir Rimenes no GitHub (github.com/rimenes)
  2. Necessidades reais e fora do script Grande quantidade de pesquisa

    e estudo necessário Melhor forma de aprender é praticando
  3. COMO ENCONTRAR UM PET PROJECT? • Procure ao seu redor

    por um problema real • Busque algo a qual você domine a regra de negócio • Entenda que possivelmente seu público alvo não está
 no seu círculo social
  4. DICAS PARA SE
 MANTER NO PET PROJECT • Evite procrastinar

    • Tente fazer entregas incrementais • Pare e escreva quando necessário • Busque mentoria de alguém já experiente • Quando necessário busque opinião de alguém de fora • Escute seu público alvo
  5. MEU BACKGROUND • Programo praticamente todos os dias há 11

    anos • Mais da metade desse tempo em PHP • Recentemente com Javascript
  6. STACK INICIAL • Crawler usando Wombat (felipecsl.com/wombat) • Sinatra +

    ActiveRecord • Twitter Bootstrap • Droplet de $5 na DigitalOcean
  7. PRIMEIRAS SEMANAS • Divulgação dentro do jogo e em grupos

    do Facebook e Discord • 5 mil acessos na primeira semana, 10 mil na segunda • Feedback muito positivo da comunidade do jogo • Novos recursos sendo deployados diariamente
  8. SEGUNDO MÊS • 20 mil acessos por semana • Migração

    para Rails 5 • Começo dos ataques DDoS
  9. TERCEIRO MÊS • Série de novos recursos • Passa a

    ser ferramenta oficial do RagnaXP • Quedas constantes devido a DDoS • Outros servidores requisitam o serviço
  10. HORA DE ESCALAR • API plugada diretamente no banco do

    jogo, drop do Crawler • Atualização da base em background com sidekiq • Migração do front-end para o Heroku para lidar com DDoS
  11. HORA DE ESCALAR ɂ Ȑ Browser  Rails PostgreSQL Heroku

    Digital Ocean Ȑ Worker Ȑ Worker Ȑ Worker
  12. HORA DE ESCALAR • Problemas de performance ao consumir API

    • Sidekiq enchendo o Redis com status de jobs já finalizados • Aplicação cheia de queries N+1
  13. COMO RESOLVEU? • Scout ajudou a resolver os problemas de

    N+1 • O Redis do Sidekiq ficou sendo limpo a cada 1h ¯\_(ツ)_/¯ • Amigos ajudaram a melhorar a performance no consumo da API
  14. MercadoXP -> RagMercado • MercadoXP vira RagMercado e passa a

    ser um serviço • Multitenancy usando Apartment (influitive/apartment)
  15. O QUE EU USEI? • bulma.io para deixar o Front-End

    bonitinho • Devise para autenticação de usuários • ClockWork para recorrência de jobs no Sidekiq • sentry.io para captura de erros em produção • Capistrano para deploys para a DigitalOcean • cronitor.io para notificação caso os jobs parem
  16. AGRADECIMENTOS ESPECIAIS • Minha esposa por abrir mão da minha

    companhia por alguns (vários)
 fins de semana • Rimenes por toda mentoria prestada • Joel por sempre opinar e me ajudar com o design da infraestrutura • Amigos da Reliant por dar idéias de como lidar com os problemas 
 de performance