It’s a common age old adage, the ongoing war between Software Engineer and QA Engineer, the eternal struggle between the bright eyed, and those tasked with enforcing practical reality.

monkeyuser.com/2018/the-struggle/

I mean not to demonise either party here, this is exactly the picture that can be seen if both are performing their roles adequately.

It is very important to understand, at least from a Software Engineering perspective, that QA Engineers, not out to make your life difficult, and often will be happy to help you work out the kinks… mostly.

Neither is a Software Engineer too lazy to verify all of…


I’ve been pretty quiet recently, and that is in half due to my own business, but recently my uncle had died, normally I would try not to make this type of thing public, but my uncle was an extraordinary man.

Jamie, was an extraordinary man, because he always shared an extraordinary passion, curiosity, and genuine awesomeness, and he shared it with everybody.

I remember when he took me to the nearby dirt hill when he liked to motorcycle, I remember when he used to help me with my computer problems (no matter the hour!), …


Puzzler in Unity

For the last few months I’ve been making my way through the Udacity VR Nanodegree coursework, hoping to complete it by the end of the year.

One of the projects for the course is to design, test, complete and most importantly document the process to completion, with an emphasis on the journey from day one to submission.

Overall the concept of the game was relatively simple, following the mechanics you can expect from a Simon Says game, though there were a number of unique considerations that you would have to make.

Designing for VR is much different than other environments…


Early on in my career, you could say I had what you might like to call a mentor, we were friends, we still are, and naturally he taught me a few things.

Things like how to be taken seriously in the workplace as a young developer, how to deal with office politics, but also something quite significant, which has stuck with me since then.

Something that I’ve always believed to be his mantra, to, as he would put it, “fucking own it”.

At first, I believed this to just be his fervour, he was pretty enthusiastic; but I started applying…


Last month, I went into detail about how to use the recently released Dagger 2 Android modules, and how you can make your injection code much more concise.

Google have gone through a lot of effort to enable developers to use Dagger with very little integration and more importantly on how to use a common injection paradigm without the injection target being concerned with how it is being provided with it’s necessary dependencies.

The fundamental actor in this scenario is the AndroidInjector class which can target different elements of an Android application such as Activities, Fragments, and Services.

Additionally, Google…


Many of the articles I write tend to involve application structure or architectural design patterns; and one of the most recurring topics I tend to visit is that of dependency injection.

Dependency injection is probably one of the most important topics of modern application development, whilst often overlooked as a necessity, it allows us to build highly scalable, powerful applications and platforms.

Dependency inversion works seamlessly with many other design principles and in many ways facilitates them, most specifically single responsibility. Effective dependency injection is achieved by providing dependencies through the constructor, usually as interface types, thereby allowing the class…


Modern day development can be one of the most tasking professions around, but without a doubt also one of the most rewarding. Amongst the trialling tasks we must go through each day, one of the most arguably difficult necessities is how we name our types.

This is partly due to the different naming conventions that come into play when using multiple words, underscores, hyphen, camel-case. Though we usually have code style guidelines to enforce a consistent use, this doesn’t really address the original problem.

It can be often overlooked, but naming is essential for the readability of code, how you…

ashdavies ™

Android & Kotlin @GoogleDevExpert , failed blogger, public speaker, maker (and breaker) of shiny things @snappmobile_io (he/him)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store