Which Non-testing focused book do I wish I’d been given on my first day as a tester?

This topic is one dear to my heart, and it’s got a surprising answer, at least I think it’s surprising. I was expecting to recommend a Python book, or a psychology book, or even a design book, but in fact I’m not going to mention any of those, though I’ve read many which have been quite useful.

No, instead I’m going to recommend a book that surprisingly few people appear to have heard of, and it’s a sci-fi novel. It’s free from the author’s website (though it’s also available from Amazon and the like if you want to support the author), and it’s Blindsight by Peter Watts.

A novel about aliens, consciousness, transcranial magnetic stimulation and the cost of thinking might seem like a very strange choice, but allow me to elaborate.

The book focuses on Siri Keaton, a human who’s had most of his empathy centres in his brain removed and replaced with computer hardware. He’s a “synthesist”, he takes information he doesn’t understand, reshapes it into another form that he doesn’t necessarily understand either, but which others can process. The analogies to a neural net are quite obvious and the exploration of bugs in humanity’s firmware (saccades, hallucinations, the illusion of control that consciousness provides) only serve to extend the software analogies.

Siri is called to use his powers to investigate an alien presence in the outer solar system with a team of similarly “enhanced” humans, only to find that the aliens speak English. This is only the start of what pans out to be both a gripping thriller and an examination of consciousness and what it means to understand. The book draws your mind into strange paths and often makes you reexamine axioms you’ve held true for a long time. It can actually be quite deep in areas and the fact that Peter Watts provides a biliography in his books is definitely appreciated, you can go quite deep into the rabbit hole starting at one of his books.

So why does it help you test?

The book itself is something of a system shock, the sharp questioning of the basis of your world view throughout the book is a reminder that no matter what you think you know about a system, you don’t know anythng until you try to disprove it. I reread it every year or so to remind me to keep questioning, keep looking into what I think I know and why I think I know it. Also who doesn’t love space vampires? (Pretty much everyone if you read the book)

Bonus book!

Not testing related but a damn good read anyway: Clara Mandrake’s Monster by Ibrahim S. Amin Full disclosure, it was written by a friend of mine, but I’m recommending it because it deserves more attention than it’s currently getting. Magic, monsters, religion and war clash in a world different from our own but instantly recognisable. Highly recommended!

Contact me

If you want to talk to me about this, you can reach me here on Github or on Twitter @Testing_crafty


Looking for a job in Cambridge (UK)? I’m currently hiring for a second to help me steer and lead testing efforts at Geospock. The product is geospatial and temporal databases on a massive scale with attendant analytics and visualisation platforms. The testing problems are non-trivial, but interesting and engaging. Much of the testing is done by the developers, with the test role being more helping developers decide what to test and implementing frameworks and infrastructure to help the developers test. The test areas range from database testing, API testing, web testing to infrastructure testing and testing the limits of systems at massive scale.

We’re expanding this year as customers increase and the likelihood is that any new tester on my team would be mainly involved in helping create testing strategies and automation for customer deployments. Office culture is generally relaxed and fun, and we’re improving our facilities as we grow (new kitchen, games room, coffee machine coming shortly). We also have a good pension, dental, health and work from home is not unusual. Variable height desks for all and Mac or Linux as standard (Mac is more useful for a tester as we do need to test against Safari). Languages we use are Java, Kotlin, Python3, Javascript, Ruby, Scala, Erlang. You do not need to know all of these. Familiarity with and a modicum of experience in any scripting language would be great, anything beyond is a bonus.

It’s cloud based mainly, so think AWS, Azure, Google Cloud etc. again you don’t need to be an expert in any of these, I’d never used them when I arrived. Familiarity and comfort with a Unix shell of some flavour would be a definite advantage as SSHing into a cloud machine to pull syslogs or tweak a set up is quite common.

If this rambling set of words hasn’t put you off you can read the official spec here