294 karma · joined April 26, 2021
Odin?
Basically with a bit of drilling, a competent programmer should be able to get the hang of those questions, and maybe the fact you can get competent at doing tricky, niche things is a useful indicator.
I wouldn't say doing leetcode would in anyway make you better at writing clean, well structured code, which is what we typically interview for in non FAANG. Probably does help sharpen your cracking out gnarly inner loop type coding skills i.e. better at writing a difficult function, doesn't do anything for how you would write the rest of the program.
Also if it is opt-out by default I guess it will be simple to see who has opted-in, a nice list of shame.
Does this circumvent the EU cookie laws?
I assume I can set my browser to opt out easily?
If you model at the correct level of detail, you don't have pain keeping them in sync, one you start to model the implementation details you need to adding more complexity to your model to be able to sync the model :)
Component diagrams, what is connected to what?
Activity diagrams, what are the activities that happen, and have they got names?
Sequence diagrams, so microservices on top of microservices, hmm please show me how you get item x?
State Diagram, are you sure you have got all the possible state transitions?
ERD diagram, Chen style, I don't like it when the look like SQL tables (maybe we don't have/want/need a relational database, so lets not start shaping it like one at the concept stage). The physical/logical models I don't see much value diagramming.
BPMN can be useful alternative to Activity diagrams sometimes.
edit: left off Use Case diagram, so simple yet seen teams struggle so many times to articulate this.
A key thing about doing a diagram or document is that they force you to clarify your understanding. Another rule of thumb is if you are struggling to keep you docs/diagram in sync with your implementation, you have likely made you docs too detailed, its a high level map to guide not a detailed set of instructions on how to construct.
We tend to go to either extreme, UML all the things (model driven design), massively over specify things before you write code. Then react by saying, this thing doesn't work when you try to do non sensible tings with it, its terrible, anyone who uses it doesn't get it.
The next gen of devs come along and thing its just for old folk who aren't down with the times.
Meanwhile, some people who never never fell into the trap of the extremes carry on to use it when useful and in a sensible way. Perhaps even try to show some newer devs the benefits, but have to now get past these preconceptions, even though the newer guys haven't any experience. These people are now often leading large engineering groups, and often want a basic overview of designs (not to the minuet detail), and really don't care about your classes, but please give me a sequence diagram so I can see how this microservice it actually going to fit in, and show me you have thought through the state transitions of the data.