Are you an Incompetent Developer?

One of the most interesting parts of software development, are the group dynamics that form to complete the task at hand. This congregation of individuals compromise many different areas of expertise, personality and skill. Neil Green has created this fantastic website describing these personality patterns that arise in software projects. The reasons these personalities exist,…

A Hackathon Guide – What to do, How to do it & Who to do it with?

Definition: Courtesy of Wikipedia, A hackathon (also known as a hack day, hackfest or codefest) is a design sprint-like event in which computer programmers and others involved in software development, including graphic designers, interface designers, project managers, and others, often including subject-matter-experts, collaborate intensively on software projects.[1] The goal of a hackathon is to create usable software or hardware with the goal of creating a functioning product by the end…

Code Review Checklist

Code reviews are necessary to ensure your application is consistent. We live in an age of copy-and-paste craftsmen, so making sure that the bits that do get copied are correct is imperative for this approach to keep on working! There are many articles out there telling you why code reviews are important, why you should…

Coding Concepts – Cyclomatic Complexity

Cyclomatic what? Even spell check doesn’t recognise the word, but it’s a super useful software metric for understanding how your software works. Having read about it a few years ago, it apparent use seems to have deteriorated. I feel it’s a very valuable tool in a developer’s arsenal, and something that should be used in…

No Frills Keyboard Shortcuts (with Gifs) every Developer Should Follow

Shortcuts for me are the most productive thing that a developer can add to their repertoire that will aid them through their entire career. Learning how to use your system and tools will improve your productivity and in general make traversing all your windows and apps a breeze. The mouse is a great, tool, but…

Coding Concepts – Reflection

Reflection – What you need to know. In computer science, reflection is the ability of a computer program to examine, introspect, and modify its own structure and behavior at runtime.[1] So what does that mean? Reflection is a term thrown around every now and again and but do you really know what it means? Why…

Coding Concepts – Anonymous Methods

What is an Anonymous Method, and when should we use them?   Definition Anonymous Functions – In computer programming, an anonymous function (function literal, lambda abstraction, or lambda expression) is a function definition that is not bound to an identifier. Anonymous functions are often[1] arguments being passed to higher-order functions, or used for constructing the result of a higher-order function that needs to return a function. If the…

Coding Concepts – Understanding Generics

What are Generics, and why should we use them? Generic programming is a style of computer programming in which algorithms are written in terms of types to-be-specified-later that are then instantiated when needed for specific types provided as parameters. This approach, pioneered by ML in 1973,[1][2] permits writing common functions or types that differ only in the set of types on which they operate when used, thus reducing duplication. Such software entities are known…

Moving from .Net to Salesforce. My thoughts and the challenges so far.

Having spent nearly a decade in the Microsoft eco-system, I decided it was time for a change. I’ve developed a range of web applications and tools using the Microsoft stack using some fantastic, far flung and now pretty outdated platforms/technologies such as: Web/Windows forms, WPF,  Silverlight, SQL Server, Web API, MVC, VSTO, Powershell, TFS & VSTS. These were/are…

Microservice based applications – What you need to know. Autonomy and the challenges you will face.

Looking through the challenges faced by developers when implementing microservices and distributed data solutions.