Hello, I'm Falco

I'm a 33-year-old Software Developer and Researcher, interested in declarative programming, web development and chess.


Neustadt an der Weinstraße, Germany



Since October 2013 I'm an international FIDE-Arbiter. I was Chief Arbiter of several Elo-rated tournaments, e.g. the German Youth Championship or in the German Bundesliga.


In 2014, with a friend I founded the chess.io GmbH. It aims to develop web-based applications for chess players, e.g. to manage chess tournaments online. Some of its related projects are listed below.


For the German Chess Youth I have organized tournaments with several hundred players each.


DWZ: 1865
Elo: 1838


Academic Services
05/2023 — Present

SUSI&James GmbH

Lead Software Engineer

Mannheim, Germany
01/2023 — 04/2023

chess.io GmbH

Full Stack Web Developer

Bad Segeberg, Germany (remote)

Full stack web development, devops

03/2021 — 12/2022



Kaiserslautern, Germany

Research & Development in the context of sustainable urban development in DFKI's SmartCity Living Lab (SCLL), in cooperation with the city of Kaiserslautern
Supervision of a Master thesis and two seminar papers

10/2019 — 02/2021

chess.io GmbH

Full Stack Web Developer

Bad Segeberg, Germany (remote)

Development of a webshop based on Magento 2, migration of the existing webshop, full stack web development, devops

10/2015 — 09/2019

University of Würzburg

Research Fellow

Würzburg, Germany

Teaching Assistant for the lectures »Logic in Computer Science«, »Deductive Databases«, »Logic Programming«, »Databases«, and »Advanced Databases«
Supervision of six Master and Bachelor theses, as well as of multiple practical courses and seminar papers

02/2012 — 09/2015

Ulm University

Research Assistant

Ulm, Germany

Teaching Assistant for the lectures »Programming Paradigms«, »Logic in Computer Science«, »Web Engineering«, and »Algorithms and Data Structures«

02/2015 — 04/2015

chess.io GmbH

Student Web Developer

Hamburg, Germany (remote)

Development of a webshop based on Magento

03/2010 — 02/2012


Working Student

Ulm, Germany

Department Engineering Tools and Platform Solutions
Development of tools to manage the IT environment, based on Ruby on Rails


2015 — 2022

University of Würzburg

Ph.D. in Computer Science

Würzburg, Germany

Doctoral Thesis »Defining and Implementing Domain-Specific Languages with Prolog« (magna cum laude), supervised by Prof. Dr. Dietmar Seipel

2014 — 2015

Ulm University

Master of Computer Science

Ulm, Germany

Applied Subject Mathematics, graduated with distinction
Master Thesis »CHR.js: Compiling Constraint Handling Rules to JavaScript« [PDF], supervised by Prof. Dr. Thom Frühwirth

2010 — 2014

Ulm University

Bachelor of Computer Science

Ulm, Germany

Applied Subject Mathematics
Bachelor Thesis »From XML Schema to JSON Schema – Comparison and Translation with Constraint Handling Rules« [PDF], supervised by Prof. Dr. Thom Frühwirth


Happy times!

Best Paper Award

SLATE 2019, Coimbra, Portugal

Best Paper Award at the 8th Symposium on Languages, Applications, Technologies (SLATE) for »Definite Clause Grammars with Parse Trees: Extension for Prolog« (F. Nogatz, D. Seipel and S. Abreu).

Full Student Grants

FLoC 2018 and RuleML+RR 2018

For participation and talks at the Federated Logic Conference (FLoC) in Oxford, and the International Joint Conference on Rules and Reasoning (RuleML+RR) in Luxembourg.

Goldener Binärbaum

Preis für Gute Lehre 2018

The golden binary tree is awarded by the Institute of Computer Science, University of Würzburg, for good teaching.

Public Choice Award

Deutsche Bahn Hackathon, Berlin 2016

At the 5th hackathon of the german railway company I implemented a best-price lookup which can combine splittings of special-price tickets. The browser extension and Prolog backend was built in a day.

Special Award

Deutsche Bahn Hackathon, Frankfurt 2015

I took part in the very first hackathon of Deutsche Bahn, and implemented a routing service that considers historic delay data. The web application was built within only 24 hours and also received the Public Choice Award.



Community Service

in Academia

Local Organiser

International Conference on Declarative Programming (Declare), 19.—22. September 2017 in Würzburg, Germany


PC Chair

2022 — WLP


PC Member

2022 — KI
2019 — WLP



2022 — Constraints, KI, WLP
2021 — RuleML+RR
2019 — INAP, WLP
2016 — IJA, SLATE, WLP

Student Supervision

Master Thesis
Bachelor Thesis

Open Topics

  • Constraint Handling Rules as a Library with Delimited Control


    Constraint Handling Rules (CHR) is a declarative, rule-based programming language. Its syntax consists of just three committed-choice multi-set transformation rules and is thus fairly simple. There are implementations and embeddings for many programming languages such as C, Java, Haskell, and JavaScript. However, CHR’s most popular host language remains Prolog. Current implementations of CHR in Prolog rely on Prolog’s implicit execution stack, others use attributed variables. In this project, we want to implement a new compilation scheme to Prolog based on delimited continuations. This takes up the idea of an explicit stack, which is a common optimisation technique when compiling CHR to imperative programming languages. Delimited continuations have already been successfully used to efficiently implement tabling in Prolog – so it might be worth considering them for CHR, too.

    • CHR
    • compiler construction
    • declarative programming
    • Prolog
  • XPCE Compatibility for SWISH


    XPCE was the way to go for graphical user interfaces with SWI-Prolog. In recent years, with SWISH, SWI-Prolog moved to the browser as the most important GUI, leaving XPCE unsupported and almost deprecated. We want to examine typical XPCE applications and provide mechanisms to convert them to SWISH applications.

    • GUI
    • program transformation
    • Prolog
  • OpenRuleBench Revised


    OpenRuleBench is a suite of benchmarks for analysing the performance and scalability of different rule engines. The original benchmarks were run first in 2009, an updated report was published in 2011. Since then, the benchmarks have not been re-run. In this work, we want to create an experimental setup to run various tests on different systems, similar to our CHR Benchmark suite. It should allow to validate the original results, and to re-run the tests with modern rule engines. This could result in a public test server to compare existing and new logic programming systems and their strengths.

    • benchmarks
    • declarative programming
    • Prolog
  • A Controlled Natural Language for COVID Regulations


    In the past two years, the Coronavirus disease COVID-19 had a strong impact on most parts of our everyday life. People had to wear masks under some conditions, like the number of persons in a group or the size of the room. These conditions have been determined by the government in more than 30 regulations. In this work, we want to tailor the corpus of these regulations towards a more controlled natural language so they can be easily used by both humans and machines, e.g., to automatically identify inconsistencies. Because the Corona-Bekämpfungsverordnung (CoBeLVO) is in German, a good knowledge of German is required.

    • controlled natural language
    • domain-specific language
  • Statistische Jahresberichte auf Basis von Linked Open Data


    Viele Kommunen in Deutschland veröffentlichen jährlich einen statistischen Jahresbericht. Diese Statistiken beinhalten u.a. soziodemografische Informationen zur Bevölkerung (z.B. Alter, Familienstand), zur Wirtschaft (z.B. Gewerbesteuer, Insolvenzverfahren) und Verkehr (z.B. PKW-Neuzulassungen, Verkehrsunfälle), und zu Kultur und Sport (z.B. Bibliotheksbestand, Vereinsmitgliedschaften). Sie sind wertvolle Ratgeber für Planung, Handel und Politik. Trotz ihres großen Nutzens ist die Erstellung der oft mehrere hundert Seiten langen Jahresberichte aber noch weitestgehend Handarbeit: Statistiken werden mühevoll zusammengetragen und Visualisierungen erstellt – eine Tätigkeit, die sich durch Linked (Open) Data vollständig automatisieren ließe. Ziel dieser Arbeit ist es, am Beispiel der Stadt Kaiserslautern den statistischen Jahresbericht als Linked (Open) Data umzusetzen und eine interaktive Darstellung zu ermöglichen, die über die bisherige Druckfassung hinausgeht. Für die Materialien und Anwendungspartner sind gute Deutschkenntnisse erforderlich.

    • linked data
    • open data
    • semantic web
    • smart city
    • visualization
  • Bisecting Debugger for SWI-Prolog


    Although it is hard to admit: most of the time we are actually not writing code but instead debug existing. Due to its good backtracking and tracing abilities, debugging in Prolog could benefit from a bisecting debugger as described by Michael Hendricks at Strange Loop 2014. In this work we want to enhance SWI-Prolog’s built-in debugger with this functionality.

    • debugging
    • IDE
    • program transformation
    • Prolog
  • A Style Linter for Prolog


    Although there are several style guides for Prolog, it is hard to enforce one in existing programs due to the lack of related tools and machine-readable representation. In other programming languages there are separate, flexible tools just to ensure a consistent coding style, for example Prettier or the JavaScript standard style. In this work we want to adapt these concepts and integrate a Prolog linter into CI workflows and IDEs, with respect to Prolog’s syntax, and based on our previous work.

    • coding guidelines
    • continuous integration
    • Prolog
  • Benchmarking CHR Systems


    Constraint Handling Rules (CHR) is a very simple but powerful rule-based language. Besides its most popular implementation as a library for SWI-Prolog, there exist CHR systems in C, Haskell, and JavaScript. More than 30 years after the creation of CHR, the existing implementations should be compared regarding supported features and performance, extending our previous work.

    • benchmarks
    • CHR
    • declarative programming
  • Optimising Definite Clause Grammars


    Definite Clause Grammars (DCG) can be easily written by hand and are therefore a good alternative to parser implementations based on LL(k), LF or PEG. Nevertheless, such hand-written grammars tend to be not optimal: Several parts of the parse tree have to be evaluated several times for the same expression because of its backtracking nature. Using source-to-source transformation the DCG can be rewritten into an optimal version, which should be done in Prolog as part of this work.

    • backtracking
    • compiler
    • context-free grammar
    • parser
    • program transformation
    • Prolog



Applied Artificial Intelligence

Seminar at DFKI Kaiserslautern
WS22 | SS22 | WS21


Deductive Databases

Teaching Assistant for the lecture at the University of Würzburg
SS18 | SS17 | SS16


Logic Programming

Teaching Assistant for the lecture at the University of Würzburg



Teaching Assistant for the lecture at the University of Würzburg
WS17 | WS16


Logic in Computer Science

Teaching Assistant for the lecture at the University of Würzburg
WS18 | WS17 | WS16 | WS15


Databases & Rule-Based Systems

Practical course at the University of Würzburg
WS18 | WS17 | WS16


Advanced Database and Logic Programming Concepts

Seminar at the University of Würzburg
SS19 | SS18 | SS17 | SS16