my code is full of asserts. Including the shipping version (why only test the dev version (they just report to the log), and they should never fire anyway, tho some are gated for the dev version if they are overly expensive). Excessive use of assert is probably my number 1 suggestion to novice programmers.