my knowledge my knowledge

Welcome to

Welcome to my programming corner on the Internet. You can find here basic informations on my work, cv, interests and some code examples.

I'm focused on programming applications backend i.e. client-server, protocols, database and middleware level. Oriented to open source technologies, I'm playing with several languages (C, C++, Java, Perl, PHP and recently Python), databases (PostgreSQL, MySQL, SQLite), operating systems (Linux, FreeBSD) and APIs (languages standard libraries, POSIX, Qt, POCO, Apache, ...). Mathematical education leads me to explore some topics on data structures, graphs and applied algorithms. In every day work I'm dealing with big amounts of data, so my intention is (beside that the applications work correct) to write clean code, easy to maintain and change, with no side-effects.

In the CV section you can find information on my work experience, projects that I worked on, and used technologies. If you have some work to be done, you can check Services section and see if some of my skills are suitable to you. Then you can contact me via Contact form. In the Code section you can find some programming stuff that I've found useful when experimenting with various technologies.



ay ay a ya ya

volatile vs. volatile

What does the volatile keyword mean? How should you use it? Confusingly, there are two common answers, because depending on the language you use volatile supports one or the other of two different programming techniques: lock-free programming, and dealing with 'unusual' memory.

Read more

What Every Dev Must Know About Multithreaded Apps

Ten years ago only hard-core systems programmers worried about the intricacies of writing correct code in the presence of more than one thread of execution. Most programmers stuck with sequential programs to avoid the problem altogether.

Read more

Move semantics and rvalue references in C++11

C++ has always produced fast programs. Unfortunately, until C++11, there has been an obstinate wart that slows down many C++ programs: the creation of temporary objects. Sometimes these temporary objects can be optimized away by the compiler (the return value optimization, for example).

Read more