

As part of my annual 'learn-unlearn-relearn' practice, I’ve focused on developing a deeper, more comprehensive understanding of Data Engineering as a holistic discipline. When I transitioned into Data Engineering five years ago, I relied heavily on my technical skills to bridge the gap caused by my previously unrelated experience. After gaining a solid foundation in the field, I recognized the importance of going beyond just technical execution and dedicating time to truly understanding the core concepts of Data Engineering.
Recently, I’ve been reading Fundamentals of Data Engineering by Joe Reis and Matt Housley. In this post, I’d like to share some key insights from the book on what makes a strong data architecture.
Choose common components wisely

Common components are shared assets used by multiple teams across the organization (e.g., Git tools, object storage, orchestration frameworks, etc).
Identify tools that benefit all teams.
Avoid a one-size-fits-all approach
Architecture is leadership

As data engineers, we should embrace architectural leadership and actively seek mentorship from experienced data architects, when applicable.
Ability to mentor the data engineering team, train them in best practices, make informed technology choices, and align resources to pursue shared goals in both technology and business.
Always be architecting
Data architecture is not a one-time solution; it’s an agile system that must continuously adapt to evolving business needs and technological advancements.
Develop a comprehensive baseline architecture (current state), define the target architecture, and create a sequencing plan to prioritize and schedule changes effectively.
Build loosely coupled systems
Loosely coupled components
Break down the system into small components.
Each component of the system can be updated separately, without affecting the other components.