Programming
When I started working on Blot, I did not know how to program. I did less research than I ought to have done. I wasted time creating tools that others had already made.
Infrastructure
- I avoid using tools that have been around for less than a decade.
- I try to understand the environment in which Blot's code runs.
Back-end
- Reliability is the most important attribute of your software. I dislike software that is not dependable.
- Speed is the second most important attribute. I dislike software that is slow. Blot involves lots of i/o, like reading files from a disk or syncing a file over a network. Because of this, most of what really needs to be optimized is i/o. Nothing is especially computationally intensive. Avoiding even one external HTTP request from a function saves much more time than endless language-level performance optimizations.
Front-end
Speed above everything. I run almost everything send to the client through as many build-time minifiers and compressors as is reasonable. I want to improve the speed of Blot. I also use a neat script called instant.page to begin fetching a page when the user hovers over a link.
As little JavaScript as possible. In general, I want to do as much computation as possible on the server, as little as possible on the client. This is because I control the server, but not the client.