Usually I&#x27;m pursuing something. Along the way as I gain experience and encounter difficulties I put my head up and look for solutions. I don&#x27;t always find what I&#x27;m looking for but it gives me hunches. When those hunches collide I get ideas and from there it becomes pretty clear what I know and what I need to learn in order to progress.<p>I&#x27;m presently learning predicate calculus and formal specifications of software systems. I came to it by hunches: software engineering should be more like engineering because companies like Yahoo! Japan are building earthquake notification systems on OSS infrastructure and the keynotes at Blackhat suggested it was a requisite for this industry to move forward. It turns out the math is beautiful and it helps me design better software and I&#x27;m only just getting started.<p>It has also added new things to my list of things to learn such as the refinement calculus as well as alternative modelling systems like Event-B.