Principles
Principles, loosely defined and incomplete.
Engineering
- Deal with the mess.
- Let different things be different.
- Always use UUIDs.
- Delay serialization.
- Look at things.
- Never name something
end
. Always eitherendExclusive
orendInclusive
. - 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. - 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.