Niels Gandraß

Freelancing IT Multi-talent and Senior Moodle Developer


Work

Hi, I'm Niels — a freelancing IT guy based in Hamburg, Germany

I like to keep Linux servers happy and healthy, automate a lot of DevOps tasks to let machines do the heavy lifting for me, and build the cloud infrastructure to run all that. Moreover, I develop specialized applications, often with a scientific background, tailored to the business needs of my customers. These range from DIN/ISO-compliant laboratory software to energy-efficient firmware for low-power embedded IoT devices. Though not my primary focus, the creation of websites for small to medium-sized businesses is also part of my skill set.

In recent years, I have worked with various clients, including the following:

Open Source Projects

Below is a selection of the open source projects I'm currently working on
You can find more on my  GitHub account (@ngandrass)

TrueNAS Spindown Timer Cover
TrueNAS Spindown Timer

Monitors disk I/O and forces HDD spindown after a given idle period. Resistant to S.M.A.R.T. reads.

Moodle Quiz Archiver Cover
Moodle Quiz Archiver

Archives quiz attempts as PDF and HTML files for long-term storage independent of Moodle.

Moodle Archiving Worker Cover
Moodle Archiving Worker

Renders Moodle user content inside a headless webbrowser and exports it as PDF/HTML files, including MathJax formulas and other complex elements that require JS processing.

Eurofurence Telecommunication Device Management System (EF-TDMS) Cover
Eurofurence Telecommunication Device Management System (EF-TDMS)

Advanced asset management system. Manages handheld radios, VoIP phones, call boxes, pagers, and other telecommunication devices.

Moodle User Lifecycle Management Cover
Moodle User Lifecycle Management

Automatically manages the full lifecycle of user accounts using freely configurable and easily extensible multistep workflows.

Math Syntax Help for Moodle Cover
Math Syntax Help for Moodle

Display a configurable list of math input syntax examples alongside their rendered MathJax equivalents to help students with math input.

UFW IPSet Blocklist Auto-Updater Cover
UFW IPSet Blocklist Auto-Updater

Blocking lists of IP addresses from blocklists / blacklists (e.g. blocklist.de, spamhaus.org) via ipset and ufw.

GitLab Group Backup Cover
GitLab Group Backup

Creates full backups of GitLab groups, including subgroups and all projects, via the GitLab API.

Eurofurence 28 Cyber Badge Cover
Eurofurence 28 Cyber Badge

Fully-custom ESP32-S3 based PCB badge for Eurofurence 28. Open-source hardware design (OSHW) and firmware files available.

Publications

2026
Karin Landenfeld, Jonas Priebe, Niels Gandraß
Einsatz Digitaler Prüfungen in der Mathematik

Digitale Prüfungen bieten neue Prüfungsmöglichkeiten, die für Studierende und auch für die Lehrenden vorteilhaft sein können. In unserem Beitrag möchten wir unsere erprobten Prüfungsszenarien in der Mathematik, die wir als Präsenzprüfung in unseren PC-Pools durchführen, vorstellen. Wir haben

Niels Gandraß
Workflow-based User Lifecycle Management for Moodle

The deletion of inactive user accounts is not only a legal requirement under GDPR but also a technical and organizational necessity. Beyond compliance, removing obsolete user data offers various significant practical benefits. Various Moodle plugins already exist for this use case. Those,

Björn Dittmann, Niels Gandraß
Moodle Quiz Archiver: Plugin Showcase and Development Status Report

The Quiz Archiver Moodle plugin was released back in 2023 and has since emerged as one of the most complete solutions for archiving Moodle quiz attempts. In 2025 we then started work on a comprehensive archiving subsystem for Moodle that will fully integrate the quiz archiver while being largely

Niels Gandraß
User Lifecycle Management — Automatic User Deletion for Moodle

The deletion of inactive user accounts is not only a legal requirement under GDPR but also a technical and organizational necessity. Beyond compliance, removing obsolete user data offers various significant practical benefits.In this talk we present the Automatic User Deletion Moodle plugin,

Niels Gandraß
Agile Moodle Updates with Docker and GitLab CI

Managing multiple Moodle platforms across development, staging, and production environments in a flexible yet reliable way presents various operational challenges. Traditional manual deployment approaches demand substantial administrative effort and tend to be more prone to errors.In this talk

Niels Gandraß
Kurzworkshop: Passwortmanager und Generelle IT-Security-Tipps

In diesem leichtgewichtigen Kurzworkshop wird auf die verschiedenen Aspekte sicherer Passwörter und die Nutzung von Passwort-Managern eingegangen. Im Fokus steht die Arbeitserleichterung durch die Nutzung des Passwort-Managers KeePassXC bei gleichzeitiger Verbesserung der IT-Sicherheit im Umgang

2025
Karin Landenfeld, Jonas Priebe, Niels Gandraß
Semesterbegleitendes Lernen und Prüfen mit Digitalen Aufgaben in der Mathematik

In diesem Beitrag werden digitale Übungsaufgaben und digitale Prüfungen als ein zukunftsorientiertes Lehr-Lernszenario vorgestellt. Die Möglichkeiten digitaler Übungsaufgaben generell und im Speziellen mit STACK (Sangwin, 2013) werden aufgezeigt und diskutiert. Insbesondere werden das Konzept

Niels Gandraß, Philipp Kropp, Alexander Bias
Securing Moodle — A brief introduction to web application security and low-hanging fruits anyone should harvest

Moodle is a popular free and open-source learning management system written in PHP. It is widely used by schools and universities across the globe. Like with many web applications, Moodle can easily be installed and get started with, but securing the application itself as well as the web server

Niels Gandraß, Claudia Ballerstedt, Alexander Bias, Mirco Schindler
Archiving Subsystem for Moodle — Public Prototype Release

During the Moodle university conference in March 2025, we presented our conceptual foundation for a comprehensive archiving subsystem for Moodle. It is based upon a wide-reaching requirements engineering phase with a significant amount of community contribution. The aspired archiving subsystem

Karin Landenfeld, Jonas Priebe, Niels Gandraß
Maths — Practise Digitally — Examine Digitally

Digital exercises support learning and understanding in addition to the lectures. They provide students with individualised learning opportunities and thus meet the heterogeneous needs of students. A major advantage of digital exercises is the possibility of receiving immediate, detailed and

Niels Gandraß, Mirco Schindler, Claudia Ballerstedt
Moodle Archiving Taskforce — Tackling Activities Beyond Moodle Quizzes and Integrating Campus Management Systems

With the Quiz Archiver Moodle plugin, we have already solved the issue of exporting Moodle quiz attempts into archivable PDF files. While this solves many of the current challenges, it still lacks support for other widely used question types, interfaces to external storage solutions (e.g., WORM

2024
Karin Landenfeld, Jonas Priebe, Niels Gandraß
Digitale Präsenz-Prüfungen — verschiedene Formate — ein Erfahrungsbericht

Digitale Übungsaufgaben und Digitale Prüfungen gehören gemäß Constructive Alignment zusammen. Digitale Übungsaufgaben sind die wichtigste Komponente der Digitalen Prüfungen. Sie unterstützen das vorlesungsbegleitende Lernen und Verstehen durch verschiedene Aufgabentypen, ein detailliertes

Niels Gandraß
Moodle Quiz Archiver — A Modern Solution to Exam Archiving

Quiz Archiver is a modern Moodle plugin that archives quiz attempts as PDF and HTML files for long-term storage independent of Moodle. It supports complex question and content types, including MathJax formulas, STACK plots, file submissions, and common dynamic JavaScript content. Generated

Niels Gandraß
Moodle Quiz Archiver — Future Proof Archiving of Exam Results

Quiz Archiver is a novel Moodle plugin that archives quiz attempts as PDF and HTML files for long-term storage independent of Moodle. It supports complex question- and content-types, including MathJax formulas, STACK plots, and other dynamic JavaScript content. Generated archives include

Niels Gandraß
Moodle Quiz Archiver — The road from v0.6.3 (BETA) to v1.2.3

Quiz Archiver is a novel Moodle plugin that archives quiz attempts as PDF and HTML files for long-term storage independent of Moodle. It supports complex question- and content-types, including MathJax formulas, STACK plots, and other dynamic JavaScript content. Generated archives include

2023
Niels Gandraß
Moodle Quiz Archiver — A Quick Glance

Quiz Archiver is a novel Moodle plugin that archives quiz attempts as PDF and HTML files for long-term storage independent of Moodle. It supports complex question- and content-types, including MathJax formulas, STACK plots, and other dynamic JavaScript content. Generated archives include

2022
Niels Gandraß, Felix Koch, Karin Landenfeld, and Emira Zorgati
Zentrale Absicherung von Prüfungsszenarien in verteilten PC-Poolräumen — Konzept und Verwendung

Digitale Prüfungen ermöglichen innovative Prüfungsformen, bieten einen großen Gestaltungsfreiraum und können die Qualität einer Lehrveranstaltung maßgeblich steigern. Die Nachfrage nach solchen wächst momentan sowohl unter Lehrenden als auch unter Studierenden. Der Ausbau digitaler

Niels Gandraß
A Uniform API for Cross-Platform Timer Hardware Abstraction on Resource Constrained IoT Devices

Timers are part of every microcontroller and influence numerous aspects of embedded applications. As the heterogeneous spectrum of timer peripherals continues to grow, embedded OSs increasingly struggle to expose novel timers and advanced features via their time-honoured APIs. The need for

2021
Niels Gandraß, Michel Rottleuthner, and Thomas C. Schmidt
uTimer: A Uniform Low-level Timer API for RIOT OS

Microcontrollers offer a large range of hardware timers. As peripherals grow in diversity, the complexity of supporting them increases for embedded operating systems. Well-established software interfaces struggle with covering the full feature set of novel timers. This raises the need for a

Niels Gandraß, Michel Rottleuthner, and Thomas C. Schmidt
Large-scale Timer Hardware Analysis for a Flexible Low-level Timer-API Design: Work-in-Progress

We report on our ongoing development of an optimized low-level timer-API for the RIOT operating system. Starting with a survey of hardware timer peripherals from 43 MCU-families and 8 manufacturers, we identify common properties and differences of all available timer types. Based on this

Niels Gandraß, Karin Landenfeld, and Jonas Priebe
Examuntu: A Secure and Portable Linux-Distribution for Summative E-Assessments at Universities

As electronic assessments emerged into the academic landscape, specialized software solutions were developed along with them. Nowadays, many e-assessment systems that provide secure environments for digital examinations are available. However, they often lack portability or possess a complex

Karin Landenfeld, Jonas Priebe, and Niels Gandraß
Digitale Aufgaben und Prüfungen in Mathematik – ein Erfahrungsbericht

Kaum ein Studiengang lässt sich heutzutage noch vollständig ohne digitale Komponenten denken. Insbesondere die Ausrichtung der Studieninhalte auf eine zunehmend digitale Arbeitswelt ist primärer Bestandteil aktueller Strategien zur Curriculumsentwicklung an Hochschulen. Dieses bedingt, dass

2020
Niels Gandraß, Torge Hinrichs, and Axel Schmolitzky
Towards an Online Programming Platform Complementing Software Engineering Education

Existing online programming platforms provide many opportunities for individuals to develop and improve their programming skills. Using descriptive assignments that address different skill levels these platforms target both beginners and experienced programmers. We used one such platform

2019
Niels Gandraß and Axel Schmolitzky
Automatisierte Bewertung von Java-Programmieraufgaben im Rahmen einer Moodle E-Learning Plattform

Die Programmiersprache Java wird an zahlreichen Hochschulen gelehrt, um Studierende mit grundlegenden Programmierkonzepten vertraut zu machen. Zur Integration von Online-Java-Programmieraufgaben in ein Moodle LMS wurde ein Fragetyp entwickelt, welcher die parallele Ausführung sowie die

Niels Gandraß
Unsupervised Machine Learning: Feature Extraction for Classification of LIDAR-Ceilometer Aerosol-Backscatter Profiles

In this bachelor thesis a method for unsupervised feature extraction from aerosol backscatter profiles is proposed. After a first data preprocessing step the LIDAR-ceilometer datasets are converted into an compressed representation using an convolutional autoencoder. These encoded

2017
Philipp Palm, Nena Kerner, Sarah Alexi, Niels Gandraß, et al.
Werden? Ich bin doch schon!: Neue Schule Hamburg

Die Neue Schule Hamburg ist eine demokratische Schule, die konsequent die individuelle Freiheit ihrer Schülerinnen und Schüler in den Mittelpunkt stellt. Doch wie wird das gemeinschaftliche Zusammenleben an solch einer Schule gestaltet? Zum zehnjährigen Jubiläum erzählt die Neue Schule Hamburg

About

How I spent my time, aside from doing great projects...

now
Acquired M. Sc. in Computer Science
2022
Acquired B.Sc. in Computer Engineering
2019
Employed as academic researcher
2017
Started working as a freelancing software developer
for various customers
Acquired general university-entrance diploma (Abitur)
2015
Created my first coding project together with friends
It was messy but sparked my excitement
2005

Contact me

Your contact inquiry was successfully sent. Thank you!

Want to get in touch?
Use the form below to drop me a message!

You can also find me on  LinkedIn
Required field. Maximum length is 128 characters.
A valid email address is required. Maximum length is 128 characters.
Maximum length is 256 characters.
A message is required. Maximum length is 8192 characters.