Iniciei na programação para web em 2006. Passei os primeiros dois anos trabalhando somente com Java e seus diversos frameworks e ferramentas, tais como jUnit, ANT, TomCat e jBoss, Hibernate, Struts, entre outros.

Sempre atento às novidades do mundo ágil, começei a estudar Ruby e ferramentas que pudessem me ajudar a tornar o desenvolvimento de software mais simples e objetivo. Empolgado nos estudos, aprendi sobre estratégias de orientação a objetos, padrões de arquitetura, desenvolvimento orientado a testes e comportamento, modelagem ágil, metaprogramação e outras práticas ágeis.

Trabalho com Ruby profissionalmente desde 2007 e por estes trilhos desenvolvi vários estudos sobre a linguagem de programação, frameworks, Inteligência Artificial e ferramentas ágeis. Dentre os trabalhos desenvolvidos posso citar:

Atualmente, estou concluindo o Bacharelado em Sistemas de Informação e tenho dois artigos, em fase de publicação, na área de programação voltada para os domínios específicos da linguagem. Os artigos têm os seguintes títulos:

Objetivo

Desenvolver e entregar software de valor, com qualidade e excelência. Seguindo os princípios ágeis, compartilhar conhecimento e adquirir novas habilidades com a equipe. Conhecer novas técnologias e áreas de negócio, assim como agregar valor para a empresa com minhas qualificações e objetos de estudo.

Experiência

A qualificação de um profissional de TI em geral tem um peso maior que a qualificação acadêmica. Por tal aspecto, apresento algumas experiências:

Empresas que trabalhei

Durante o período em que trabalhei na TJ Sistemas tive grande aprendizado, foram dois anos exclusivamente em Linux (sem interface gráfica) com mcEdit e desenvolvimento com FlagShip. Na segunda empresa, Leosoft, começei a estudar várias linguagens e partir para o mundo Web. Também tive a oportunidade de compartilhar de práticas e projetos ágeis.

empresa de - até
TJ Sistemas 02/2004 - 04/2006
Leosoft 05/2006 - 01/2010
Executive 02/2010 - 02/2011
Freelancer e Inventto 02/2011 até hoje :D

Atualmente estou trabalhando como Consultor e FreeLancer e mantendo o site http://ideia.me.

Linguagens de programação

As linguagens de programação e o conhecimento aprofundado sobre elas, são qualificações desejáveis para um desenvolvedor. A busca por novas linguagens me trouxe várias mudanças na forma de pensar e arquitetar sistemas de computador. Dedico-me ao constante aprendizado das linguagens de programação e, atualmente, estudo Objective-C.

Segue a lista das linguagens que venho usando:

qual usando desde
Ruby 2007
JavaScript 2006
Java 2006
SQL 2004
HTML 2006
DHTML 2007
CSS 2008
Shell 2004
PlPgSql 2005
LaTex 2008
FlagShip 2004 até 2006

Métodologias de desenvolvimento

As métodologias de desenvolvimento são as maneiras de se fazer o projeto de software acontecer. Através de práticas, princípios e valores, é possível estabelecer uma filosofia de trabalho e um ciclo de desenvolvimento/entrega de software.

Dentre as métodologias com que trabalhei, identifico-me mais com a Extremme Programming(XP). Esta métodologia é composta por um conjunto de características de desenvolvimento de software que deram certo. Sou adepto às suas boas práticas de desenvolvimento, assim como as atitudes de relacionamento com o cliente.

Acredito na forma humanizada que a XP encara os papéis em um projeto, o que permite evitar alguns enganos cometidos usando outros métodos processuais (ao que pude constatar em minha experiência). Trabalho com XP desde 2006 e gostaria de continuar aplicando suas ideias na medida do possível.

Comunicação

Acredito que tenho uma boa habilidade de comunicação. Estou sempre disposto a ministrar palestras, workshops e cursos. Nos últimos 3 anos ensinei sobre:

Também coordenei reuniões, iterações e planejamento de projetos com frequência. Apoio a objetividade das reuniões em pé e brainstorms com início e fim.

Ferramentas de Desenvolvimento

O ferramental para mim é algo extremamente necessário. Através do bom uso e habilidade, é possível ganhar agilidade na execução qualquer tipo de tarefa, além de enriquecer o software com qualidade, padronização, documentação entre outros. Um dos principais motivos de utilizar o Linux é a facilidade de acesso a este ferramental e acredito que isso faz toda a diferença para programar. Minhas preferidas são:

qual usando desde explicação
Terminal Linux 2004 Linha de comando Linux
Vim Editor 2007 Editor de textos programável
FireBug 2007 Plugin para inspecionamento de JavaScript, HTML e CSS.
Git 2008 Gerenciador de versões (semelhante a SVN, CVS)
Cucumber 2008 Ferramenta para criar cenários e teste do comportamento do software
Integration plugin 2007 Plugin para integração contínua com a equipe de desenvolvimento

Bibliotecas e Frameworks

As bibliotecas de programação, de modo geral, fazem todo trabalho repetitivo e abstraem problemas comuns no desenvolvimento. Também funcionam como sistemas pré-programados que permitem ser configurados e executados com menor esforço. Cada biblioteca serve para facilitar uma ou mais tarefas com objetivo específico, ou podem estar empacotados em MetaFrameworks como o Rails. As principais bibliotecas/frameworks que utilizo são:

Biblioteca usando desde explicação
Rails 2007 Framework para desenvolvimento de aplicativos web
Prototype JS 2006 Biblioteca utilitária para programação em JavaScript
rSpec 2007 Ferramenta para testes de comportamento do software

Também trabalhei com muitas bibliotecas e sistemas auxiliares como Selenium, iReport, WebRat, Rake, FunFx, NewGem, Markdown, Liquid, Zen Autotest, WebOrb, RestFulX, etc.


Share → Twitter Facebook Linkedin


Hello there, my name is Jônatas Davi Paganini and this is my personal blog.
I'm developer advocate at Timescale and I also have a few open source projects on github.

Check my talks or connect with me via linkedin / twitter / github / instagram / facebook / strava / meetup.