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:
Below is a selection of the open source projects I'm currently working on
You can find more on my
GitHub account (@ngandrass)
Monitors disk I/O and forces HDD spindown after a given idle period. Resistant to S.M.A.R.T. reads.
Archives quiz attempts as PDF and HTML files for long-term storage independent of Moodle.
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.
Advanced asset management system. Manages handheld radios, VoIP phones, call boxes, pagers, and other telecommunication devices.
Automatically manages the full lifecycle of user accounts using freely configurable and easily extensible multistep workflows.
Display a configurable list of math input syntax examples alongside their rendered MathJax equivalents to help students with math input.
Blocking lists of IP addresses from blocklists / blacklists (e.g. blocklist.de, spamhaus.org) via ipset and ufw.
Creates full backups of GitLab groups, including subgroups and all projects, via the GitLab API.
Fully-custom ESP32-S3 based PCB badge for Eurofurence 28. Open-source hardware design (OSHW) and firmware files available.
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
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,
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
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,
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
How I spent my time, aside from doing great projects...