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.
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 modernisation, monolith-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.
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