Productivity v.s. Complexity
Over engineering happens when the productivity gained does not worth the effort of work and the complexity added into the system.
A concern in software development that aims to avoid software bugs that cause security vulnerability dealing with random-memory-access, such as buffer overflows and dangling pointers.
Type safety is the extent to which a programming language discourages or prevents type errors.