Welcome! I'm Torsten Kelm, a railman and sometimes a developer based in Berlin, and this is where I share insights and details about software projects I've developed.
My journey into software development wasn't entirely conventional. While I began my career working on the railways here in Berlin (born 1972), my fascination with computing sparked early on. Around the age of 13, I got my hands on my first computer – a Schneider CPC 464. That early passion quickly turned practical, leading me to write my first real program: a database in pure Assembly language to manage my father's growing collection of video cassettes!
Since those early days with the CPC 464, my interest in tackling real-world problems through code has only grown. Over the years, I've had the opportunity to design and build diverse applications, including:
A comprehensive solution for generating ZugFeRD-compliant invoices, incorporating capabilities for managing HR resources within different projects.
A specialized system for booking hotel accommodations for train drivers and streamlining the management of the resulting invoices.
A complex application for managing the capacities of a container terminal, providing customer invoicing and crucial forecasting of capacity consumption.
This site serves as a platform to document some of these projects, sharing the technical challenges encountered and the solutions implemented.
Featured Project: Google Drive Backup Tool
We kick things off with a deep dive into a recent project born out of a personal need: The Google Drive Backup Tool.
While cloud services like Google Drive are fantastic, relying solely on them for critical data isn't always sufficient. I needed a robust way to create local, independent backups in a standard format (ZIP), handle Google Workspace files correctly, and ensure the process was efficient and resilient against interruptions. Frustrated by the limitations and potential unreliability of native download options, especially with complex folder structures or long filenames leading to damaged archives, I decided to build a custom solution using C# and .NET.
This tool features:
Creation of local ZIP archives with a reliable flat file structure.
Incremental backups based on file changes using a detailed manifest.
Proper export of Google Docs, Sheets, Slides, etc., to standard formats.
Resumable restores and archive repair capabilities.
Parallel processing for improved download/upload performance.
Configuration via JSON files and command-line support for automation.
Explore the Development Journey:
To understand the design decisions, architecture, and technical solutions implemented in this tool, check out the detailed three-part article:
Part 1: The Core Library - Delves into the architecture of the GoogleDriveBackup.Core library, covering authentication, API interaction, incremental logic, the manifest structure, parallelism, and resilience features.
Part 2: The Console UI - Explains how the console application utilizes the Core library, handles user interaction (interactive menus and command-line arguments), displays progress, and orchestrates the backup/restore/repair processes.
Part 3: Automation with Powershell - Explains how the CLI-Features can be used for automation with Windows Powershell and Windows Task Scheduler.
Feel free to explore the articles, and I hope you find the information shared here useful! More project insights may follow in the future.
The Sourcecode for this Project: https://github.com/estring/GoogleDriveZipBackupTool
License: LGPL 2.1