Build to keep the flame aliveπŸ”₯

These projects were all born out of the combination of necessity and curiosity. These projects are maintained in my free time but have mainly addressed real-life issues I encountered at work: ranging from automation to specialized tools and clients.

Python async API wrapper:
Baseline utility for scripting and automation.

Description:

Started out from a loose collection of scripts to a full-fledged Python API wrapper including S3 direct upload and client-side encryption using an async http client to speed up bulk operations.

What I learned:

Going fast breaking things will only get you so far - thinking about design afterwards comes at a price. This was the entrypoint into all the "cool" Python libs out there like Pydantic which ultimately led me to Rust.

dccmd(-rs)
CLI client for a cloud based service

Description:

A CLI tool aimed to replace scripting with simple commands ranging from admin tasks to bulk up- and download support S3 direct upload and client-side encryption.

What I learned:

Concurrency is hard. Python and the lack of ergonomic error handling were my "gateway" into Rust. I've rewritten the full tool in Rust and also created an async API wrapper in Rust with clear focus on design beforehand.

Rust async API wrapper
Fundamental library to develop cross-platform apps.

Description:

The analogy to my previous work in Python but built from the ground up making strong use of type safety (e.g. typestate pattern). Includes client-side encryption and S3 direct upload.

What I learned:

Basically: Rust and the strong desire to work in Rust. This drove me to research about "idiomatic" API design from builders to errror handling and handling async operations. It has has deepend my understanding of the Rust ecosystem and its stability - if it compiles, it works.

MoSo
A recipe management app to plan weekly family cooking.

Description:

A recipe management app consisting of a SvelteKit frontend and a Rust (axum) backend.

What I learned:

Knowing your customer is the most important part - solving real problems by iterating and gathering feedback is a good approach, even if the customer is your wife πŸ˜…. Also: Over-Engineering is bad, Rust is an excellent choice for solid backend development and testing can be fun using the right tools (testcontainers πŸ–€).

georg
Social project outcome - a desktop app to faciliate management tasks.

Description:

The project aims to provide an organization providing different forms of assistance a way to manage applications and also sickness replacements based on geo location.

What I learned:

First dive into tauri desktop apps - I exclusively focused on the Rust backend part while a colleague built the frontend. A nice experience working in parallel on the same topic from different angles, having to come up with a meaningful API design.

dcadmin
A cross-platform desktop app written in Typescript and Rust.

Description:

A desktop app to generate reports based on my Rust API wrapper. The frontend is built with SvelteKit (Typescript) and backend uses Tauri (Rust). All business logic is handled in Rust.

What I learned:

Hard work pays off and the async wrapper really does a good job. With a solid "backend", frontend is much easier for me. Rock-solid type safety and just a "dumb" UI is really fun to build and easy to wrap my head around.