One thing that every software developer needs is a personal dry erase board. Having a smaller dry erase board that you can keep with you is a wonderful tool for thinking about the design of software.
11 x 14 has been about the perfect size. Much like tooling can help you easily reshape your code as you think about it in different ways, a dry erase board lets you represent your thoughts visually and quickly iterate on them as you get feedback and discover flaws in your mental model. They’re also fantastic for any sort of collaboration such as pair programming, offering a way to devise a plan of attack in psuedo-code before jumping into implementation.
Wall-size whiteboards are great, but there’s something about having a place to do a memory dump and not surround it with frantic “SAVE!” notices. Once latency is indistinguishable from a dry erase marker on a tablet computer then that may be the way to go, but for now I’m happy with the $10 low-tech solution.