Programming Languages

I started with PHP in my youth and later switched to Python. I also dived into low-level programming with C for OS programming starters. For Windows programming I usually use C#. Recently I started learning Erlang to learn an easy-to-distribute functional language. Next step will probably be Go for a command line interface, because Go can be compiled and then deployed as a binary.

At the end of the day, my target is to be able to know many different languages and systems, so that I can choose the one best suited for each problem.

Hosting

I host my websites with an nginx web server and HAproxy as a load balancer.

Some of my websites are static HTML from the static website generators Middleman and Jekyll, while others are Python based with the flask framework. Before, I also worked with the Django framework and even before that I programmed my websites in PHP without any framework, with a self written MVC framework and with Zend and Symfony.

I use docker for deployment, because it provides me a nice way of isolating different components on one server which might move to different servers later. The actual deployment I do with ansible, which works through SSH.

For my projects I chose among the different available databases. Up to now I used MySQL and PostgreSQL in a lot of projects, MongoDB as a document store, SQLite for smaller projects, and Elasticsearch for text search and in the EFK stack (Elasticsearch, fluentd, Kibana) for log processing. I have also used Redis as an in-memory store.

Operating Systems

I use Linux for almost all of my setups.

To understand operating systems better I started a tutorial series in German about programming an own operating system called SOS.

User Interface

Most of my private projects are controlled from the command line and do not have a GUI. In this regard, I also prefer to work with the command line for programming tasks. At work however, I also program applications with graphical user interfaces.

Cloud Computing

I use Amazon AWS in my private life for (encrypted) backups and from time to time I try some of their new services. Up to now I have used the following services, from which I still use some actively:

Search Engine Programming

As a hobby I engage myself in search engine architecture and programming. This also involves developing my own systems. Currently, I use Scrapy for crawling, Apache Kafka for processing of the documents and Elasticsearch as the search index.

Data Science

I participate in different kaggle competitions. For these, I use the Python packages available for data science. I tried R at the beginning, but then continued using Python. I do my data exploration with jupyter notebooks and seaborn and train the models with scikit-learn. If I am interested I also do my own data science projects from data aquisition to analysis, like my analysis of the Austrian car market (in German).