Workshops

Conheça meus treinamentos corporativos

Para repassar minha experiência após mais de 10 anos atuando com Tecnologia da Informação, estou ministrando treinamentos para empresas sobre Desenvolvimento, Segurança da Informação, DevOps, Arquitetura de Sistemas, entre outros assuntos.

Os workshops são totalmente customizados para se adequar às necessidades da empresa: definimos os assuntos a serem abordados, duração dos encontros e até mesmo o grau de profundidade desejado em cada tema.

Saiba mais

Palestras

Veja os slides de minhas apresentações em eventos

Chega um certo momento na carreira de qualquer técnico de TI em que ele(a) percebe que para evoluir na carreira não é preciso aprender outro framework ou metodologia. É simplesmente preciso ser um profissional melhor - e isso vai muito além da parte técnica. Veremos sobre as famosas soft skills fundamentais para a evolução fora de um editor de código e como podemos usá-las para nos capacitar e nos tornar mais completos.
Em nossos sistemas, frequentemente utilizamos criptografia e suas técnicas para guardar informações sensíveis (como senhas), salvar cookies na máquina dos usuários, gerar access tokens para nossas APIs e outras situações... Mas será que realmente sabemos a diferença de criptografia simétrica para assimétrica? Ou como usar corretamente funções de hashing sem se preocupar com ataques side channel? Isso pode ser a diferença entre ter o seu sistema atacado ou não.
Você faz ideia de quantas senhas, credenciais e outros dados sigilosos estão configurados nas variáveis de ambiente de seu sistema de CD? Já imaginou o que aconteceria se alguma conta de serviço fosse comprometida e você precisasse alterar os valores em todos seus repositórios? Ao invés desse trabalho manual, irei mostrar uma abordagem criando um serviço de vault para centralizar suas credenciais e um plugin para consultar essas informações no momento do deploy, utilizando o GitLab como demonstração.
Com a disseminação do uso de microserviços, vários aspectos de segurança em nossas APIs precisam ser repensados, pois um simples problema pode ser escalado a níveis preocupantes. Veremos sobre:
  • Conceitos de autenticação e autorização;
  • Melhores práticas no uso de access tokens;
  • Aplicação de throttling e rate limiting;
  • Camuflagem de IDs sequencias;
  • Criptografando e assinando a requisição para evitar tampering.
Como aplicar as melhores medidas para protegermos nossos sistemas em PHP, pensando em questões de segurança além dos exemplos mais comuns encontrados, que muitas vezes são resolvidos pelos próprios frameworks?
Pontos que serão abordados:
  • Enumeração de usuários;
  • Gerenciamento de sessão;
  • Melhores práticas de validação de entradas;
  • Runtime application self-protection;
  • Armazenamento e políticas de senhas.
A libsodium é uma biblioteca moderna de criptografia e foi incluída no core do PHP 7.2, o que representa um posicionamento muito interessante da comunidade no quesito de segurança. Veremos como utilizá-la para:
  • Geração de dados aleatórios
  • Prevenção de timing attacks
  • Criptografia simétrica (secret key)
  • Criptografia assimétrica (par de chaves: pública e privada)
  • Hashing para autenticidade de mensagens e criação de senhas
  • Criptografia com autenticidade
SOLID, Object Calisthenics e Clean Code são termos que fazem parte da vida de um programador, mas é comum vermos que no dia-a-dia nem tudo sempre segue a teoria. Veremos como aplicar esses conceitos na prática mostrando trechos de códigos e exemplos de como refatorar o que já foi feito. Veremos:
  • SOLID;
  • Object Calisthenics;
  • Complexidade Ciclomática.
O PHP foi inicialmente feito para a Web, mas também podemos utilizá-lo para criar CLI scripts e até mesmo daemons. É lógico que existem linguagens focadas para isso, mas em alguns cenários podemos aproveitar os códigos PHP já existentes no backend e também a experiência dos programadores da equipe. Iremos ver como:
  • Lidar com argumentos para scripts e roteá-los para comandos;
  • Criar mecanismos de controle e execução de processos externos e em background;
  • Ter códigos que sejam reaproveitáveis entre ambientes.
Uma das partes mais básicas de um sistema é o processo de login. Mas, por ser algo que não agrega valor direto ao negócio, acabamos não gastando o tempo necessário para criar um fluxo realmente seguro, fazendo com que ele se torne o principal vetor de ataques de nossa aplicação. Iremos aprender:
  • Utilizando CSRF de forma correta;
  • CAPTCHA;
  • Duplo fator de autenticação;
  • Prevenção à enumeração de usuários;
  • Autenticação em APIs;
  • Funções "Permanecer logado" e "Esqueci a senha";
  • Autenticação em APIs.
12-Factor Apps
É comum nos depararmos com algumas dificuldades quando precisamos preparar nosso sistema para ele ser escalável e de fácil manutenção, principalmente em arquiteturas de microsserviços. O 12-Factor App é um documento que elenca 12 fatores que permitem facilitar a criação, manutenção e escalabilidade de uma aplicação. Iremos ver esses conceitos e também como aplicá-los.
Prática e estudo que consiste em transformar uma informação em um código cifrado, para que apenas as pessoas/sistemas escolhidos possam decifrar. Pontos abordados:
  • Tipos de criptografia (simétrica e assimétrica);
  • Cifras e modos de operação;
  • Geradores de aleatoriedade e vetores de inicialização;
  • Hashing;
  • Assinaturas.
O Zend Expressive é o micro-framework da Zend que implementa a PSR-7, lançado oficialmente em 2016. A versão 2 foi lançada em março de 2017 e tem recebido bastante destaque desde então. Aprenda sobre middlewares, controllers, factories e injeção de dependências via containers. Entenda OAuth2 e como utilizá-lo para realizar a autorização de APIs, usando JSON Web Tokens (JWT) para lidar com access tokens.
Carreira e Empreendedorismo
Esses dois caminhos são extremamente opostos, certo? Para empreender, preciso abrir mão da minha carreira atual? Em muitos casos, não! Veremos exemplos de como podemos extrair o melhor de cada caminho para aliarmos inovação e o sentimento de realizar algo próprio sem deixar de lado a carreira em alguma empresa.