I’ve had the opportunity to spend about 20 years programming with an unusual level of freedom to improve the design of code I worked on. Too often, outside constraints force us to simply live with poor designs. We get a bitter education about how frustrating our favorite mistakes can be, but we don’t get enough opportunities to make exciting new mistakes. I think I’ve gotten the opportunity to curse past-me in plenty of innovative ways.
I’ve also had the chance to play in a bunch of different sandboxes, from low-level systems programming to sky-high type theory. All the while, learning from the experiences of the wide range of other people I’ve worked with. Most recently, I spent most of a decade getting a Ph.D. that allowed me to spend an unusual amount of time (a) thinking hard about how to design programs and programming languages, (b) reading a lot of good work on software design, and (c) actually writing reasonably quality software. (Anyone who’s dealt with “academic code” knows why that last one might be surprising.)
Right now, I am
funemployed exploring the possibility of starting a company.
I might have more to say about that later, but if you’re dissatisfied with the state of our tools, let me just say: me too.
If you think you could use a software design consultant, get in touch.
Otherwise, I really do appreciate everyone who supports my Patreon.
Not only do I appreciate the support quite a lot, but it serves as good evidence for a publisher that there’s a market for this book.