my blog. for you.

Let’s talk digital.

I’m an independent IT consultant and entrepreneur in the Internet and software business. I’m interested in design, enterprise applications, web apps and SaaS products. I design and develop business solutions and applications. I help companies in terms of software quality and knowledge transfer, e.g. with Angular and Spring Boot.

Analysing the Complexity of Angular Apps

Analysing an existing application if you join a project. Assessing the quality and maintainability of an application. Identifying soft spots in an application which could benefit the most from refactoring. There are numerous reasons for wanting to size up the complexity of an application. In addition to general and language-specific tools provided by IDEs and applications such as SonarLint / SonarQube it can be useful to not only take framework specifics into account but to actually make use of them to get a better ... Read more

Interactive Flowcharts with code2flow

Visualisation often helps immensely when trying to understand complex systems and interactions. Visualising these systems and their behaviour can be a daunting task though: Covering each and every path a workflow or process might take can be quite arduous. In many cases it's not even possible to comprehensively describe a system that has not yet been implemented. Edge cases frequently only tend to surface once a software has been tried out under real conditions. Software in turn needs to adapt quickly, which all ... Read more

JSCity – Code Complexity Visualization For JavaScript Codebases

JSCity is a tool for visualising JavaScript source code complexity that uses the CodeCity metaphor. This approach makes use of the building blocks of modern cities for visualising the building blocks of software. Since in JavaScript functional programming is the predominant programming paradigm JSCity represents code artefacts like this: folders are districts files are sub-districts functions are buildings inner functions are represented as buildings on the top of their nested function / building This for example is the visualisation of the AngularJS source code. JSCity even allows you ... Read more

Writing Disposable Code, Not Reusable Code

In an article about common software over-engineering mistakes Subhas Dandapani provides a lot of useful insights on why software often is over-engineered - sometimes to the extent it becomes unmaintainable. From my experience, the by far most frequent cause of over-engineered and overly complex software is engineers trying to anticipate requirements and potential future use cases. Everything has to be abstract in order to accommodate any possible use case business might come up with. Repetition is generally regarded as waste. Engineers hate ... Read more