I've studied computer science, did a lot of research during university in machine learning and databases but also touching psychology, and love to build things with the help of technology. This page is about my academic and technical background, projects can be found elsewhere.
Academic background and computer science
During my time as a student at university, I published three papers: Two about human behavior in online social networks and one on integrating a database encryption into the Database Abstraction Layer (DBAL).
Research on human behavior in social networks
In 2013, I wrote my bachelor thesis about a concept very similar to Cambridge Analytica. I basically built a Facebook app which showed how to extract information by increasingly requesting more and more permissions to access Facebook API data. As a result of this research, I published my first two papers. My masters thesis was about the impact of personality on the behavior of programmers. In particular, I examined the personality of programmers and how it affects their behavior on GitHub. To do this, I performed a study with over 1000 developers to establish a ground truth. With this data, it was possible to show significant effects of personality on programmers' behavior. We could for example show that programmers with specific personality traits prefer specific languages, libraries, stacks, and tools.
I have published the following papers in scientific journals so far:
- TEAL: Transparent Encryption for the Database Abstraction Layer. Proceedings of the CAiSE'16 Forum at the 28th International Conference on Advanced Information Systems Engineering, Ljubljana, Slovenia, 13-17.6.2016
- Assessment of subjective influence and trust with an online social network game. Computers in Human Behavior, Volume 64, November 2016.
- Gamification framework for personalized surveys on relationships in online social networks. 2013 IEEE/ACM 6th International Conference on Utility and Cloud Computing
I believe that people should focus on things that they can do better than machines. That's why I love to automate complex and time-consuming problems and thus many of my projects revolve around the automation of a specific task or are about the deduction of previously unknown information. To do this, I develop systems to gather the required data, build machine learning algorithms on top, and close the feedback loop to train the system with human training data.
My technical focus is build upon the following pillars:
- building prototypes and Minimum Viable Products as quick as possible
- crawling and scraping to gather required data
- data analysis and machine learning to perform automated decisions (natural language processing, classification)
- web development to build an interface for training data and data exploration
You can find projects I can talk about publicly in my portfolio.
In the last years, Python has become my main stack. The main reason might be that it allows me to do everything I love in the same stack: crawling, machine learning, and web development. I also like the syntax and the simplicity.
To give you an overview, these are the technologies I really enjoy working with:
- Crawling: scrapy, selenium, good old requests with Python
- Machine Learning: pandas, scikit-learn, spaCy with Python
- Web: Django, Flask, jinja with Python, and HTML/CSS
- Storage: Postgres, sqlite, elasticsearch, SQLAlchemy with SQL, Python
- Deployment: Docker, AWS, terraform, ansible, pytest, Makefile
- OS/IDE: Debian, i3wm, PyCharm, bash, git, ...
Other programming languages and tools I have used:
- for older projects I used PHP, Laravel, and MySQL. I especially liked the simplicity of Laravel but found myself preferring Django because of the ecosystem.
- in university, I used a lot of Java. I don't like the syntax and toolchain very much though.
My desktop environment
Currently, I'm running Debian with xfce and the i3 window manager. This allows me to use my keyboard and avoid the mouse most of the time. If you're interested, you can find my dotfiles on GitHub.