Live data from Hacker News

Ask HN: How to get good at software system architecture

news.ycombinator.com

1–10 of 18 posts

Re: Ask HN: How to get good at software system architecture

#3
i would say experimentation. trying implementing different arichtectures with relatively simple implementations. one thing that helped me was getting books and articles about different design principles architectural ideas etc. and then creating them myself. Also, what is 'good' here? i am assuming, knowing when to use what kind of architecture. some are easier to create, some perform better, some are easier to collaborate on in large teams, costs can be a factor too. Are you looking for a specific thing or wanting to generally know more about the topic.?

Re: Ask HN: How to get good at software system architecture

#4
post #3

i would say experimentation. trying implementing different arichtectures with relatively simple implementations. one thing that helped me was getting books and articles about different design principles architectural ideas etc. and then creating them myself. Also, what is 'good' here? i am assuming, knowing when to use what kind of architecture. some are easier to create, some perform better, some are easier to colla…

I have a specific thing in mind, but I think I lack sufficient knowledge of what's out there to make the best trade off for my specific use case. To be honest, I lack basic knowledge of different system components. To give an example I know redis is a key value store. But i wouldn't know the drawbacks of using it and what usecases its best use is for. I would like to broaden my knowledge in order to answer such questions as my job requires me to go from a data scientist to more of a solutions architect

Re: Ask HN: How to get good at software system architecture

#5
I echo the experimentation comment.

Also, often choosing the 'right' technology is less important than designing an architecture that is both simple enough and capable enough.

When doing this in my career, I am always considering can it be more simply (i.e. less complexity is easier to grok and is usually less prone to fail) and can it be done more clearly (i.e. such that the intended use of the architecture is obvious).

Re: Ask HN: How to get good at software system architecture

#8
I don't work in the field so I can't say for certain, but AWS and friends really strike me as the type of tech you need to deploy at scale in order for their complexity to be worth the initial up-front learning cost.

Try to think of a project that either needs infra like that to get started, or another one you can deploy in a homelab or a few VPSes or something.

Maybe VMs are a good idea, to give yourself a good place to test things without committing bare metal to anything.

What software system architecture interests you? The scale you're interested in may matter, too. For me, system architecture means which distro (and which set of packages), configs, and other settings that create a cohesive server/client or groupware system. I think a lot of those challenges lay mostly in understanding how computers are being used within a given organization, and designing things in ways that make adapting easier and workflows smoother.

What that looks like, I would imagine is different for every organization.

Re: Ask HN: How to get good at software system architecture

#10
post #4
post #3

i would say experimentation. trying implementing different arichtectures with relatively simple implementations. one thing that helped me was getting books and articles about different design principles architectural ideas etc. and then creating them myself. Also, what is 'good' here? i am assuming, knowing when to use what kind of architecture. some are easier to create, some perform better, some are easier to colla…

I have a specific thing in mind, but I think I lack sufficient knowledge of what's out there to make the best trade off for my specific use case. To be honest, I lack basic knowledge of different system components. To give an example I know redis is a key value store. But i wouldn't know the drawbacks of using it and what usecases its best use is for. I would like to broaden my knowledge in order to answer such quest…

"Gall’s Law: all complex systems that work evolved from simpler systems that worked."

Do the simplest thing that works, if that is hosting something on a VM with SQLite for persistent storage than that is what you implement.

If what you had in memory was a map or a queue and you don't care about persistence then redis is likely going to serve you well when you need to scale to more than one instance, if you never need more than one instance then keep it in memory as a map or a queue.

Don't add things "because that is what :bigtech: does" :bigtech: is not you and if it was, you would have the team to do it or would be building the team and not the software.

Post reply on HN