Principles, loosely defined and incomplete.

Engineering

  1. Deal with the mess.
  2. Let different things be different.
  3. Always use UUIDs.
  4. Delay serialization.
  5. Look at things.
  6. Never name something end. Always either endExclusive or endInclusive.
  7. When a method is dangerous to call, add _DANGEROUS_DANGEROUS_DANGEROUS_BECAUSE_XYZ to its name; when a section of code is dangerous to change, add // DANGEROUS DANGEROUS DANGEROUS IF YOU CHANGE THIS THEN XYZ WILL HAPPEN before every single line in the section.
  8. Good tools are critical. For whatever you’re doing, ask the most senior engineer you know what their favorite tool is for it. If that person isn’t immediately available, ask the best language model (you’ll trade off precision but still get surprisingly good recall). If there isn’t a good tool, make one.