Skip to content
Mustafa Erbay
Career · 6 min read · görüntülenme Türkçe oku

As a System Architect, I Wish I Had Learned This Sooner

In my 20-year career, one of my most valuable lessons wasn't about technical knowledge, but about understanding my own limits and the cost of saying 'yes'.

100%

The biggest and most costly mistakes in my career weren’t hidden in a line of code or a misconfigured network. In fact, my most expensive lessons came from the indirect consequences of saying “yes” to a task or taking on a responsibility. As a system architect, one of the most important things I wish I had learned earlier was this: you can’t do everything, and trying to do so can cause more damage than even the greatest technical debt.

For twenty years, while navigating between systems and networks, I’ve encountered many complex problems. From PostgreSQL WAL bloat to AI-driven production planning algorithms in a manufacturing ERP, I’ve delved deep into technical stacks. However, during this process, I realized that the way people communicate, their expectations, and their boundaries are just as critical as the technology itself.

The Cost of Saying ‘Yes’ to Everything

Over the years, I found myself on many projects. Especially while developing an ERP for a manufacturing company, saying “yes, we can do it” with every new request became almost a reflex. These decisions, made in the name of customer satisfaction, flexibility, and rapid adaptation, might have seemed to work in the short term, but in the long run, they insidiously eroded the project’s core architecture and the team’s energy.

This approach led to many technical problems, from minor glitches like SystemD unit reliability issues to insufficient partitioning strategies in PostgreSQL. Every “yes” unknowingly meant new technical debt, a new maintenance burden, and most importantly, a decline in team morale.

A Heavier Burden Than Technical Debt: Communication Debt

Often, the root of our technical problems lies in a lack of communication and expectation management. It’s easy to blame the ORM when struggling with N+1 query issues in PostgreSQL. But most of the time, these problems stem from the business unit not fully articulating what they want, or us not understanding that request correctly.

While working on an internal platform for a bank, we were dealing with complex BGP routing decisions and VLAN tagging configurations. However, the system’s biggest bottleneck was an insufficient communication chain that failed to accurately reflect the needs and priorities of different departments. As a result, no matter how robust the technical architecture was, communication breakdowns could paralyze the system.

Knowing My Own Limits

As the years passed, I had to learn to recognize my own physical and mental limits. At 3 AM one night, when my own side project’s backend crashed due to Redis OOM eviction policy, I realized that my insistence on doing everything myself came at a price. This wasn’t just a technical error; it was a consequence of pushing my own boundaries and not asking for help.

Events like these taught me that not only technical solutions but also skills like personal time management, delegation, and the ability to say “no” are critical competencies that a system architect must have in their arsenal. The sustainability of a system is directly proportional to the sustainability of the team building it.

The Dance Between Pragmatism and Perfectionism

As a system architect, we always strive for the most perfect solution. However, my field experience has taught me that sometimes, a “good enough” solution is far more valuable than the time and resources wasted trying to achieve “perfect.” On a client project, instead of creating a complex SELinux profile for security, we achieved much faster and more effective protection with simple fail2ban rules and a proper Nginx reverse proxy configuration.

For example, when designing a VPN topology, while implementing all layers of a Zero-Trust architecture would be ideal, we were able to make significant security improvements with more pragmatic steps like segmentation and routing authentication, given the existing infrastructure and budget constraints. Perfectionism can sometimes be your biggest enemy; pragmatism, on the other hand, gets you to your goal.


In this twenty-year journey, beyond the technical details, I’ve learned how critical “soft skills” like human relationships, expectation management, and knowing my own limits are to a system architect’s success. If only I had learned these lessons at the beginning of my career, perhaps I would have encountered far fewer “disk fires” or “WAL rotation alarms.”

So, what’s the most important lesson you wish you had learned earlier in your career? Don’t hesitate to share in the comments.

Paylaş:

Bu yazı faydalı oldu mu?

Yükleniyor...

How was this post?

Frequently Asked Questions

Common questions readers have about this article.

As a system architect, how did you start to understand the cost of saying 'yes'?
Over my 20-year career, I experienced the cost of saying 'yes' on many projects. Especially while developing an ERP for a manufacturing company, saying 'yes, we can do it' with every new request became almost a reflex. However, this approach insidiously eroded the project's core architecture and the team's energy. These experiences taught me that every 'yes' unknowingly meant new technical debt, a new maintenance burden, and most importantly, a decline in team morale.
What were the biggest challenges when working between system architecture and networks?
I encountered many complex issues while working between system architecture and networks. From PostgreSQL WAL bloat to AI-driven production planning algorithms in a manufacturing ERP, I delved deep into the technical stacks. However, during this process, I realized that the way people communicate, their expectations, and their boundaries are just as critical as the technology itself. Therefore, I learned that considering the human factor is as important as finding solutions to technical problems.
What are the advantages of saying 'no' during a project?
I experienced the advantages of saying 'no' during a project. I saw that saying 'no' helped protect the project's core architecture, preserve the team's energy, and boost their morale. Furthermore, I learned that saying 'no' also helps reduce technical debt and lighten the maintenance burden. Therefore, as a system architect, I believe saying 'no' is sometimes the right decision.
What strategies should I use to reduce technical debt and maintenance burden?
I use several strategies to reduce technical debt and maintenance burden. First, I consider the technical debt and maintenance load of every 'yes.' Additionally, to protect the project's core architecture, I regularly clean up technical debt. Third, to preserve the team's energy, I distribute the workload evenly. Finally, to clarify communication and expectations, I regularly meet with clients and my team. I believe these strategies are effective in reducing technical debt and maintenance burden and helping the project succeed.
ME

Mustafa Erbay

Sistem Mimarisi · Network Uzmanı · Altyapı, Güvenlik ve Yazılım

2006'dan bu yana sistem mimarisi, network, sunucu altyapıları, büyük yapıların kurulumu, yazılım ve sistem güvenliği ekseninde çalışıyorum. Bu blogda sahada karşılığı olan teknik deneyimlerimi paylaşıyorum.

Kişisel Notlar

Bu notlar sadece sizde saklanır. Tarayıcınızda yerel olarak tutulur.

Hazır 0 karakter

Comments

Server-side AI Moderation

Comments are AI-moderated server-side and stored permanently.

?
0/2000

Server-side AI moderation

✉️ Free · No spam · Unsubscribe anytime

Get notified about new posts

New content and technical notes — straight to your inbox.

  • 📌
    Best of the week Single most-worth-reading post
  • 🔧
    Toolbox notes Real tools I used this week
  • 🧠
    Behind-the-scenes Notes that don't make it to blog

We don't spam. Unsubscribe anytime. · Tracked only by Umami (self-hosted, no Google).

Your Reading Stats

0

Posts Read

0m

Reading Time

0

Day Streak

-

Favorite Category

Related Posts