I'm a stickler for clarity on what's being done - so horrid variable names, weird layout of methods and functions tick me off. When the juice isn't lose, I wind up writing code somewhat resembling what I want, and then cold stopping. I don't try and pretty it up in hopes I got it right, like Tetris. I just stop. I sleep on it until I figure it out.
in reply to How do you code?
Then I solve the problem.
When the juice is all over the place, I write unit tests against interfaces to a degree, write some skeletal code and then fill it up. It helps me understand how things are laid out.
I try not to be to split across projects. Once I pass two, I start to get confused, or worse, neglectful.