Rafael has been a software developer since 2002 working on Java enterprise applications with very different clients and project roles. He has also worked as course instructor on advanced object oriented topics (DDD), test driven development and various frameworks and standard APIs. As a software architect he has helped to define and audit best practices used on different types of project taking in consideration the particular quality requirements of each of them.