Starting from simple projects at the university like a spaceship simulator, a mp3 player and many others involving few students, I've always been motivated to materialize ideas while providing the best design. It lead me to advice small companies on their software systems and to design websites for restaurants and independent professionals.
During my studies at ENSIMAG I learnt Project Management popular methodologies in Software development such as AGILE and LEAN combined with common techniques such as Gantt and PERT. I've applied those techniques to complete many software projects and participated to a significant industrial project to implement a specific wireless network over the city campus.
During my career, I've been assigned projects of different scopes and difficulties. Some, like the "Genome Visualization Tool" at the Kyoto University, were involving no more than few persons and allowed me to be flexible and dynamic. Some others, like the Australian Governmental Website, had a lot of strict constraints and third party companies involved, requiring a lot of communication, organization and trade-offs during the implementation.
Motivated by my ideas, I specified, designed and implemented some personal software projects such as my photo websites and the "Empire Defense" game. I have learnt to be the manager but also the one implementing the specification and following the plan.
Nowadays, I often read project manager blogs and entrepreneurs stories in order to get tips and news ideas to keep improving my project management skills..
Leading and managing people are part of my nature. I've always been organizing events for the people around me, from simple projects to long trips around the world.
During my travels and my work in those countries, I've learned the difference of people behaviors, skills and abilities to perform better some tasks than other ones. It now helps me to motivate and organize them.
With my different missions, I managed few engineers, sometimes to implement a project, sometimes to train them. I've always encouraged the communication with them to maintain a good relationship and also to share our knowledge.
In my personal projects, I've also been leading with success some strategic game events requiring precise coordination between few hundreds of persons.
I often follow some training on communication and better people understanding, such as the MBTI, to improve my team management.
From compiled assembly to the functional metaprogramming, I've been working through different sides of the design and development using C/C++. Working in low-level C code while developing for the NVidia drivers, I learnt the effects of code optimization to match hardware specific components.
While programming my game "Empire-Defense" I focused on clean and efficient code. I went through different popular patterns to improve the readability of the code. I took the opportunity to become familiar with the last standards like C++11, Boost and compiler like clang/llvm.
During different projects like the design & development of the seismic data analysis library I've been working on concurrent execution for thousands of processing units.
My passion for C++ comes from its efficiency and the full control it gives to the developer. It is the first language I learnt, 15 years ago. It is the one I mostly used during my projects and studies.
I've been developing many websites for personal and professional use. Most of them got in common the usage of HTML, CSS and Javascript.
I started Javascript without library and build my own ones for different projects. After the popularization of libraries like jQuery, Prototype, I became familiar with those providing a efficient way to implement new features. During my last development I used CoffeeScript to bring a less time-consuminng and more readable libraries.
My first HTML pages were created in 1996. Based on static HTML, I quickly moved to php to write dynamic content. Nowadays, I use HAML as a template for HTML as it is faster to write and also more readable.
I've been following the HTML progress and its the best practices to provide a quick rendering for the user. I try to separate as much as possible the HTML from the CSS and Javascript to be able to keep the code clean, maintainable and modular. I also practiced with the new HTML5 elements like the Canvas, WebGL, Audio component, Storage, WebSockets to provide an attractive experience.
Passionate by Ruby and RubyOnRails, I built my recent web sites and services using that technology. I'm familiar with most of the popular gems, databases, and enjoy the efficient development it provides.
I also often had to develop in PHP for my CMS I was using. My experience with it is limited to the development of plugins and simple websites.
To follow the enterprise standards for Web services, I learnt J2EE during school and used it to develop services during my last work in Australia.
Starting with my first online servers, I used bash and scripts more and more often. It is now part of my everyday work and I use different languages depending of the tasks I have to perform.
I became also familiar with the Linux system and configuration. I use my own scripts to deploy my stage and production servers from the scratch, as well as my web applications directly from their sources.
Lead by my passion, I brought few games live, including a sophisticated one and participated to the development of few game servers.
I've been working of the different aspect of the game development from the server to the sound engine of the client including the game resources, the data persistence, the developing tools and many others.
I'm regularly following the news about game development, from the graphic engine to the network protocols and server optimizations.
My experience at NVidia gave me the knowledge to develop powerful graphic engine inspired by the other games I was working on.