SOLUTION ARCHITECTURE

Working on Computer

Application development

I have experience in designing and developing medium and large scale software solutions. Often with challenging non functional requirements concerning resilience, scalability and performance.

I have extensive knowledge about micro service architectures, event driven architectures and traditional service oriented architectures. Through the years I've experienced the pros and cons of each of the different paradigms, when to apply them and - maybe even more importantly - when not.

While a software solution is never 'finished', I apply principles of evolutionary architecture to make sure the solution can easily adopt to future initiatives and requirements. I regard (architecture) design as a continuous process where I make use of valuable concepts and tools like Domain Driven Design and Event Storming.

Renovations in Progress

Re-architecting legacy applications

Often times there isn't the luxury of starting with a clean slate or greenfield situation. Usually there is a scenario where progress on an essential application has come to a grinding halt because years of neglected technical debt have made the application unmaintainable. The existing architecture or technology stack may not be suitable for scaling requirements or further innovation in general. The existing solution cannot just be turned off while waiting for a new one to be developed, or the investments for such a strategy might just be too big.

 

Challenges in such a scenario often come down to things like 'cloudification', technology modernisationmonolith-to-microservices transition, etc. There is never a silver bullet in these cases, but an experience based approach with incremental improvements and continuous planning can certainly revive a legacy solution.

I have broad experience in modernisation and re-architecting existing legacy solutions, for for example by using lift-and-shift and strangler pattern approaches.

Geometry Tools

Technology, Tools & Concepts

Microsoft Azure - AWS - Microsoft .Net (Core) - Kafka - RabbitMQ - Event Store - Docker - Kubernetes - (no)SQL Databases - JSON - XML - RESTful - SOAP - Istio

MS Visual Studio (Code) - Swagger - Sparx Enterprise Architect

Micro Services - Domain Driven Design - Event Driven Architecture - Event Sourcing - Event Storming - Story  Mapping - API design - Service Mesh