Author Archives: Graham

About Graham

I make it faster and easier for you to create high-quality code.

Prototypical object-oriented programming

Some people think that the notion of classes is intrinsic to object-oriented programming. Bertrand Meyer even wrote a textbook about OOP called A Touch of Class. But back in the 1980s, Alan Borning and others were trying to teach object-oriented … Continue reading

Posted in javascript, OOP | 1 Comment

In defence of assertions

The year is 2017 and people are still recommending processing out assertions from release builds. many assertions are short tests (whether or not that’s a good thing): this variable now has a value, this number is now greater than zero), … Continue reading

Posted in code-level | 1 Comment

In defence of large teams

Seen on the twitters: 1) Bad reasons why tech startups have incredibly large mobile teams even though from an engineering perspective they don’t need it. This is the No True Scotsman fallacy, as no true software department needs more than, … Continue reading

Posted in Uncategorized | 1 Comment

Your build needs to be better

I’ve said it before, build systems are a huge annoyance. If your build is anything other than seemingly instantaneous, it’s costing you severe money. Your developers are probably off reading HN, or writing blog posts about how slow builds cost … Continue reading

Posted in architecture of sorts, code-level, tool-support | Leave a comment

I just want to point out that even the best of us aren’t doing what we expect the makers of acne creams to do. What we actually know about software development, and why we believe it’s true by Greg Wilson.

Posted on by Graham | Leave a comment

Why your app is not massively parallel software

That trash can Mac Pro that hasn’t been updated in years? It’s too hard to write software for. Now, let’s be clear, there are any number of abstractions that have been created to help programmers parallelise their thing, from the … Continue reading

Posted in whatevs | Leave a comment

Working Effectively with Legacy Code

I gave a talk to my team at ARM today on Working Effectively with Legacy Code by Michael Feathers. Here are some notes I made in preparation, which are somewhat related to the talk I gave. This may be the … Continue reading

Posted in advancement of the self, books, code-level, learning, software-engineering, TDD | Leave a comment

Build systems are a huge annoyance

Take Smalltalk. Do I have an object in my image? Yes? Well I can use it. Does it need to do some compilation or something? I have no idea, it just runs my Smalltalk. Take Python. Do I have the … Continue reading

Posted in code-level | Leave a comment

Tsundoku

I only have the word of the internet to tell me that Tsundoku is the condition of acquiring new books without reading them. My metric for this condition is my list of books I own but have yet to read: … Continue reading

Posted in advancement of the self | Leave a comment

A full-stack software engineer is someone who is comfortable working at any layer, from code and systems through team members to customers.

Posted on by Graham | Leave a comment