I am a computer scientist whose main skills are in the field
of data analysis, pattern recognition, statistical software,
machine learning and large scale system design and integration.
I have developed systems using Neural Networks, Markov chains,
Support Vector Machines in various applications: OCR, image processing,
data analysis, text indexing and retrieval.
I am also proficient in 3D image visualization using common off the shelf
libraries and methodologies, either low or high level,
like OpenGL, DirectX, VTK, Java3D. I understand and use common ray tracing
I understand image processing topics like segmentation, thresholding,
classification. I have worked in the past in a 3d Face recognition European
project. I know the OpenCV library quite well.
In the field of "general programming" I have a good understanding
of Databases, multi threaded applications, sockets, pipes, encryption
(symmetric and asymmetric), compiler design, operating systems,
low level data structure in memory and on disk, data integrity.
I consider myself an expert in data structures and algorithms: trees, queues,
lists, b-trees, hash tables; I use standard libraries like STL, Boost, Java
generics. I have a good knowledge of SQL and data normalization however
I have also used custom No-SQL databases like Datadraw, MapDB, Tokyo
I know all the basic algorithms and templates used in every day coding;
regarding data integrity and security. Compression (lossy and lossless),
symmetric and asymmetric encryption, public certificates, I have worked
with OpenSSL programming, encrypted web services, packet sniffers.
I am proficient in all the common every day languages with an emphasis
on C++ and Perl. But I can use: Java, Python, Visual Basic, C#, PLSQL,
I know all the Object Oriented Programming concepts and design patterns
and I use them if the need arises, but I am also able to write
object-free programs in C or functional languages (like Haskell or Scheme).
I know modern version control systems like git and mercurial, even if
I can use also older ones like Subversion or CVS.
I know Windows programming and API quite well. I have used WPF and WCF
to create desktop applications in Windows and web services.
I have used Linux and Gui toolkits like Qt which are platform independent.
I know XML, XSL, I have used several parsers like the MsXML or Xpath. I
know how to validate a XML with a schema. I have worked with a team
that handled thousands of XML documents relating to air crashes in a
SQL server database.
I am able to talk and write in English with fluency.
If anything is not listed here either I have forgotten to list it or I can probably
learn it quite fast, so don't hesitate in asking!