Dr. André Greiner-Petter

Developer, Researcher & Hobbie Photographer

I am a creative and open-minded person who loves to learn new things and solve puzzles. One of my favourite hobbies is photography and designing 3D artworks and prints. In 2017, I turned my greatest passions, problem-solving, programming and computers, into a professional career and became a researcher.

My research mainly focuses on Mathematical Information Retrieval (MathIR), Natural Language Processing (NLP), and Semantic Document Analysis (SDA). In the MathIR domain, I was mainly interested in semantically enhancing presentational mathematical expressions in order to allow automatic computations, e.g., via Computer Algebra Systems. You can find a list of my research publications here.

Work

since 02/2022

Post-Doctorate Researcher
University of Göttingen, Göttingen, Germany

since 06/2019

Co-Chair of Wikimedia User Group MATH

since 09/2017

Guest Researcher
National Institute of Informatics, Tokyo, Japan

10/2018 - 10/2019

Co-Founder of Sinpex
Fin-Tech Startup that supports compliance risk assessments of financial institutions.

02/2013 - 03/2016

Java Developer
Technische Universität Berlin, Berlin, Germany

Education

01/2022

Doctor of Engineering Sciences
University of Wuppertal, Wuppertal Germany
Final grade: Summa Cum Laude (Top 5%)

09/2017

Master of Science in Mathematics
Technische Universitaet Berlin, Berlin, Germany

02/2015

Bachelor of Science in Mathematics
Technische Universitaet Berlin, Berlin, Germany

06/2010

Abitur (general qualification for university entrance)
Sartre-Gymnasium, Berlin, Germany

Honors and Awards

Fellow of the 9th & 11th Heidelberg Laureate Forum

18 – 23/09/2022 & 22 – 27/09/2024

IFI Post-Doctorate Scholarship

German Academic Exchange Service (DAAD)
02/2022 – 08/2023

Ph.D. Summa Cum Laude

01/2022

Annual Research Scholarship for Ph. D. Students

German Academic Exchange Service (DAAD)
02/2020 – 02/2021

EXIST Grant

Federal Ministry for Economic Affairs and Energy, Germany
10/2018 – 10/2019

FITWeltweit Scholarship

German Academic Exchange Service (DAAD)
08/2017 – 02/2018

Programming Skills

I have over 10 years experience in active Java development. The most typical frameworks or libraries I work with are the obvious Log4J and JUnit frameworks. However, I have also experience with Flink, Spring, ElasticSearch, Deeplearning4j, to name a few. The following list contains some of the more prominent and openly available projects:

  • LaCASt: Is a LaTeX to Computer Algebra System translator written in Java with over 30k LoC. It uses multiple advanced techniques to perform accurate and context-dependend translations, from grammar parsing to analyzing natural language contexts, semantic preserving syntax tree manipulations, and automatic proving via semantic and numeric evaluation techniques. LaCASt was mostly written by me but supported by multiple PhD students, post-doctorates, and professors. The source is publicly available at www.github.com/gipplab/LaCASt.
  • MathMLTools: Is a Java library to simplify the handling of MathML data within Java. It provides tools to load, store, check validate, and automatically repair and enhance documents for the new MathML 3.0 standard. The library is mainly written in Java but supported by scripts in Python, XSLT, and XQuery. The source is publicly available at www.github.com/gipplab/MathMLTools.
  • The Formula Cloud: Is a project to discover Mathematical Objects of Interest (MOI) in large scientific libraries. In this project, I used the Java framework Flink and the XML framework BaseX (internally written in Java) to process and analyze 2,5 billion mathematical formulae in over 2 million scientific documents. This project mostly used Java and a veriety of scripts in Python, XQuery, and JavaScript. The main project source is available in multiple GitHub repositories: gipplab/formula-cloud, gipplab/formula-cloud-indexer, gipplab/FormulaCloudData.

I mostly have experience in PHP by working on Wikipedia. Since 2019, I am the co-chair of the Wikimedia Community User Group MATH. As such, I am responsible for the math support within Wikipedia (and other Wikis based on the Wikimedia source, such as Wikidata, Wiktionary, Wikibooks, and others).

An overview of the tasks we were working on in the past can be found in the publication Mathematical Formulae in Wikimedia Projects 2020 or in the associated poster, which is available as a PDF here. The poster was also an honorable mention for the best poster award at the Joint Conference on Digital Libraries in 2020.

I used python mostly for data-analysis and data wrengling purposes. The largest project in this regard was the big data analysis of mathematical notations in large real-world datasets. We analyzed 2.5B expressions and needed a variety of tools to manage the amount of data. A publication describing the project is available here.

Another project focused on Word2Vec for mathematical expressions. For this project, we used the scikit-learn framework. This project was published in a journal article: Math-word embedding in math search and semantic extraction.

My C/C++ experience is limited to hobby projects. I have tutored a Bachelor’s student who learned programming with C++ in 2015. Another noteworthy project is a custom keyboard I designed based on an STM32 microcontroller. I programmed this keyboard from scratch in C using STM32CubeIDE.

During my research I worked frequently with LaTeXML, a LaTeX converter for various formats. This is mostly written in Perl. I learned Perl in order to fix issues with latest versions of LaTeXML I encountered during my experiments.

I learned Ruby to fix issues with PlaneText, a framework  developed at NII to assist applying NLP tools on structured text, such as HTML. The GitHub project can be found here.

Most of my projects needed some sort of frontend solution to present results or allow users to interact with our prototypes. As such, many project contained JS/CSS/HTML code to some degree. There are two noteworthy projects that required a little more than basic knowledge though.

One project was about Mathematical Objects of Interest (MOI) and required to move and process large amounts of data across multiple elasticsearch (ES) instances. Since ES uses a rich REST API system, it was simply easier to juggle the data via JS. This resulted in various smaller scripts which are available in the two GitHub repos formula-cloud-server and formula-cloud-indexer.

Another project was MathMLBen, a benchmark for MathML converters. This benchmark was made public as a website (which is available at https://mathmlben.wmflabs.org/) and the source code is accesible on GitHub: https://github.com/gipplab/MathMLben.

Literally all of my projects are shared (or stored in private repositories) using Git and GitHub. I am also responsible for server administration of a variety of research project within our research group in Göttingen and all updates and communication with the server is organized through git (and CI/CD scripts, like GitHub Actions).

Since I mostly work with Java applications, I use Maven on a daily basis as can be seen in almost all of my GitHub projects. I used Gradle once for programming an hobby android application. Some of the projects we developed are even shared on Maven Central, such as MathMLTools. See more projects here: https://mvnrepository.com/artifact/com.formulasearchengine

I have CI/CD experience with GitHub Actions, Travis, Jenkins, Gerrit, and Docker.

As a PhD student who supervises BA/MSc students (and as a postdoc supervising PhD students) it is essential to have at least some CI/CD mechanisims in place to save a lot of work. We mostly used Travis and Jenkins until they changed the subscription model. Nowadays, we rely on GitHub Actions and Dockerhub instead.

I also take care of the server architecture of our research group in Göttingen (and formerly Wuppertal and Konstanz) for about 20-30 people. Our CD solutions are centered around Docker, which allows our group members to deploy new versions of their prototypes without needing direct access to our servers.

As a methematician and a computer scientists who focused on LaTeX in his own research, I am very familiar with LaTeX. All of my publications are written using LaTeX and I published my dissertation as an open source template for everyone: https://github.com/AndreG-P/thesis-template

My research focused on translating mathematical LaTeX expressions to the syntax of Computer Algebra Systems. As such, I worked a lot with Maple, Mathematica, SymPy and MatLab. I also made an internship at Maplesoft (developers of Maple) in Canada, which provided me even more insights into the system.

Language Skills

I’m a native speaker.

I learned English since High-School and lived abroad (USA, Canada, Japan) for over 7 years.  Additionally, all my publications and my theses are written in English. I have a level C1 in CEFR levels.

I learned Japanese out of pure joy and live in Japan for a couple of years now. However, I focused a lot on my career advancements and research tasks which did not improve my Japanese by much. As such, I am unfortunately still on a very basic level.

I learned French for 5 years in high school but have not used it ever since. As such, my French is very basic.

Additional Skills

One of my favourite hobbies is photography and I was mostly using Photoshop to edit my pictures.

My knowledge in 3D design with Blender and Fusion 360 are fully self-taught. My experience is limited to hobby projects though.

One of my favourite hobbies is photography. All of my knowledge and skills are self-taught. You can have a look on my work in the Portfolio.