When recruiting new engineers to the company, we want to check theirs skills in designing systems.
In my company, we call it “system design”. Candidates talks about high level components of the system – e.g. microservice here doing A, using database B, and maybe component C; another microservice there, with some queue, some lambdas etc. Anyway, high level stuff.
And where candidate is happy that he answered correctly, then I’m trying to check his low level design skills. I’m checking if he knows separation of concerns (e.g. no logic in controllers), dependency injection, if he has any idea about rich domain models, onion (hexagonal) architecture, interfaces, immutable value objects, CQS, events vs commands, design patterns, difference between DTO and domain entity, etc. I often find people has barely any idea about it.
I call this part “code architecture”. Is it correct name for this?
submitted by /u/bzq84
[link] [comments]