Bang Head On Desk

Attempt software development, encounter problem, facedesk, blog.

This blog details some of my thoughts and experiences in the world of software development. The title is a dedication to the universal process of writing code.

July 2018

Beer Euler Diagram (Ealing 2018)

My yearly traditional pilgrimage to Ealing (well, Walpole Park) for Ealing Beer Festival wouldn't be complete without my top beer picks represented on an Euler diagram - so here it is!

- 10th July 2018 22:36
Beer Euler Diagram (Ealing 2017)

Every year I enjoy attending Ealing Beer Festival, as it's the easily the best of the main London beer festivals. This post contains my top picks from this year's beer list, in Beer Euler Diagram Form.

- 7th July 2017 08:53

January 2017

A retrospective on my university course

I graduated from the University of Surrey a decade ago. This is a reflection on my experiences, the good and the bad of teaching IT/computer science at university, and an attempt and working out if it's still value for money.

- 15th January 2017 22:53

December 2016

Project planning and scale

Most of the projects you work on at university are relatively small. In professional software development you'll encounter projects of every scale, not just in terms of customers or throughput, but also complexity.

- 14th December 2016 21:43

November 2016

Consuming APIs and libraries

Software development is all about trade-offs. You can use APIs and libraries to build features quickly and to open up new opportunities for functionality, but this all comes at a cost.

- 27th November 2016 22:44

August 2016

Thinking Retrospectively

Reflection and planning is core to continuous improvement. It's also something that we all must master as part of software development, and our wider involvement in business.

- 3rd August 2016 08:33

July 2016

Presenting your work effectively

Presenting your work is a valuable skill and universities skimp on teaching it. This post contains some tips to help you prepare and also how universities can address the skills gap.

- 11th July 2016 21:35
Beer Euler Diagram (Ealing 2016)

Every year I enjoy attending Ealing Beer Festival, as it's the easily the best of the main London beer festivals. This post contains my top picks from this year's beer list, in Beer Euler Diagram Form.

- 4th July 2016 21:32
You will ship code with bugs

The reality of shipping products is that you'll ship with known bugs. This post is about why that happens and how to prioritise remedial work.

- 3rd July 2016 20:51

June 2016

Regressions matter

On a typical university course, almost all code you write is thrown away. This means that you won't have to deal with the possibility of introducing bugs into existing, functioning code. This post covers that topic in detail and outlines why it's so critical to understand.

- 30th June 2016 21:15
Proper teamwork

Universities sometimes force you to work with others in a group setting to "teach" key teamwork skills. I explain why this strategy is awful and how it could be made better.

- 19th June 2016 13:10
Writing code for the long term

One of the common problems encountered by students or fresh graduates when they begin working on real software projects is that, though they have excellent knowledge of computing theory, they are missing many of the skills required to write good code. This post suggests how universities could improve coursework to teach those key skills.

- 12th June 2016 22:34
Things university doesn't teach you about software development

During my day-to-day work I often encounter gaps in the knowledge or skills of students and graduates due to deficiencies in modern university computing courses. This blog post series is my take on the gaps, and how the courses could be improved.

- 12th June 2016 21:55

April 2016

QCon 2016

I recently attended QCon London 2016, and it was packed with great content, covering a very wide range of issues that we deal with in the computing and IT world. As last year, I've quickly summarised my experiences at the conference and some of my favourite presentations.

- 7th April 2016 22:15

September 2015

Multi-factor authentication and Sinatra ROTP

During Fivium Hack Day 2015 I wrote Sinatra ROTP - a simple Sinatra-based REST API that provides a One-Time Password service.

- 9th September 2015 23:08

July 2015

Beer Euler Diagram (Ealing 2015)

Every year I enjoy attending Ealing Beer Festival, as it's the easily the best of the main London beer festivals. This post contains my top picks from this year's beer list, in Beer Euler Diagram Form.

- 1st July 2015 22:01

June 2015

TRIM Web Service

A summary of my experiences using the HP TRIM web service "feature" and some sample code for anyone out there unfortunate enough to be working with it.

- 24th June 2015 21:25

March 2015

QCon 2015

A couple of weeks ago I had the opportunity to attend QCon London and experience a lot of interesting talks about a surprisingly wide range of topics in the computing / IT industry. This is a quick summary of the overall conference and talks or presentations I enjoyed the most, and what I took away from the conference.

- 15th March 2015 22:30

January 2015

Software Archaeology

One of the most difficult skills to learn as a software developer is understanding code. This blog post discusses some techniques and tools to help you, and the reasons why you need them.

- 3rd January 2015 19:10

August 2014

Great British Beer Festival 2014 Strategy

My top picks for the Great British Beer Festival 2014 and why I didn't create a Euler diagram this time.

- 14th August 2014 08:15

July 2014

Installing Curb on Windows

As a developer using Windows, I sometimes encounter obstacles due to my operating system choice. In this blog post, I detail how to install the curb gem on Windows which comes with a native (binary) extension.

- 5th July 2014 16:32

June 2014

Beer Euler Diagram (Ealing 2014)

My favourite beer festival of the year is, without a doubt, Ealing Beer Festival. In this post, I present my top picks for the festival in Euler Diagram form, along with the Visio template I used to produce it.

- 30th June 2014 20:50
Hosting with Heroku

There are plenty of quick start / getting started guides out there, but while setting up both this website and iSomething, I hit a few issues and noted down some things that could be improved. I wanted to share these thoughts as they may be useful for anyone thinking about using Heroku for hosting.

- 26th June 2014 22:34
Oracle 11g User Passwords

When setting up a new database, it's sometimes easy to forget that Oracle users are almost universally created with default/poor passwords. This blog provides some general background information on how Oracle stores passwords, and the script that I wrote to check if they've been changed to something more secure.

- 14th June 2014 15:50

I thought a great way to properly start off this blog would be to talk a little bit about how I wrote this website and why I did some of the things I did.

- 8th June 2014 20:45

Welcome to my humble blog - I've nicknamed it "Bang Head On Desk" as a homage to a (mostly) metaphorical stage of software development, usually caused by building on the digital equivalent of quicksand (also known as things that other people wrote).

- 4th June 2014 15:21