I completed my PhD in computer graphics at Paul Sabatier University, Toulouse, France, in 1996. My research dealt about ray-tracing, 3D visualization, voxelization, robust voxelization, octree, 3D rendering, implicit surfaces, point rendering and interval arithmetic.
Prior to my Masters' degree I had ample experience in embedded and concurrent programming while I was a professional 8085 Assembler programmer. I also had a fair experience with the microcontrollers: 8048, 8035, and a little bit of 8051. Before that I already had extensive experience with numerous high level languages. During my Masters' in computer science, my main interests were in the areas of computer graphics and computer architectures, among others. I started programming in C language and also used some 8086 Assembly for writing a device driver for the EGA graphics card to be used in my first color GUI-based application.
During my post-doc at SUNY Stony Brook and Duke University, I continued my research in computer graphics and started research in parallel processing, proposing a new dynamic load balancing algorithm for multiprocessing memory shared machines. I also started programming in C++.
I then switched from an academic position of Senior Lecturer in London to a C++ Software Engineer position in a computer graphics company in Toulouse, France, where I dealt with multi-spectral ray-tracing for military applications.
After this experience, I switched back to an academic position of Assistant Professor in Singapore and of "Professeur Agrégé" in Montreal, Canada. I acquired Canadian citizenship and started a career in Java Android development in Motorola, Samsung, and Sony Ericson. This experience allowed me to have a very good perception of the problem of the use of frameworks for GUI development, starting with Java Android and now in Java desktop.
I have been nowadays studying and developing several tools for developing GUIs using vector graphics as a way to obtain portable and multiplatform GUIs. I studied, used and modified several vector graphics open source packages (FreeHEP, PDFBox and Opentype.js) for transforming Java vector to other vector formats, to generate PDF and to use vectorfonts and vector typography on desktops and embedded applications as well as to automatically generateformatted texts in PDF.
My recent interest has been also extended to ways to have web applications using the same code as in desktop and embedded applications, particularly (vector) GUIs. I arrived to the conclusion that the best way to accomplish that and at the same time have the best performance in GUIs is using GLSL shaders.