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.
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.
I use Linux for almost all of my setups.
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.
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:
- Elastic Map-Reduce (EMR)
- Simple Queue Service
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.
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).