Paul Waring

Freelance C Developer based in Manchester, UK

About

I'm a freelance C developer based near Manchester, undertaking work for clients across the UK, Channel Islands and Isle of Man (and further afield, if you have a UK subsidiary I can contract with).

I started writing C at university and moved on to solve the Advent of Code and Project Euler puzzles.

Code quality and standards

My starting point for compiling code is: -Wall -Wextra -Werror, i.e. all the important warnings, forced into errors so they can't be ignored. If there is a good reason to disable a particular warning I will do so, but my first approach is to try and fix the code (this isn't always possible when it has been provided by a third party).

In addition to compiler warnings, I also use the Cppcheck static analysis tool with the following options:

For C standards I use whatever is required by the client / project. C89 gives the most portability, however it does lack some useful features, so I generally recommend C99 as a minimum unless there is a good reason to prefer C89.

Testing

Testing is a key part of the development process for me, as it forces me to break down functionality into small parts and then write multiple tests for each function. My test framework of choice is Unity, although I am happy to work with others if a project already has automated tests.

I make automated tests a mandatory part of the build process - if a test fails then the code should not be shipped.