Software & Projects

I build my own software, and over the years I have written software for many projects. Both are collected here.

Software

Distill

Distill is a “read it later” and knowledge inbox for Mac, iPhone and iPad: collect articles, links, text, images and PDFs in one place, read them at your own pace, summarize and categorize them, and sync everything privately across your devices via iCloud. More about Distill

Website Analyzer

A native website crawler with SEO analysis for Mac and iPad: checks every link, collects per-page SEO data, and shows the structure as an interactive link graph. More about it.

One Line a Day

A journaling app built on one idea: one line a day, up to 300 characters. On any date it shows what you wrote on that day in previous years, and entries sync privately via iCloud. More about it.

Toms GymTracker

A lean workout journal for the gym, for your iPhone: log sets, weight, and reps in seconds and see your strength progress per exercise over time. More about it.

Sodalis

Helps you keep your friendships and personal network alive, for Mac, iPhone, and iPad: sort people into circles with their own rhythm, get reminded in time, keep conversation notes, and see who knows whom in the relationship graph. More about it.

Projects

This is a selection of projects for which I have written software. Due to confidentiality agreements, not all projects can be listed.

Dividend Income Calculator 2024

A tool written in R/Shiny to estimate dividend income based on several parameters.

Common Crawl Host Web Graph Sample 2022

A tool written for my paper Analyzing the Web: Are Top Websites Lists a Good Choice for Research?.

Corona Dashboard / Personal project 2020

A dashboard built with R, ggplot2 and Shiny showing current figures on COVID-19 from various data sources.

Liquidity Simulation / Euler Hermes 2020

A Shiny app written in R that displays potential liquidity scenarios in real time based on parameters and random variables. It won the Digitaler-Leuchtturm Award for Insurance in 2020, presented by Süddeutsche Zeitung and Google.

Personas based on Amazon reviews / Interone 2018

Using reviewers’ profiles and their reviews of different products, clusters of users with similar purchases were identified. Written in R.

Actionable Dashboard / Interone 2018

Replaced an existing dashboard that had been fed with meaningless numbers. This new dashboard shows visibility in media and search engines for specific topics based on Sistrix and feed data, and links it to goal attainment in an actionable way. User experience was also measured via page speed. All data was benchmarked against competitors and included forecasts. I designed the dashboard and wrote part of the data acquisition, aggregation and analysis in R.

Supra, an ML-based assistant for search engine optimization / Interone 2018

An ML-based assistant for search engine optimization that analyzes the ranking for search terms and the associated page and suggests actions. It won a Webby Award in the category BEST USE OF MACHINE LEARNING. I wrote parts of it in Python and R.

Google Analytics-based personas / Interone 2017

Based on raw Google Analytics data and demographic data, personas are created from page-view sequences, and the probability of gender, age and interests is calculated using Naive Bayes. The software was written in R. This project is not to be confused with the approach of creating data-based personas using association rules.

Next Best Action for an automotive website / Interone 2017

Based on raw Adobe Analytics data, the apriori algorithm was used to suggest the Next Best Action in the form of a web page. Written in R.

Lunch Roulette with Amazon Echo / Interone 2017

A small gimmick that let you find a lunch partner in the company by voice. Written in PHP.

spiegel.de paid-article classification / Personal project 2016

Based on Spiegel.de data, a classifier was written that could predict, from the first 50 words of an article, whether the article would be paywalled or not. Merely a programming exercise, but it would have been exciting to relate the data to the actual purchase patterns of the articles. Even so, patterns were already visible as to which articles tend to be paywalled. Written in Python.

Kindle Clippings Manager / Personal project 2010–2011

The Amazon Kindle is a fascinating device, not least because you can export your notes on text passages. Unfortunately you then only get a single file with all the notes you have ever made, so individual notes take a while to find. The Kindle Clippings Manager solves this problem. The application was written in RealBasic and made it onto the cover CD of PC World. The software is no longer maintained.

AdShadow / Personal project with a partner 2009

Crawling the German web and searching for AdSense IDs. Written in Perl, with the search engine implemented using swish-e.

Classification of online shops / PayPal 2008

A crawler identifies online shops and detects the underlying system, the payment systems and the type of goods being sold. Based on matching search queries and search engine rankings, the shop’s popularity is calculated. The data was used to calculate the market shares of shop and payment systems across different industries. Written in Perl.

Similar Search / Ask.com 2007

Based on the “distance” between Wikipedia articles, I wrote a Similar Search for the international Ask.com search engines. It was rolled out in Germany, France, Italy, the Netherlands and Spain. The software was written in Perl, C and shell scripts.

Blogosphere / Seekport 2006

For my Web 2.0 book project, I crawled the German blogosphere and visualized parts of it. Within the graph, influencers were identified and the development of stories was traced through the graph. Written in Perl and R.

Blog Search / Seekport 2005

A dedicated crawler detects blogs automatically and uses their feed function to find further blogs and keep the search index updated automatically. The software was written in Perl, C and shell scripts.

Homograph identification in search queries / Seekport 2005

Initially collected manually, later identified using computational-linguistics methods. It even made it into Heise News. Written in Perl.

Paid Submissions / Lycos 2003

Via the FAST API, web pages were handed to the crawler to be crawled and indexed with priority, after the owner had paid for it through a payment gateway. A GUI let users manage their URLs. I co-wrote a small part of the application, in PHP.