Tuesday, April 14, 2020

A Guide to System Architecture and Design

While working at the TSX, I spent a lot of time with system architects. Part of that was due to the idiosyncrasies of the organizational structure; I got assigned to the architecture group because they couldn't figure out which development group I belonged in, and partly it was because I needed to work closely with the architects on system documentation. So I learned quite a bit about system architecture and design, though I would never claim to understand it at the level of detail of a real architect.

Still, it was useful knowledge, and would be useful to any technical writer who has to work on system documentation. For example, if you are writing an operations guide, you need to include information on how to recover from system failures, which means you have to understand network connections, data flows, and storage.

FreeCodeCamp has an overview of system design, or architecture, intended to help developers appear knowledgeable in job interviews. It might do that, but it's also a handy overview for technical writers, to help them ask the right questions when they're working on system docs.
This in-depth guide will help prepare you for the System Design interview, by teaching you basic software architecture concepts.
This is not an exhaustive treatment, since System Design is a vast topic. But if you're a junior or mid-level developer, this should give you a strong foundation.
From there, you can dig deeper with other resources. I've listed some of my favourite resources at the very bottom of this article.  

No comments: