Tutoriais: 24 e 25 de agosto
Conferência: de 26 a 28 de agosto

Tutoriais

Os Tutoriais são sessões aprofundadas com duração entre 3 e 4 horas. Têm enfoque prático e participação de profissionais experientes e respeitados, inclusive internacionais. Os tutoriais acontecem nos dias 23 e 24 de março, no WTC Events Center, em quatro salas simultâneas. São elemento tradicional e muito popular nos principais QCons mundiais. Não perca essa oportunidade sofisticada de aprendizado com grandes especialistas do mercado. Confira abaixo os tutoriais confirmados até agora.

DIA DE TUTORIAIS 1 / Segunda-feira

Dia:
Segunda feira [ Meio Período ]

Successful Internet companies are built on a foundation of excellent culture, efficient organization, and solid technology. As a company needs to scale, all of these parts of the foundation need to grow and scale with it. This tutorial will provide a deep dive into modern best practices at innovative companies in Silicon Valley for scaling culture, organization, and technology.

Driven primarily by the presenter's experience ranging from small Valley startups to Google and eBay, we will learn about:

  • Organizing engineering teams for innovation and velocity
  • Maintaining a culture of learning and risk-taking
  • Attracting and retaining excellent engineering talent
  • Developing and sustaining effective engineering processes and methodologies
  • Architecting scalable, high-quality, resilient software systems

We will conclude with recommendations on how to start implementing changes to your own organizational team structure, processes, and development practices.

Dia:
Segunda feira [ Meio Período ]

Há anos é notório para nós desenvolvedores que não realizar práticas como TDD e integração contínua tem impacto direto sobre a qualidade do software desenvolvido. Ainda assim, por muito tempo as empresas mantiveram essas práticas à margem de seu processo – mas esse panorama mudou.

Mais e mais empresas passam a incentivar a criação de ambientes ágeis, em que seja possível entregar software com rapidez, qualidade, controle e baixo risco. A técnica de Continuous Delivery e toda a variedade de práticas por trás disso estão no centro da execução desses princípios e da mudança cultural necessária para otimizar os processos de desenvolvimento de software.

Neste tutorial vamos aliar teoria, prática e experiência para mostrar como é possível – e rápido – montar sua linha de produção contínua de software utilizando tecnologias como Jenkins e Docker, levando em conta testes, feedback rápido, versionamento, geração de pacotes, promoção de código entre ambientes, e deploy em produção – inclusive com técnicas de entrega gradual, como ‘Canary Releasing’.

Através das ferramentas Jenkins, Git, Maven, Chef e outras você vai nos ajudar a definir os rumos deste tutorial e aplicar as mudanças ao vivo em a uma aplicação Java, além de acompanhar todo o ciclo e ver a mudança ir para produção.

Dia:
Segunda feira [ Meio Período ]

Enquanto as práticas como Design Thinking, Lean e Agile vão se expandindo, nós desenvolvedores temos sido desafiados a atender a promessas feitas por essas práticas. Velocidade de entregas, facilidade de alteração, seleção de features... são todas necessidades com impacto direto em nossas práticas do dia a dia.

Ao mesmo tempo, no mundo JavaScript, temos visto uma explosão de ferramentas e técnicas oferecendo suporte para automatizar e melhorar a velocidade. Além disso, JavaScript se tornou linguagem de primeira classe nas aplicações de Continuous Integration.

Neste tutorial vamos usar uma aplicação de base para demonstrar o uso de várias tecnologias JavaScript no contexto de continuous delivery. Alguns tópicos cobertos neste tutorial:

  • Aproximando desenvolvimento do negócio: por que desenvolvedores têm que se preocupar com automatização, testes, qualidade, integração e entrega contínua?
  • Possibilidades do mundo JavaScript: quando NodeJS revolucionou o que se pode fazer com JS;
  • Apresentação da aplicação de exemplo, que ajuda você a decidir se é mesmo econômico ter um carro ou tentar uma combinação de ônibus, táxis e aluguel de veículos.
  • Automatizando o build com JavaScript: grunt, gulp, npm e mais
  • Gerenciamento de dependências com Javascript: bower, npm etc.
  • Testando com JavaScript: karma, jasmine, mocha, chai, sinon.
  • Bibliotecas para construir aplicações: Angular, Backbone, React JS.
  • Outros utilitário JS: lodash, q.js, polymer.
Dia:
Segunda feira [ Período Integral ]

In this in-depth tutorial you will gain hands-on experience building a Reactive Application using Scala, Play and Akka. We will first start by looking at challenges faced when building distributed applications for the cloud. Then we’ll discuss how the four key tenets of a Reactive Architecture – Responsive, Elastic, Resilient and Message-Driven – can help in building a modern cloud application. 

We will  use these principles to design an application with Play and Akka that can easily scale and is able to handle failures with a core infrastructure that is fault tolerant and self-healing.

The focus of the tutorial will be on designing and building an application that responds to a simulated real-time event stream. At the end of the tutorial attendees will have gained the practical experience to start building their own reactive applications using Scala, Play and Akka.

Participants should have a basic understanding of Scala before attending this tutorial.

Dia:
Segunda feira [ Período Integral ]

A programação reativa, como afirmada em seu manifesto, propõe o desenvolvimento de sistemas que sejam "Responsivos, Resilientes, Elásticos e Orientados a Mensagens". Sendo características desejáveis a qualquer software, por que não as estendermos à operação de sistemas?

Neste tutorial veremos não apenas como desenvolver uma aplicação reativa, mas também como usar os mesmos conceitos e ferramentas na administração de infraestrutura. Será presumido apenas o conhecimento básico de Javascript e computação em nuvem, permitindo o aprofundamento na biblioteca para programação reativa RxJS e nos serviços da Amazon Web Services.

O dia será dividido em quatro sequências de apresentação, exercício e desafios. Partiremos de uma aplicação reativa usando serviços essenciais da AWS, como S3 e EC2, e sobre este ambiente executaremos três melhorias: Automação com Elastic Beanstalk, Escalabilidade com DynamoDB e Otimização além do EC2. Na conclusão, revisaremos os pontos principais e opções de continuidade.

Ao concluir este tutorial, você terá a prática e o código necessários para implantar sistemas responsivos, resilientes, elásticos e orientados à mensagens na AWS. E não apenas em uma camada, mas do storage ao click do usuário.

ATENÇÃO: Esse é um tutorial prático, traga seu computador!

DIA DE TUTORIAIS 2 / Terça-feira

Dia:
Terça feira [ Meio Período ]

You keep hearing about Docker, but never had the opportunity to dive in and see it in action? Now is the time! In this hands-on workshop, you will learn about essential Docker concepts, how to run containers, create your own images, interact with the "Docker Hub", and more.

Tutorial outline:

  • What is Docker?
  • Running a first container
  • Introducing Docker Hub
  • Understanding Docker Images
  • Different types of containers and their uses
  • Building Images Interactively
  • Building Images with Dockerfile
  • Pushing and pulling images
  • Development workflow with Docker

No previous knowledge of Docker or containers is required, but you will need some basic command-line skills. You won't need to pre-install Docker before the course: each student will be given credentials to connect to an individual virtual machine. So all you need is a computer with a SSH client.

Dia:
Terça feira [ Meio Período ]

Técnicas como suporte a funções de alta ordem, imutabilidade, ênfase em funções puras, bibliotecas de concorrência nativas de alto nível, são algumas das propriedades que tornam linguagens de programação funcionais (ou híbridas) extremamente atrativas, num mundo como o que vivemos atualmente: abundância de processadores e foco em desempenho.

Porém uma propriedade importante de linguagens funcionais com tipagem estática acaba sendo negligenciada: o uso do sistema de tipos avançados como os de Scala e Haskell para promover código correto, com alto nível de modularidade e reutilizável.

Nesse tutorial vamos explorar como esses objetivos podem ser atingidos em Scala através de hands-on 100% práticos.

Conhecimento básico de Scala é recomendado mas não pré-requisito.

Dia:
Terça feira [ Meio Período ]

Relational databases have long been considered the one true way to persist enterprise data and even today are an excellent choice for many applications. But for some applications NoSQL databases are a viable alternative. They can simplify the persistence of complex data models and offer significantly better scalability and performance. But using NoSQL databases is very different from the ACID/SQL/JDBC/JPA world that we have become accustomed to, with different and unfamiliar APIs and a very different and usually limited transaction model. So what’s a Java developer to do?

In this tutorial we will describe polyglot persistence architectures, which use a mix of SQL and NoSQL databases. We will explore the modern database technology landscape, describing the capabilities of traditional and not so traditional SQL databases. You will learn about some popular NoSQL stores, their data models and Java APIs, benefits and drawbacks. We'll also explore how databases of various types are used in the microservices architecture.

Dia:
Terça feira [ Período Integral ]
As companies are becoming more and more agile, and see how they can now adapt in order to innovate and compete faster than their competition, software development teams are being forced to maintain and evolve large, monolithic applications at a pace of change that those architectures were never meant to withstand, let alone embrace.
 
Microservices are a new approach to architecting applications that embrace and thrive on change. They are simple, single-purpose, lightweight architectural components that enable you to deliver software faster. The microservice architectural approach also aims to lead to software that thrives on change while at the same time being secure, performant, and stable.
 
This hands-on, very practical tutorial will teach you how and why to design, deploy and manage microservice-based architectures. Usingmicroservices, this course will teach you how to build software that adapts as fast as your business and requirements do.
  • Defining Microservices in term of their Principles, Benefits and Challenges
  • Understand and explore the forces (stressors) of change on software
  • Organising for concerns and simple components
  • How to collaborate to discover change stressors on your software system
  • Organising components for change
  • Exploring and managing change-stressor fault-lines between areas of your system
  • Designing software bridges that handle change across fault-lines
  • Applying decoupling intelligently, balancing flexility and complexity
  • Applying Request-Response, Messaging and Events
  • Designing when to apply and implement Postel’s Law
  • Extracting components into Microservices
  • Building, Deploying and Managing Effective Unix-style Microservice Pipelines
  • Simplifying Microservice Management using Immutable Service Deployments
  • Designing and Implementing Reactive Microservices
  • Applying effective health and monitoring for microservices
  • Designing and Implementing Microservice Failover and Auto-Recovery Strategies using the Circuit Breaker Pattern and Friends
  • Designing and Implementing for Autonomy with Microservice ‘Cells'
  • Enabling Governance and Innovation with Microservices
  • Enabling Variation and Experimentation in Languages and Frameworks through Microservices
  • Testing stressors for failure to avoid failure
Dia:
Terça feira [ Período Integral ]

Um projeto ágil bem executado coloca ênfase em entregas de valor, de acordo com objetivos de negócios e as necessidades dos principais usuários. Promovem a liberação incremental de software – chegando ao MVP, o produto mínimo viável, ou versão mais simples de um produto que pode ser disponibilizada para o negócio.

Mas como realizar o entendimento do MVP e a iniciação do projeto ágil o mais rápido possível? E como garantir que o time comece o projeto com entendimento compartilhado, direção, prioridade e um plano bem definido? 

Conheça nesse tutorial a técnica "Direto ao Ponto", para compreender e planejar as entregas incrementais dos MVPs. Essa técnica organiza as ideias e funcionalidades em um modelo que ajuda a compreender o objetivo principal do produto, considerando as jornadas dos usuários e os incrementos de entrega. Com atividades eficazes e rápidas, a técnica desafia as considerações tradicionais de projeto, como análise de requisitos, estimativas, escopo, capacidade e planejamento detalhado.

Você será guiado a partir de uma visão do produto criação de um plano enxuto para entregas incrementais do MVP. Um produto real será selecionado e técnicas serão apresentadas e praticadas.

Ao final do tutorial os participantes terão aprendido teoria e atividades práticas sobre: visão de produto, personas,features, priorização, jornadas de usuário, mapeamento de valores, entendimento e esforço, extrapolação de estimativa, cálculo de capacidade, e compreensão e sequenciamento de MVP.

Tracks do ano passado

Covering innovative topics

Quarta-feira

  • Big Data, Data Science e o Poder dos Dados

    Como processar e alavancar grandes volumes de dados em ambientes distribuídos e complexos

  • Mobilidade: do nativo ao híbrido e além

    Domando desafios do desenvolvimento móvel e para dispositivos, do nativo ao híbrido à mobile web

  • Fronteiras do Desenvolvimento

    Novas técnicas e plataformas, e inovações em linguagens e ferramentas

  • Culturas de engenharia: criando equipes de desenvolvimento que funcionam

    Princípios, desafios e aprendizado para o máximo desempenho em times de software

  • Solutions Track #1

    Conheça soluções, ferramentas e técnicas de empresas parceiras do QCon Rio de Janeiro.

Quinta-feira

  • Desenvolvimento Web Full Stack

    Criando software para a Web, de UX e o front-end hiperinterativo ao back-end superescalável

  • Java: Inovação e Progresso

    Inovações em plataformas, frameworks, APIs e linguagens

  • Arquiteturas que Você Sempre Quis Conhecer

    Lições reais em aplicações inovadoras de alto volume e complexidade

  • DevOps e Continuous Delivery: De Projetos a Produtos

    Automações, técnicas e integrações para gerar produtos na velocidade da internet

  • Solutions Track #2

    Conheça soluções, ferramentas e técnicas de empresas parceiras do QCon Rio de Janeiro.

Inscreva-se

Descontos para inscrições antecipadas

Faixas de preço com descontos Conferência
(3 dias)
Conferência + 1 dia de Tutoriais
(4 dias)
Conferência + 2 dias de Tutoriais
(5 Dias)
Tutoriais
(2 dias)
Tutoriais
(1 dias)
até 9 de abril R$995 R$1.445 R$1.895 R$1.095 R$795
até 7 de maio R$1.195 R$1.645 R$2.045 R$1.195 R$795
ate 4 de junho R$1.295 R$1.745 R$2.195 R$ 1.295 R$795
até 7 de julho R$1.395 R$1.845 R$2.295 R$ 1.295 R$795
até 4 de agosto R$1.495 R$2.145 R$2.595 R$ 1.295 R$795
até 23 de agosto R$1.595 R$2.145 R$2.695 R$ 1.295 R$795
no dia do evento R$1.795 R$2.490 R$2.995 R$ 1.295 R$795

O que está incluso na Inscrição para a Conferência (3 dias)?

  • Acesso a 90 apresentações e mais de 100 palestrantes, incluindo 15+ apresentações internacionais
  • Networking permanente, com intervalos entre todas as palestras
  • Acesso ao hall de exposições com estandes das maiores empresas de desenvolvimento de sofware

Select Ticket(s)

Tipo de Inscrição Preço Quantidade
Conferência + 2 dias de Tutoriais
R$ 1.895
Conferência + 1 dia de Tutoriais
R$ 1.445
Conferência 3 dias
R$ 995
Tutoriais (2 dias)
R$ 1.095
Tutoriais (1 dia)
R$ 795

O que está incluso na Inscrição para os Tutoriais (2 dias)?

  • 12 ou mais tutoriais distribuídos pelos dois dias: segunda e terça (o número exato depende da extensão dos tutoriais fechados)
  • A escolha dos tutoriais é feita durante o próprio evento; não é necessário reservar antes
  • Tutoriais de dia inteiro incluem 7 horas de treinamento; tutoriais de meio-dia duram 3:30 horas
  • Os tutoriais no QCon são sessões de treinamento aprofundadas, apresentadas por profissionais praticantes e renomados na área – incluindo vários internacionais