~$ whoami 

👋 Hi! I’m Christian. Lead Software Engineer in the Stuttgart area, specializing in firmware development and software architecture for embedded systems. I’m a true tinkerer – I love taking technology apart, understanding how it works, and putting it back together. I’m particularly fascinated by small projects like this website, into which I pour a lot of passion. More about me…
Profilbild

Effective Software Architecture for Command Line Tools

Software projects often need command line tools that automate specific tasks, such as code generation, evaluations, packaging, etc. All too frequently, these tools are developed ad hoc and unstructured, implemented, quickly finished, and then forgotten. Unfortunately, this makes them difficult to understand and maintenance-intensive later on. Good software documentation can help circumvent this problem. This article proposes a supplementary measure: a simple software architecture for command line tools, designed to facilitate understanding and further development of the same. ...

June 3, 2023 · 7 min · 1455 words · Christian Gröling

The Bridge Between UML and C++: Relationships in Class Diagrams and Their Implementation

A UML class diagram visualizes the different classes of a system, their attributes, operations, and relationships to one another. When applied correctly, UML illustrates exactly how class diagrams can be translated into code. The core problem - and often the most difficult part - is interpreting the diverse class relationships correctly. In the following, I explain the most important relationship types in UML class diagrams. Each relationship is briefly explained, an everyday example illustrates it, and a section with a C++ code example concludes the section. ...

May 20, 2023 · 6 min · 1080 words · Christian Gröling

Git Subtree in Action: Practical Scenarios and Guides for Developers

The internet is full of articles explaining why you shouldn’t use Git submodules. But what alternatives are there? One option is Git Subtree, which I’d like to take a closer look at in this article. Git Subtree connects an external repository with the main repository, as if it were a simple folder. The history of the external repository is preserved in the process. Developers can make changes in the external repository and transfer them to the main repository with ease. Likewise, they can pull changes from the main repository into the external repository. ...

May 5, 2023 · 8 min · 1542 words · Christian Gröling