I am Michael, a software developer with a history in Classics and History of Ideas.

Currently I move with the domain of big data infrastructure and cloud development as a Data Engineer in Computas.

With a PhD in Classics (Greek and Latin philosophy in particular) I have moved between old-fashioned textual scholarship and modern software development for years. I develop my own tools and methods for working with different types of knowledge, so far mostly in complex literary and philosophical texts. I still contribute to some Open Source projects within the Digital Humanities within the SCTA project .

As a classically trained philosopher I have very good communication skills and advanced skills in analysing and solving problems of knowledge, texts, and language across a wide range of domains.

Profile

Software and data engineering
  • Currently working as a Data Engineer in Computas, where we provide expert consulting on advanced software cloud solutions, in particular on the Google Cloud Platform. I am certified Google Professional Data Engineer.
  • I am developing a catalogue website for sources on the Aristotelian tradition. I design the website, architect the internals of the database, and implement it on the frontend. See more on the projects page.
  • Core member of Scholastic Commentaries and Texts Archive (SCTA), an endeavour to connect and freely distribute the intellectual history of the scholastic tradition. I am editor of the Aristotelian commentaries registered in the database.
  • Co-editor of the LombardPress Schema, a schema for encoding scholastical material in TEI compliant XML (part of SCTA).
  • Experience with the development of research software used in analysis of ancient and medieval philosophical texts.
  • Strong familiarity with web technologies.
Research
Skills

By working on the intersection between classical humanities and software engineering I have developed some important skills.

Analysis
Writing a book length original study of intricate medieval philosophy of mind at the highest academic level requires strong skills in problem analysis, decomposition, and solution.
Learning
In my work I am used to getting familiar with new, unclear, and complex material. Learning new techniques, languages (of humans or computers), or intricate details of philosophy has been my main occupation for years.
Collaboration
Within my own project and in collaboration with international researchers I have planned scholarly conferences and workshops, and sought solutions and insights that are arcane to most people.
Communication
Explaining ideas how to solve old problems in new ways, presenting problems on the philosophy of mind, or making details of medieval manuscripts clear can be challenging. I have experience making complex material seem (a little bit) less complex for students, colleagues or the general public.
Creativity
During my studies, my research, and in my software side projects I have developed approaches to challenges within textual analysis, natural language processing, and text representation that I have not seen deployed before within my field.
Tools

Excited as I am about tech I always want to use the right tool for the job, not least when that requires me to take up new languages, technologies, or approaches. Some of my main tools so far have been:

Daily use
Google Cloud Platform technologies (e.g. Kubernetes, BigQuery, Dataflow, Cloud Functions, and much more), Python.
Earlier in-depth use
React and JavaScript ecosystem, Neo4j, GraphQL, HTML5 & CSS.
Stable tools
LaTeX, XML and conversion tools, XSLT, Jupyter, Numpy, Pandas.
Greenfield and earlier experience
Emacs Lisp, Ruby, Haskell, Go, PHP, Shell, PostgreSQL, MYSQL, different CMS systems.

Aside from Google Cloud Platform I have experience running and administrating software and data on Amazon Web Services, Heroku, and DigitalOcean.

I wield the typical toolset of a moderne developer, including git (including GitHub, Gitlab, Bitbucket), Docker, CI/CD tools, package mangement systems and much more.

Notable software
  • Samewords: A script for annotating potentially ambiguous critical apparatus entries in critical textual editions created with LaTeX. There is a web UI for online use.
  • LBP Print: A small utility for processing TEI compliant XML files with a relevant XSLT script into TeX-format (or the resulting PDF). I have made web UI for it too ( source, Docker image).
  • LBP Print XSLT: An XSLT script build for converting my own XML editions into TeX (and then PDF). Although this is made for my own editions, it will work for all LombardPress compliant files, and probably a good portion of regular TEI XML files too.