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

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.

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.