Building tools…

Several years ago I was reading Hackers by Steven Levy again…one of the thing that jumped out at me was how much of the time in those days was spent writing tools. I like tools. I think that’s one of the thing that has always interested me about machining was the idea that you build tools..to build tools..to build tools.

About two years ago I bought a desktop computer and put it in the corner of my office and put Linux on it. The goal: see about moving all of my work over to linux and moving off of osx. I didn’t install email or messenging/chat applications making it a distraction free zone. #winning. The thought in the back of my head was that if i couldn’t find what I was looking for I would build my tools. Surprisingly, most of my day to day tools either have a linux client or are web-based so the transition was not as traumatic as I thought it might be. With one largish exception.

A decent task management system.

I really enjoy omnifocus on osx (I often wonder if I am using it to its fullest but that’s another discussion) I am sure there are other task management systems out there that are webbased or that sit on linux but in this case, I really wanted some very specific things. I had just finished reading a book called platform revolution and thought a lot about what a task management platform would look like. In addition I had also started reading a bit about Go, and Docker, and React. So there we had it, almost a cliche project. Build a task management system.

I now have a mongodb sitting behind a go server, with a react front-end that tracks all of my tasks for projects. It is certainly not as full featured as omnifocus but it has been surprisingly rewarding to build. Its nice to have tools that can be easily changed or updated to fit how you work. So much of my work over the last 2+ decades has been for clients that it has been nice to decide what features should be built next and then just go build it.

The idea of platform has been interesting to consider, I have a pretty rich API and with some of the things that are currently in progress I believe that the system is well on it’s way to being a pretty nifty content management system, ticketing system, etc. It is surprising how many things are possible when you have a system where you can define schemas at runtime and then immediately start populating data. (Hello Salesforce.)

In a nod to machining I decided to call the system headstock, after a component of a lathe. At some point in the future I will make the whole system available to the public in some way. Right now things are in so much flux that I would just drive users nuts with the constant updates/changes/etc.