objective of my blog
In my blog I share my key learnings, discuss about the role and its contribution to development and, of course, examine related topics like domain-driven design, quality-driven design and more.
For example, the involvement of an architect in an agile team or in large-scale projects with several teams has specific needs for the documenting and communicating the software architecture.
Another focus of my attention is domain-driven design. I try to extract the essence from all the publications in order to design better.
The contents on this website reflect exclusively my opinion, not that of my current or past employers!
aha… means?!
aharchitect or ahablog has nothing to do with the well-known 80s band aha, but stands primarily for my initials and my profession:
Andreas Hinkelmann Architect
For more than a decade I work as a software architect in many projects and companies. I have endured various trends and hypes, made wrong decisions and learned lessons from them.
Now I have decided, inspired by the leaders of our profession, to write down my opinions, assessments and experiences in this blog. I sincerely hope to provide you, as a reader, some “aha” moments.
about aharchitect
In my previous jobs, I worked in various software development departments with different tasks and could thus strengthen my knowledge with varied, practical experience. In the meantime, I have already developed software using a wide variety of development processes. Therefore I learned early about the benefits of agile software development in order to achieve the greatest possible customer value.
In addition, this broad and varied work spectrum enabled me to collaborate with all common disciplines or respective roles in software development. In this context I learned to understand the motivations and methods of the different roles and to combine them with my own activities to create together the desired impact.
It is particularly worth mentioning that I have been active in completely different domains. Thus, I already led as an architect teams in the fields of:
- Realtime Computing
I spent several years contributing to the development of a SCADA system. This system automates the power distribution and transmission by processing data in real-time from the power grid and taking appropriate corrective actions. - Multi- and Manycore in High-Performance-Computing
I developed applications that render medical visualizations or fast processing of large volumes of data. I was able to gain several years of experience and knowledge in this field, parallelizing and optimizing tasks on multiple processors, graphics cards or even computers. - Artificial intelligence by means of machine learning
In a CV today, of course, AI should no longer be missing as experience. Fortunately, I do not just look back on practical experience from “Hello World” examples. During my time in medical image processing, we used a wide variety of methods there to improve a physician’s diagnoses using Artificial Intelligence in product quality. Depending on the problem, we applied deep learning, rule-based, statistical or even combined methods. - Microservices
Already in my studies I chose Distributed Systems and Distributed Algorithms as my focus. Throughout my career, I worked on complex software systems that were operated in a distributed manner. From client-server deployment to the current hot topic microservices and self-contained systems, I already designed all of them. - Domain-driven Design
In addition I applied the practices of Domain-driven Design and contributed to the DDD community. Taken several wrong decisions but continuously improve the Systems Design is now in my area of responsibility completely differently. Hence I would call me in the meanwhile a socio-technical architect. - Greenfield project as well as in brownfield projects
Well, the experience in a greenfield project may sound quite ordinary. But in my eyes it isn’t. For me, greenfield means developing a product in a completely new business field. Not to modernize something existing (cf. rewrite), but to move completely into the unknown. New people, new technologies, new process… for a brand new product.
I learned a lot in this project, especially in the lean and to the necessary restricted regulation. In order to achieve a high quality of the software, it is not necessarily helpful to have a process that specifies every move in detail. In this project, I was able to experience what really matters.
This experience I apply in the meanwhile also in brownfield projects I contribute. Therefore, it’s now also easier for me to modernize heavyweight processes to a lean and agile ones. Reducing to the required minimum to avoid waste of time and resources is in the meantime daily practice.