I've been extremely disappointed with University: with the exception of Mathematics and Physics, the notions which were being taught were quite outdated, and most of the time unreliable. Witnessing the thesis defense of a certain (now appointed) engineer, and fully aware of the amount and quality of his knowledge, I decided to follow my own independent formative path.
I've participated in various open source projects, which allowed me not only to gain proficiency with different programming languages but also made me get accostomed with projects maintained in ways which allow great numbers of developers to contribute and develop without interfering with each other's work.
In the meanwhile, I've partaken in some jobs covered by NDA, which rewarded me with a decent amount of expertise in various fields.

Such expertise revealed to be fundamental for my current job, where I've been able to join right away a project already in development for years (and for a big client such as Magneti Marelli, working on a product for Alfa Romeo) without any internal training, if not for project-specific details. Approximately, I've contributed 5 bug fixes or feature implementations per week since my second week on the project, for a development cycle which lasted for more than a year.

With time I've been tasked with the direction and design of various projects focused on voice and intent recognition and the development of intuitive VUIs (voice user interfaces).
The most interesting project has definitely been developing a framework to create, deploy and manage multimodal virtual assistants able to maintain the same conversation with the user across different channels. An implementation is available here.

Better to light a candle than to curse the darkness (Laozi)

This is something I believe to be fundamental: if problems are there, they should be dealt with.
It's far too often possible to observe people (especially programmers) getting troubled by issues which make them lose time (and temper). Yet, instead of dealing with what is causing the current problem, they tend to use dirty workarounds to get through... Just to face a new issue right after.
Being able to choose the right tool and methodology for the job usually avoids such loop, both making the worker less stressed and making him do a better job overall!

  • I'm a great software developer! I have expertise with various programming languages, coupled with strong logical thinking capabilities which allow me to use them to the best of my ability.
  • I'm able to set up and administer Linux, Unix and Windows systems!
  • I'm quite versatile, and a fast learner for new technologies and methodologies!
  • I know how to rack my brain (both alone and in a group) to come out with the best solutions for the given problems! As long as it's possible to rationalize a problem, the solution will always be at hand!

For a detailed list of what I can do and use, look below!

  • Ruby (vanilla, Ruby on Rails)
  • Shell (zsh, bash, csh, ksh)
  • C
  • C++
  • JavaScript (vanilla, nodejs)
  • Python (2.6, 2.7)
  • Java (8+)
  • php (7.0+)
  • HTML
  • XML
  • LaTeX
  • CSS
  • SASS
  • Linux (Arch, deb-based, rpm-based)
  • Unix (FreeBSD, SunOS, Solaris, OpenSolaris, IllumOS))
  • Windows (XP, Vista, 7, 8, 8.1, 10)
  • Android (developing from 6.0 onwards)
  • Amazon AWS (EC2, Lambda)
  • Android Studio (for Android 6.0 and onwards)
  • Audacity
  • CLI (command line interface/shell/terminal)
  • CUPS
  • Eclipse
  • GIMP
  • GTK3
  • Google Cloud Platform (Compute Engine, APIs)
  • LibreOffice
  • Microsoft Office
  • Netbeans
  • OpenOffice
  • TeamViewer
  • VMware
  • VNC (tightvnc)
  • VUI (vocal user interface)
  • Vim
  • VirtualBox
  • Zimbra (installation and administration)
  • ftp (usage and administration)
  • git
  • mercurial
  • samba (usage and administration)
  • ssh
  • svn
  • zfs (Zettabyte File System)
  • Aikido
  • Analysis and rationalization of problems
  • English (advanced)
  • Fast learner
  • Fencing
  • French (baguette entry level)
  • Good memory
  • Good tolerance for children more than 40 years old
  • Good with animals
  • Good with children (but less than with animals)
  • I enjoy learning useful things (within human limits)
  • Japanese (basic-intermediate)
  • Deductive logical thinking
  • Meritocratic: the (correct) knowledge is the best measure!
  • Platinum trophy of Bloodborne (it had to be here)
  • Problem solving
  • Scuba diving license (although quite old)