I’d like to learn more about people’s experiences building larger backend software systems (say > 5 nodes), either atop some public cloud (like AWS, Google, or Azure) or atop private cloud infrastructure. Having done work myself in these areas, I know that it can sometimes be painful and/or complicated, and there are lots of different technologies aimed at making it easier.
This post advocates a design philosophy I’m calling view-inspired, model-driven. We’ll look at a domain, task-tracking and project management, and examine the failure of an alternate philosophy, ‘view-first’, using Trello as the case study. I don’t mean to pick on Trello specifically, because once you are on the lookout for it, you can see the symptoms of view-first design in many applications.
This post summarizes the advantages (and drawbacks) to static typing, as simply as possible. None of these arguments are new or my own, but I wanted to consolidate them in one place.
Names and the little details of an API matter. I’m going to pick on one small example I came across recently. In unagi-chan, a very fast lock-free queue implementation, we have the following API:
There are lots of things that could be improved about the world, and many things to be unhappy about. You’ve probably got a long list of such things, like everyone else. Now, what are you going to do about them? No, really, what are you going to actually do?