My first work experience was in 2003. I was at high school, I did an internship in a biochemistry lab of the Federal University of Rio Grande do Sul (UFRGS), in Porto Alegre, my hometown. At the time, Prof. Dr. Diogo Onofre Gomes de Souza and his team were doing courses about memory and learning to students of four public high schools. I was chosen to be one of the 10 students of my school who were going to attend the courses. In the end of the courses, among the 40 students, they have chosen 4 to do an one-year internship in the Biochemistry lab. Fortunately, I was one of these students. The internship experience was so good that even when I started my bachelor's degree studies in Computer Science (that is, something not directly related to biochemistry) I've been invited to continue doing my internship with Prof. Diogo. And I stayed there for 5 years, from November 2003 until July 2008, when I left Brazil in order to start my double degree studies in Grenoble, France. In the beginning of this internship, my activities were all related to biochemistry and biology (manipulation of chemical compounds and animal experimentation - white mice and rats, just like in the movies). However, as I was doing my studies in Computer Science, I started to mainly perform computer-related activities (article redaction, data manipulation) and from 2006 until mid-2008 I administrated their website and developed software for image manipulation and densitometry.
In the end of the first academic year in Grenoble, I had to do a six-month internship in order to validate my French Engineer's degree. I did my internship at Bull S.A.S., a French computer company in Echirolles, a city in the suburbs of Grenoble. My advisors were (the not yet Dr.) Walter Rudametkin and Dr. François Exertier. This internship consisted in creating a real-time prototype of the JOnAS 5 Application Server, by means of bytecode injection of RTSJ-compliant code. This subject was proposed by Walter Rudametkin and his PhD Advisor, Prof. Dr. Didier Donsez.
Knowing that I'd have to do another internship in the following year, Walter and Didier offered me a research internship in their laboratory at LIG (Grenoble Informatics Laboratory), involving real-time, Java and OSGi. As these three words were topics that interested me a lot, I accepted. This second internship consisted of studying the impacts of real-time constraints in OSGi and, at same time, the impact of OSGi's dynamism in real-time Java applications. The conflict between real-time and dynamism in Java interested me so much, that I decided to do my PhD studies on it.
My PhD studies were financed by Bull S.A.S., where I was employed as a R&D Engineer. You may find more about my thesis subject below.
Two weeks after presenting my PhD thesis, in november 2013, I started working at Murex, a financial software editor in Paris. I was hired as a junior developer in the Core Technologies - Workflow development team, led back then by Ms. Nadine Daccache. This team was responsible for MxMLExchange, the post trade workflow engine of old MX.G2000 and MX.3. I was hired to be the dev lead of the business rules engine module, responsible for storing and executing business rules developed in several technologies (SQL, XSL, Java and other proprietary formats).
Fast forward to the present day, I am the current Architect and Software Function Owner of MxMLExchange, and team lead of 7 very competent developers. I am also the operational manager of some of these developers.
My daily work involves the following keywords:
- Java (Migrating from Java 8 to 11)
- Issues arising from distributed and multithreaded applications
- Continuous integration/deployment solutions like Jenkins/CJE
- Messaging-based integration solutions for Java like Apache Camel and JMS
- Dependency injection (through Spring and CDI)
- Project management tools like Git/Perforce, Apache Maven, Sonar
- TDD (Junit), BDD (Cucumber)
- Agile/Scrum methodologies, from daily stand ups to retrospective facilitation
- A good amount of IntelliJ, although Sublime is quite nice for non-Java stuff
- Operational management tasks in general (support, regular meetings and feedback)
- Technical design and documentation
- Level 3 support
In 2005, I started my undergraduate degree studies in Computer Science at the Federal University of Rio Grande do Sul (UFRGS), one of the biggest and best universities in Brazil. These studies consisted of a nine-semester program, in which we had courses of the main domains of Computer Science (Computational theory, Artificial Intelligence, Computer Graphics, Image Processing, Operating Systems, Algorithm Complexity, etc). In the seventh semester (2008/1), I was chosen to be one of the students who could finish his undergraduate degree studies in other country, in order to obtain a Double Degree. Since I could speak French fluently, I have chosen Grenoble as destination.
During 2 years, I studied at Grenoble Institut of Technology (formerly INPG) and obtained an Engineer (academic specialization in Information Systems Engineering) and a Master (specialization in Information Systems and Advanced Software Engineering) degrees from ENSIMAG (École Nationale Supérieure d'Informatique et Mathématiques Appliquées de Grenoble, one of the best Informatics schools in France), both with Mention Bien. Back to Brazil, I got my BSc Degree in Computer Science in September 2010, with Laurea Academica (an award given to those who obtained an A ranking on over 80% of courses) as well as the Highlight Student Award from the Brazilian Society of Computer Science.
I have earned a doctoral degree in Computer Science from the University of Grenoble in November 2013. My thesis subject was entitled "A component meta-model for the design of flexible and modular real-time applications", and it was supervised by Prof. Dr. Didier Donsez. In my reading and examination committee there were Profs. Lionel Seinturier, Jean Bézivin (reading commitee), Frédéric Mallet, Andy Wellings (examination committee) and Florence Maraninchi (chair). At Bull, my thesis was supervised by Dr. François Exertier and M. Frédéric Soinne.
If you want to know a bit more about my thesis project, you can download the manuscript in the link below:
Download PhD Thesis manuscript
- Portuguese: Native Language.
- English: Fluent (Gold level at TOEIC, in 2009). I started learning it at school, when I was 10 years old. Some of my favorite bands at the time were american or english. That encouraged me to improve my english skills, what turned out to be very useful afterwards, when I started reading scientific papers and studying computer science.
- French: Fluent (C1 Level, according to CECR, in 2009). French is my second language, I speak it since I'm 5 years old. I had french classes during the whole primary education (8 years, in Brazil). I still have a slight accent, but that's part of life.
- Japanese and Greek: I've started getting Japanese and Greek lessons, but did not have enough time yet to learn more than notions of both languages.
I can also use Java, J2EE, JSP, Servlets, JSF, XML, XHTML, GWT and Web Services.
I'm more into the back-end part of the systems though.
At the university, I have learned to program in Pascal, C/C++, Java and Python (in that order, which does not mean preference).
I'd say that Java is the language I'm more used to program in, and by far, the language which I have more experience with.
- Database: SQL Server (Derby, HSQL, MySQL), Oracle
- Operating Systems: Linux (Work), Windows (Work), Mac OS (My laptop), Solaris (Master thesis)
- IDEs: IntelliJ, Eclipse.
- Project Management Tools: SVN/Perforce, Maven, Ant, Git, Jenkins, Sonar.
- Unit test: JUnit, Mockito, Cucumber
- Others: LaTeX, Android SDK