Write tests. They'll save your ass.
If it's happened more than twice, don't ever do it by hand again.
If it can possibly be done outside the request/response cycle, defer it. Mailers, uploads, audit trails.
If there's a lifecycle, model it as a real state machine. Beware ad hoc flags.
You'll write it once, but you'll read it a lot. Code accordingly. Sometimes simplicity takes a bit longer, but it'll pay off rapidly.
Inconsistent file names, task names, or code hurts productivity.
Keep frameworks, plugins, libraries, and tools up-to-date, but think twice before using a production app to play with the bleeding edge.
Don't speculate, get data. Act on what you know, not what you suspect. Is that code really faster? Do users really want that feature?