Profile

Andre Fonseca @andre4


About Me

Sou um profissional com mais de 15 anos de experiência em diversas empresas
Destes anos a maioria foi com desenvolvimento de software, utilizando diversas
linguagens e tecnologias, como Java, Javascript, Python, Ruby, Golang, Scala, entre
outras.
Hoje sou responsavel pelo time de data engineering da Opera / Bemobi.

Proposals

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.

Design Patterns e Python - Oque faz sentido e como usá-los

Todos que trabalham como desenvolvedores de software já ouviu, leu ou conhece padrões de projetos (Design Pattern). Eles foram definidos e apresentados por volta de 1999 pelo famoso Gang of Four no livro de mesmo nome. O que temos que entender que na época, as linguagens principais eram Java e C++. Sendo assim, os padrões de projetos foram desenvolvidos dentro  das possibilidades e limitações dessas citadas. 


Com o crescimento do uso de novas linguagens com outros paradigmas (Funcoes como Cidadão de primeira classe, Duck Typing, Ghost Class,  monkey patchs, etc) - Python se inclui aqui - será que ainda faz sentido esses padrões de projetos? 


A ideia da palestra é mostrar que faz sentido pelo menos conhecer e que eles não devem ser posto de lado. Além disso, a ideia é apresentar como os famosos padrões se encaixam e podem ser usados dentro de projetos escritos em Python. Ex: Como implementar o Factory Method, Composition dentro de Python,  Proxy Class, Adapters,  DAO, etc. 

Guia do pythonista da galaxia

A nossa comunidade vem crescendo bastante nos ultimos tempos e com isso vários novos desenvolvedores não tão experientes ainda chegaram e com eles famosas perguntas como :  Por onde começo ? O que estudar ? Onde estudar? Faço um curso ? Qual curso? 


A ideia é mostrar um guia pratico baseado nas experiencias coletadas e nas varias interacoes que ja tive com menos experientes do que acredito ser um bom inicio de jornada na galaxia python ,.

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/

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/

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

O que fazer quando o banco de dados atrapalha

Muito se fala em escalabilidade e como fazer nossos sistemas atingirem marcas de alta disponibilidade,  alto volume de acesso, etc.  Nisso, buscamos soluções que envolvem linguagens, plataformas, arquiteturas, tudo no intuito de melhorar.  Porém pouco se fala no banco de dados. No máximo trocamos de um SQL na o NOSql na esperança que ele pouco atrapalhe.


A maioria dos nossos sistemas lidam com dados e seus estados e para isso usam banco de dados.  Como fazer quando os banco de dados se tornam o grande problema e passam a atrapalhar mais do que ajudar no crescimentos de uma API por exemplo.


A ideia dessa palestra é mostrar uma alternativa que vem sendo usada por várias empresas de grande porte e como venho usando ela para conseguir sem gastar muito com máquinas atender com alta disponiblidade a mais de 20 mil requests por minuto.

O Zen do Python

Palestra introdutória do python visando mostrar o que é a linguagem, seu contexto e ecossistema. Apresentar alguns de seus recursos e curiosidades. Falar aqui da história, do seu criador,  de como instalar e começar com a linguagem que vem se tornando a queridinha de todos os programadores.


Vamos falar também aqui um pouco do porque ela tem sido escolhida pelo pessoal da ciencia de dados, da sua filosofia  e etc.

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.

Python e a Ciencia de Dados

Palestra para mostrar porque Python se encaixa perfeitamente nesse mundo e como vem sendo a ferramenta preferida dos cientistas de dados.  Focado em quem está começando ou quer começar na ciencia de dados, a palestra visa apresentar a linguagem python, porque ela tem sido a escolha numero um dos cientistas de dados,  quais bibliotecas e recursos que temos para manipular dados, quais são os primeiros passos, etc.  Mostrar também que não precisa de muita coisa e grandes infrastruturas para começar a "brincar com dados".


Falar sobre api publicas,  iniciativas de engajamento politicos com dados, raspagem de dados,  e assunto similares.

Python e Ciencia de Dados

A informação é o novo petróleo de nossa época e demonstrar que saber lidar com essa quantidade abundante de informação e extrair conclusões delas é a nova habilidade desejada por todos no mercado de TI. Todos querem ser ou ter o famoso cientista de dados. 


Umas das habilidades de um cientista de dados é o dominio da matemática associada. Outra habilidade é a capacidade de criar sistemas que apliquem a matemática aos grandes conjuntos de dados para com isso extrair informações validas. É aí que entra o Python. 


Python hoje é a grande linguagem por trás de quase todos os sistemas de grandes volumes de dados, como por exemplo: Pyspark,  jupyter, pandas, numpy, scikitlearn, etc.


Nessa palestra vou apresentar a minha visão da ciencia de dados,  os caminhos a percorrer e como python se encaixa nisso tudo, tornando-se a peça chave para o sucesso.