Latest Post's

Fun With Chat

Chat is becoming the next platform. Interacting with computers through channels that you already use to talk to people (Facebook Messenger, SMS, Slack etc) in a way that feels natural is a powerful way to accomplish many things for which web pages, mobile apps, desktop applications, or commandline scripts are cumbersome. Chat is not a panacea for all user..

Fear Of The Unfamiliar

A number of things have come up in the last few weeks for a project I’m involved in that has shaken my beliefs and shifted my perspective. The team I work with have all developed a deep level of experience within their domain of expertise.  This is part of the competitive advantage we use to win clients.  Smart people with..


One thing has come crystal clear over the last couple of weeks.  Distractions can easily destroy your productivity. I remember fondly the days when I would write hundreds of lines of code per day.  Find a problem to work on and focus intensely on it for hours. Churning out features and fixes at a steady pace. These last few..

Writing Algorithms

Ah algorithms, that fundamental part of computer science education (and job interviews) which seem to very rarely come up in real world, day to day software development. Sometimes I have a  real yearning to tackle a technical problem that involves writing an implementation of a red-black tree or a bucket sort, or hell, just write a function that uses..

Chat First Design

They say that the market for Mobile Apps is now mature. The stores are topped by the big companies – Facebook, Google, Microsoft and the design languages are now more or less stable for mobile platforms. The next hype’d interface is chat. For a generation of kids txting is the most comfortable way to communicate and having services that..

Challenge: Code With Your Eyes Closed

I have noticed something very different about how I develop my own projects compared to the ones where I’m working for someone else.  It’s a pattern I think many people follow in how they tackle hard intellectual problems in a work setting based on the expectations of others. When working on my own projects I often find myself sitting..

Opportunity Costs

We all only have so much time and attention, and with constantly being pulled by work, friends, family in various directions we are only able to give our own causes and ambitions a percentage of ourselves. Opportunity cost is what we lose out on for taking one path over another.  In a way opportunity cost is infinite.  We could..

Best way to learn Machine Learning

I’m going deeper in my learning about how to successfully implement machine learning algorithms this year by initally doing a survey of all the resources out there for learning this stuff. It is a fast moving area of expertise and as such newer techniques and tools wont be covered in older books or tutorials. MOOCs are now a great..

Slowly Delving into AI

This year seems to be a big year for AI development. Deep Learning approaches are going to be applied to more areas and I expect most of the big name tech companies will continue to expand their research in the area. The encouraging thing for the rest of us developers is going to be the opening up of core..

Learning AI Algorithms

One of my goals for the year is to get deeper into learning the new generation of AI algorithms and practice getting good at applying those to real problems. AI has been one of those areas that always fascinated me, and then I took the AI course at university and learned that it just wasn’t as difficult or as..