My current favourite dev books

The following is a list of the 10 books that I currently view as being my favourites (in book name alphabetical order);-

Book of F# by Dave Fancher

Clean Code by Robert C. Martin

Dependency Injection in .NET by Mark Seemann

Expert F# by Don Syme, Adam Granicz and Antonio Cisternino

Growing Object Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce

Implementing Domain-Driven Design by Vaughn Vernon

Practices of an Agile Developer by Venkat Subramaniam

Programming Erlang (2nd Ed) by Joe Armstrong

Software Craftsmanship by Sandro Mancuso

Understanding the 4 Rules of Simple Design by Corey Haines


Speaking Schedule for September

Writing LOB Apps in F#
8th September - SmartDevs (Hereford)
13th September - DDD East Anglia 2014 (Cambridge)

Hands-on NancyFX
4th September - CraftyCoders (Bromsgrove)

Surviving Legacy Code
15th September - Cheltenham Geeks


Speaking in 2014 so far

The Good, the Bad and the Ugly of Mocking
14th January - NxtGenUG (Birmingham)
16th January - CraftyCoders (Bromsgrove)
28th January - DotNet Developer Network (Bristol)
10th March - Smart Devs (Hereford)

Software Craftsmanship: Raising the bar, elitist or just snake oil?
17th May - DDD South West 5

Domain Modelling in F#
28th May - Progressive.Net Tutorials 2014 (SkillsMatter, London)

You’ve learnt the basics of F#: What’s next?
29th May - Functional Londoners (SkillsMatter, London)

An Introduction to Functional Programming with F#
30th June - Dot Net Notts (Nottingham)
31st July - Agile Staffs (Stafford)

Writing LOB Apps in F#
3rd July - CraftyCoders (Bromsgrove)



It’s now been over six months since I’ve done any C# development outside of work except for presentation prep and delivery; it’s been F#, erlang and JavaScript mostly.


Highlights of 2013

Best Conference: DDDNorth
Incredible atmosphere and a wide variety of sessions including three on F#.

Best Conference Session: Kendall Miller (Scaling Systems: Architectures that Grow) at DDDNorth.
No code, just awesome advice from someone who’s been there and done it (and failed a few times as well!). You can see the slides at

Best User Group Session: Ian Cooper (TDD: Where did it all go wrong) NxtGenUG Oxford
A really thought-provoking session. You can see a video of Ian delivering the main points at NDC 2013 or a longer version for LIDNUG.

Nicest Person:
I have to say that virtually everyone that I have met this year at conferences and user groups has been an absolute delight! I really shouldn’t single anyone out but I’m going to highlight two people; Phil Trelford and Bryan Hunter.

Best Website: http://fsharpforfunandprofit.com/
An information goldmine on functional programming and F# run by Scott Wlaschin.

Biggest Shock:
Realising that I’d been sat at a table showing some F# Units of Measure code to Robert Virding (one of the inventors of erlang)!


Review of 2013

I set myself some goals for 2013. Lets see how I did!

Make sure CraftyCoders is a success.
We have held an event every month and two Code Retreats. The number of attendees is not as high as we might like; we have moved our primary website to Meetup.com in an attempt to improve this.

Improve my F#.
Moved on a long way! Reached the stage where I feel comfortable presenting about quite complex features like MailboxProcessor. Finally ‘getting’ functional programming has led me to look at erlang as well.

Learn python and use Raspberry Pi in anger.
Complete failure!

Deliver at least one presentation at a UK community event or LDNUG.
I spoke about DI at DDDEastAnglia and F# at DDDNorth. I also presented a tutorial on DI at the Progressive.Net Tutorials at Skillsmatter in London.

Blog on technical issues.
Complete failure again. I think I managed one technical post last year. I’m not going to post just for the sake of it!

Lose at least 4 stone in weight.
Partial success; I’ve lost a couple of stone but have a long way to go.

Attend at least 12 user group sessions.
I attended 15 user group sessions, that I didn’t present at, in 2013.

Attend GiveCampUK and return to Progressive.Net.
There wasn’t a GiveCamp in the UK and I presented at Progressive.Net.


Scheduled User Group Sessions for January

The good, the bad and the ugly of mocking
Mocking is one of the least understood, most poorly executed and contentious activities that we can undertake in .Net. In this session, Ian Russell will help you to resolve any misunderstandings and help you to determine if mocking will help you to add value to your software projects by delving deeply into the practices and philosophy of mocking.

Tuesday 14th January - NxtGenUG (Birmingham)

Thursday 16th January - CraftyCoders (Bromsgrove)

Tuesday 28th January - DotNet Developer Network (Bristol)

"It is well enough that people of the nation do not understand our banking and monetary system, for if they did, I believe there would be a revolution before tomorrow morning."

— Generally attributed to Henry Ford


DDDNorth Review

On Saturday 12th October 2013 I was at DDDNorth in Sunderland to deliver a session on F#.

The Venue:
The event was held at the University of Sunderland as it was two years ago but this time with more attendees and bigger rooms. There was free parking at the venue and there were plenty of drinks available throughout the day.

Andy Westgarth and his team organised a superb conference. There was something about the atmosphere during the day that was different from lots of previous DDDs that I’ve attended. I have a feeling that having 40% of attendees who had never been to a DDD event before may well have had a significant effect as did the wide variety of technologies being presented during the day.

Very relaxed schedule with five slots over five tracks. There was plenty of time between sessions to have a chat, get a drink or take a comfort break.

Session 1 - F# Eye for the C# Guy (Phil Trelford)
Session 2 - Scaling Systems Architectures That Grow (Kendall Miller)
Session 3 - Functional Programming and Why You Should Care (Grant Crofton)

I won’t do breakdowns of each session as others will do that but surfice to say that I enjoyed them all.

As seems to be traditional for me, I missed the grok talks at lunchtime! I will try to do better at the next event that I attend.

Session 4
Sat this one out in the Speaker’s Room going through some last minute checks that my code still worked and had a great chat with Alistair Smith who was presenting a session at the same time that I was.

Session 5 - You’ve learnt the basics of F#: What’s next? (Me)
I was more than a little worried about this session as it was in the last slot, I was doing a session on stuff that really needs some F# experience to fully grasp, I’d not delivered this session before and I’m not the funniest of presenters. However, it seemed to go well and the feedback backs this up!

Conference close and prize draw
Held in a large lecture theatre that was packed to the rafters with geeks seeking swag. Massive thanks to Andy and his team of organisers, Sunderland University for hosting the event, the sponsors and all of the speakers and attendees for making it such a great day.

The key highlights for me were the interest in F# shown by the number of attendees at the F# sessions and, trying not to sound like a complete fanboi, meeting Phil Trelford. He is a genuinely nice guy and it was great to have a chat with someone with his level of practical F# experience.

Great conference with an extremely wide range of technologies being presented on. If this is the future of DDD events, I for one will be very happy!!

"95% of the cost of software is in maintenance and upgrades: if the next person can’t figure out what you did without your help, you didn’t do as good a job as you might think!"

Daily WTF