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

Pet projects como meio de aprendizado

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. PET PROJECTS

    COMO MEIO DE APRENDIZADO

    View full-size slide

  2. “FAÇA ALGO QUE GOSTE
    OU ACABE TRABALHANDO”
    Biscoito do China in Box

    View full-size slide

  3. COMO SE MANTER

    ATUALIZADO?
    • Acompanhar Podcasts
    • Seguir outros desenvolvedores no Twitter
    • Seguir Rimenes no GitHub (github.com/rimenes)

    View full-size slide

  4. SE MANTER ATUALIZADO
    TAMBÉM SIGNIFICA
    ACOMPANHAR O MERCADO

    View full-size slide

  5. COMO CAIR DE CABEÇA
    EM UMA ÁREA
    COMPLETAMENTE NOVA?

    View full-size slide

  6. LIVROS
    CURSOS
    MÃO NA MASSA

    View full-size slide

  7. PET PROJECTS AO RESGATE

    View full-size slide

  8. Necessidades reais e fora do script
    Grande quantidade de pesquisa e estudo necessário
    Melhor forma de aprender é praticando

    View full-size slide

  9. 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

    View full-size slide

  10. 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

    View full-size slide

  11. RUBY FINALMENTE!

    COMO EU VIM PARAR AQUI?

    View full-size slide

  12. MEU BACKGROUND
    • Programo praticamente todos os dias há 11 anos
    • Mais da metade desse tempo em PHP
    • Recentemente com Javascript

    View full-size slide

  13. STACK INICIAL
    • Crawler usando Wombat (felipecsl.com/wombat)
    • Sinatra + ActiveRecord
    • Twitter Bootstrap
    • Droplet de $5 na DigitalOcean

    View full-size slide

  14. 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

    View full-size slide

  15. SEGUNDO MÊS
    • 20 mil acessos por semana
    • Migração para Rails 5
    • Começo dos ataques DDoS

    View full-size slide

  16. 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

    View full-size slide

  17. 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

    View full-size slide

  18. HORA DE ESCALAR
    ɂ Ȑ
    Browser

    Rails PostgreSQL
    Heroku Digital Ocean
    Ȑ
    Worker
    Ȑ
    Worker
    Ȑ
    Worker

    View full-size slide

  19. 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

    View full-size slide

  20. 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

    View full-size slide

  21. MercadoXP -> RagMercado
    • MercadoXP vira RagMercado e passa a ser um serviço
    • Multitenancy usando Apartment (influitive/apartment)

    View full-size slide

  22. APLICATIVO

    ANDROID
    • API com Grape + Roar
    • React Native

    View full-size slide

  23. 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

    View full-size slide

  24. UM PET PROJECT PODE

    TE ENSINAR MUITO MAIS DO QUE

    USAR UMA TECNOLOGIA

    View full-size slide

  25. 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

    View full-size slide

  26. OBRIGADO!
    ragmercado.info
    svilar.me

    View full-size slide