Iterate fast > perfect
Write it down to relieve cognitive load.
Uni-task (focus on one thing at a time)
Prioritize and execute.
Solve problems by:
a. Invert - improve by subtraction
b. Decision trees - compare outcomes, reduce load
There are two types of decisions. Hard choice (A vs B), or multiple factors (A vs B vs C, but you can do A+B etc).
Hard choice model. Is it a hard or easy choice? Does it have low or high impact. Hard to compare, low impact = apple vs oranges, focus on optimization.
Hard to compare, high impact = get impact and mitigate negatives.
Easy comparison, low impact = Go with your gut
Easy comparison, high impact = Be confident
For multi factor decisions use a decision matrix.
Understand systems by looking at the connection circle or iceberg model.
Connection circle is when you take the key elements and put them on a circle as points. If there is a cause and effect relationship you draw an arrow from one element to another. If arrows end up connecting three or more elements together you have located a closed feedback loop.
Iceberg model, top of the iceberg (what's visible) is the event that just happened, underneath that there are patterns/trends, under that structures and connections. The deepest part of the iceberg are the mental models and assumptions made by people. If it's a system I don't understand I will confirm my path down the iceberg by looking at the code, testing the code and talking to SMEs
In terms of actual code reminders I try to make it work, make it right, make it fast.
I also try to do always, then inhibit, then ignore cases that don't apply.
Minimize if statements to have consistent execution.
If a function is called from one place I will inline it. From multiple places I will try to see if I can have it happen in one place so I can inline it (plus it's an optimization thing). For complex calculations if I can't have it happen once I will try to cache it, but cache invalidation can get tricky, so I always opt for do it once.
Finally I try to write pure functions, look at parameters and return one or more computed value.