Perfil

Andre Fonseca @andre4


Sobre mim

-

Propostas

Brincando com a inteligência coletiva com Python

Muito se fala nos dias atuais sobre big data e a ciência de dados.  Cita-se coisas como massa de dados com PETA Bytes de informações, servidores super dimensionados e rebuscados algoritmos de machine learning. Tudo para isso para gerar coisas como recomendações, clusterização de usuários, análise de sentimentos,  detecção de padrões, etc.


A ideia é de mostrar como Python se encaixa perfeitamente nesse mundo e como vem sendo a ferramenta preferida do pessoal da área.  Outra coisa que gostaria nessa apresentação é mostrar que é possível fazer ciência de dados sem grandes massas de dados, com dados abertos que temos disponíveis - chamado de inteligencia coletiva por Pierry Levi (filosofo moderno que é o expoente no assunto).


 

Clean Architecture e Python

Mesmo os programadores experientes em design, patterns e arquitetura podem fazer grandes aplicações difíceis de manter. Venha aprender sobre como o recentemente proposto "Clean Architecture"  (proposta do Uncle Bob) se aplica em Python, e como este padrão de design de alto nível se encaixa particularmente bem com os recursos da linguagem Python e traz respostas a perguntas que os programadores experientes têm feito.

Código Python além do Pep8

Sempre que escrevemos um projeto em Python uma das primeiros coisas que as pessoas olham ao revisar é se tudo está de acordo com o Pep8. A questão que com isso podemos ficar cego para o que realmente importa na qualidade do código e se estamos seguindo os principios de código limpo,  bons padrões e se estamos com o melhor jeito daquilo ser implementado em Python.


Nessa apresentação é mostrar alguns casos e através de exemplos mostrar como podemos ser melhores. 

Criando backend de apps mobile com python

Muto se fala em criar apis RESTFUL e como python com suas libs e cultura facilita isso. Esse é um tema bem explorado e que as vezes nem atrai mais o interesse das pessoas para ouvir mais. Parece que tudo que tinha ser dito já foi. Porém quando pensamos em mundo mobile e tudo que que se refere, é preciso revisitar alguns conceitos e repensar soluções.  No mundo mobile, a forma dos dados, o tipo de dado trafegado, o tipo de conexão (é muito caro criar um conexão em 3G), a qualidade das redes (a maioria do tempo o usuário estará offline), a diversidade de aparelhos, versões (Android é um caos), etc, faz com que premissas antes verdadeiras e boas técnicas não seja algo tão bom para esse nova realidade. 


A idéia da palestra é mostrar quais foram os desafios que encontramos e também as soluções que adotamos, na construção do nosso backend para o Club de apps. Desafios de separação, monitoração,  curva de aprendizagem (o pessoal ainda é Javeiro),  mudança de cultura para ser algo mais ágil,  cultura de testes, uso de python na construção de serviços e admins, etc.


 

Criando backend em Python para aplicativos mobiles

Nessa palestra vou apresentar a experiência de criar api para um app mobile. Apresentar as escolhas técnicas que fizemos para escolher qual a melhor arquitetura para o nosso problema, qual as melhores opções de frameworks web, construção da nossa infra para suportar a carga. Além disso, vou contar a história de como convenci o pessoal da empresa que só usava Java a permitir que fizessemos esse novo serviço em Python.


Colocando em perspectiva, esse serviço hoje é responsável por mais de 80% do todo o tráfego, processa em torno de 6 milhês de mensagens ao dia.

Criando código eficicente em Python

Uma palestra para falarmos de como podemos criar código mais eficiente e elegante em Python: mostra boas práticas,  melhores estruturas de dados e códigos para que seu código python fica com melhor perfomance, mais elegante e com melhor desempenho.


Toda a palestra é baseada num livro muito bom que trata com profundidade o assunto. A idéia e trazer esse conteúdo com bastante exemplos práticos e com algumas vivencias minhas.

Indo além do pep8 - Escrevendo código elegante, claro, inteligente e consciso.

Sempre que começamos a trabalhar com python uma das primeiras coisas que a gente escuta e aprende são como fazermos o nosso código dentro das "guide lines" do python. Essas guides lines estão, em sua maioria, condensadas dentro da Pep8 e aborda várias coisas que vão desde espaçamento, forma de escrever funções, métodos, variáveis, etc.


A questão que simplesmente seguir esse conjunto de regras não garante que seu código seja Pythonico e consiga extrair o máximo dos recursos que a linguagem oferece.


A idéia dessa palestras é mostrar primeiros o que é o Pep8 e como ir além dele, conseguindo construir uma base de código conscisa, claro e boa.  Falar de coisas como clean code, uso de recursos que facilitam a cormpreensão (ex: contex, magic methods),  jeitos mais eficazes de escrever em python, etc.


 


Mais info:


https://www.youtube.com/watch?v=wf-BqAjZb8M


http://pyvideo.org/pycon-us-2015/beyond-pep-8-best-practices-for-beautiful-inte.html


https://www.reddit.com/r/programming/comments/3g8o2o/raymond_hettinger_beyond_pep_8_best_practices_for/

Indo além do pep8 - Escrevendo código elegante, claro, inteligente e consciso.

Sempre que começamos a trabalhar com python uma das primeiras coisas que a gente escuta e aprende são como fazermos o nosso código dentro das "guide lines" do python. Essas guides lines estão, em sua maioria, condensadas dentro da Pep8 e aborda várias coisas que vão desde espaçamento, forma de escrever funções, métodos, variáveis, etc.


 


A questão que simplesmente seguir esse conjunto de regras não garante que seu código seja Pythonico e consiga extrair o máximo dos recursos que a linguagem oferece.


 


A idéia dessa palestras é mostrar primeiros o que é o Pep8 e como ir além dele, conseguindo construir uma base de código conscisa, claro e boa.  Falar de coisas como clean code, uso de recursos que facilitam a cormpreensão (ex: contex, magic methods),  jeitos mais eficazes de escrever em python, etc.


 


 


 


Mais info:


 


https://www.youtube.com/watch?v=wf-BqAjZb8M


 


http://pyvideo.org/pycon-us-2015/beyond-pep-8-best-practices-for-beautiful-inte.html


 


https://www.reddit.com/r/programming/comments/3g8o2o/raymond_hettinger_beyond_pep_8_best_practices_for/

Indo além do pep8 - Escrevendo código elegante, claro, inteligente e consciso.

Sempre que começamos a trabalhar com python uma das primeiras coisas que a gente escuta e aprende são como fazermos o nosso código dentro das "guide lines" do python. Essas guides lines estão, em sua maioria, condensadas dentro da Pep8 e aborda várias coisas que vão desde espaçamento, forma de escrever funções, métodos, variáveis, etc.


A questão que simplesmente seguir esse conjunto de regras não garante que seu código seja Pythonico e consiga extrair o máximo dos recursos que a linguagem oferece.


A idéia dessa palestras é mostrar primeiros o que é o Pep8 e depois como ir além dele, conseguindo construir uma base de código conscisa, claro e boa.  Falar de coisas como clean code, uso de recursos que facilitam a cormpreensão (ex: contex, magic methods),  jeitos mais eficazes de escrever em python, clean code, design patterns, etc.


Mais info:


https://www.youtube.com/watch?v=wf-BqAjZb8M


http://pyvideo.org/pycon-us-2015/beyond-pep-8-best-practices-for-beautiful-inte.html


https://www.reddit.com/r/programming/comments/3g8o2o/raymond_hettinger_beyond_pep_8_best_practices_for/

Micro serviços e o problema dos dados distribuídos

Hoje todos ao projetar seus sistema buscam o paradigma de micro serviços, onde cada serviço / parte / sistema é responsável por uma parte do negócio. Isso ajuda em várias questões como escabilidade, distribuição, menor problemas de falhas em cascata, etc. O problema é que no mundo real, por mais que a premissa do micro serviços sejam independencia total, eles precisam de dados que são comuns. Num sistema de assinatura, um serviço de cobrança quer saber dados do usuário, assim como o sistema de playlist dele, e por aí vai.


O desafio está em como fazemos com os dados sejam "onipresentes" sem perder todas as vantagens de termos um sistema distribuído e sem adicionar muita complexidade.


A idéia dessa palestra é mostrar como dentro do contexto da empresa e do produto que atuo, fizemos e estamos pesquisando para resolver esse problema.  Vamos conversar sobre coisas sobre o que muitos tem chamado de Sistema de Dados orientados a Evento, stream de dados, kafka, logs distribuídos, transações e assincronismo. Claro que adicionando um bom tempero do python e como ele se encaixa como uma das peças que ajudam na solução final.


Mais info:


https://www.confluent.io/blog/data-dichotomy-rethinking-the-way-we-treat-data-and-services/


https://www.thoughtworks.com/insights/blog/scaling-microservices-event-stream


 

Micro serviços e o problema dos dados distribuídos

Ao projetar seus sistema a maoria das pessoas buscam o paradigma de micro serviços, onde cada serviço / parte / sistema é responsável por uma parte do negócio. Isso ajuda em várias questões como escabilidade, distribuição, menor problemas de falhas em cascata, etc. O problema é que no mundo real, por mais que a premissa do micro serviços sejam independencia total, eles precisam de dados que são comuns. Num sistema de assinatura, um serviço de cobrança quer saber dados do usuário, assim como o sistema de playlist dele, e por aí vai.


O desafio está em como fazemos com os dados sejam "onipresentes" sem perder todas as vantagens de termos um sistema distribuído e sem adicionar muita complexidade.


A idéia dessa palestra é mostrar como dentro do contexto da empresa e do produto que atuo, fizemos e estamos pesquisando para resolver esse problema.  Vamos conversar sobre coisas sobre o que muitos tem chamado de Sistema de Dados orientados a Evento, stream de dados, kafka, logs distribuídos, transações e assincronismo. Claro que adicionando um bom tempero do python e como ele se encaixa como uma das peças que ajudam na solução final.


 


Mais info:


https://www.confluent.io/blog/data-dichotomy-rethinking-the-way-we-treat-data-and-services/


https://www.thoughtworks.com/insights/blog/scaling-microservices-event-stream

Padrões e anti padrões de estabilidade

A grande maioria dos desenvolvedores tem a preocupação em implementar todas as funcionalidades dentro das especificações que o cliente fez.  Também buscamos entregar software sem bugs e fácil de dar manutenção (evoluir). Para isso nos utilizamos de recursos como testes automatizados,  técnicas de TDD e BDD, etc. 


A questão é que sistemas não só precisam entregar o que se pede mas também se preocupar em ser resilientes a falhas,  quebras e erro.


A idéia dessa palestra é mostrar alguns padrões de projeto que nos levam a ter sistemas mais prontos para produção; situações que devem ser evitadas e casos de estudos para aprendermos com os erros do autor.