Meu trabalho
Friday, 29 May 2009
Desde 1997 tenho codificado e planejado sistemas em diversas áreas. Atuei em dezenas de projetos e ministrei centenas de treinamentos. Na maior parte do tempo estou lendo sobre tecnologia, computadores, linguagens de programação, boas práticas, metodologias, linux, Java, Rails.
Posso ajudar seu projeto ou sua empresa de diversas maneiras:
Atuando como desenvolvedor em seu projeto
Tenho codificado muito desde que comecei minha carreira. Escrevi código C++, toneladas de código em Java, atualmente algumas centenas de linhas em Ruby. Fiz dezenas de programas utilizando arquitetura JavaEE, alguns client/servers usando sockets e RMI e até mesmo JavaME. Já aprendi e utilizei dezenas de frameworks Java (Struts, JSF, WebWork, Hibernate, Spring e dezenas de outros menores). Também estou curioso e dedicando algum tempo com Ruby, JRuby e Rails.
Como mentor para sua equipe
Após treinar seu time, gastar horas e um caminhão de dinheiro, muitas empresas estão animadas por começar aquele primeiro projeto Java. Os desenvolvedores querem começar JÁ! Mas… pode onde?
Projetos precisam de auxílio quanto ao uso de novas ferramentas e novos conceitos. O que você pode me dizer sobre seu controlador de versão? Você fará testes unitários? Usa alguma ferramenta para gerenciar pacotes e builds? Irá escrever seu Ant build file? Usará qual metodologia de desenvolvimento? Boas práticas?
Todo projeto, por mais simples que seja, demanda planejamento e ambiente adequado. E neste cenário o mentor, aquele desenvolvedor sênior com conhecimentos em ferramentas, metodologias e grande vivência no desenvolvimento de softwares, irá contribuir para que você estruture sua equipe e seu projeto desde o início.
Treinando sua equipe em diversas tecnologias
Posso treinar sua equipe na sua própria empresa. Programação Java ou Ruby, arquitetura e boas práticas, frameworks como JavaEE, JSF, Hibernate, Spring e também WebServices, UML, Design Patterns. Podemos montar um curso específico que atenda as necessidades da equipe ou do projeto.
Você também pode me encontrar ministrando cursos de Java e tecnologias relacionadas na Sun Microsystems do Brasil.
Planejando e definindo a arquitetura de seu sistema
Arquitetura não é a respeito de como seu sistema irá trabalhar mas de quão bem ele irá.
Nem sempre seu projeto falha por erro de requisitos funcionais. Muitos são os casos onde somente após o projeto pronto e em produção é observado que existe:
- muitos pontos de falha e nenhum tratamento
- performance pobre
- alto acoplamento entre componentes resultando em manutenções traumáticas
- testes fracos
- péssima usabilidade
Além de todas as responsabilidades com qualidades de sistema arquitetura de um software é a redução da complexidade através da abstração. Desacoplar módulos e torná-los coesos, selecionar o framework ideal para cada camada, aplicar design patterns de forma saudável, guiar o time durante as atividades são algumas das funções do arquiteto dentro do desenvolvimento de um sistema.
Após anos desenvolvendo para diversas empresas, estudando e especificando projetos, escolhendo e usando tecnologias e frameworks, posso ajudar definindo a arquitetura ideal para seu projeto.