Workshops

Conheça meus treinamentos corporativos

Capacite sua equipe de tecnologia com meus treinamentos customizados sobre arquitetura de sistemas, cibersegurança, cloud, desenvolvimento, DevOps e os principais assuntos de TI. Escolha os assuntos a serem abordados, a duração e frequência 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

Veremos diversos serviços e os passos necessários para levar uma aplicação Web para a nuvem utilizando a Amazon Web Services, começando com armazenamento e CDN para o frontend, serviços de computação para o backend, configuração de DNS e banco de dados. Para finalizar, veremos como configurar a escala automática dessa aplicação para lidar com o aumento de acessos.
As esteiras de CI/CD são extremamente importantes em processos de DevOps, mas muitas vezes não damos a devida atenção ao criá-las, tornando-as lentas, caras e inseguras. Iremos ver como utilizar ferramentas como o GitHub Actions ou GitLab CI para criar esteiras resilientes para múltiplos ambientes, usando as principais recomendações de segurança para publicar nossas aplicações em ambientes na nuvem.
O Git se tornou o sistema de versionamento de código padrão do mercado já há alguns anos, mas mesmo quem o utiliza diariamente não conhece todo seu conjunto de comandos, tendo inclusive medo de perder código ou não usando os fluxos de trabalho de forma correta. Veremos os principais comandos do Git, algumas instruções mais avançadas (como rebase, bisect e reflog) e várias dicas das melhores práticas de mercado para aproveitar ao máximo essa ferramenta.
Conheça esse padrão de autenticação sem senhas na Web criado em conjunto pela W3C e FIDO Alliance, que utiliza criptografia de chaves públicas para permitir registro e autenticação seguros. Saiba o que são as cerimônias, os processos de atestação e asserção, e como os autenticadores podem utilizar biometria para proteger ainda mais os acessos.
Entenda mais sobre as ferramentas do framework JOSE para transmitir informações de forma segura entre serviços, aprendendo como funcionam JWE e JWS (que é o que geralmente utilizamos e que chamamos de JWT), as formas de gerenciar as chaves criptográficas e as boas práticas para geração, manuseio e revogação desses tokens.
Veremos na prática os passos necessários para levar uma aplicação Web para a Amazon em diferentes estágios: começando através de EC2 para a aplicação, Route 53 para configuração do DNS e RDS para SQL, passando pelo autoscaling com Elastic Load Balancing e utilizando as ferramentas CodePipeline, CodeBuild e CodeDeploy para automatizar a esteira de CI/CD.
Kubernetes já é parte do dia-a-dia de muitas empresas ao implementarem soluções de microsserviços, mas poucas pessoas conhecem na prática como implementar uma aplicação distribuída utilizando as principais tecnologias e serviços existentes por aí. Iremos entender como funcionam os componentes fundamentais e implementar uma simples aplicação fazendo tudo manualmente, configurando autoscaling, deployment e até mesmo um service mesh (Istio) sem usar receitas prontas!
Aprenda as principais maneiras de implementar a comunicação entre microsserviços, como requisições HTTP diretas, serviços de mensageria (utilizando RabbitMQ) e o framework gRPC. Saiba também como implementar os padrões de Sagas e CQRS em cima desses protocolos, além das vantagens e desvantagens de cada um.
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.