Welcome to DigitallyCreated! This website is where I host my blog, publish some of the software applications that I have written and display my résumé. I wrote this website entirely from the ground up rather than using an off the shelf CMS/blog software product mainly as a demonstration of my technical skills and as a learning exercise.


The Corporate BS Generator Windows 8 App

October 03, 2012 1:23 PM

On my last gig my friend Mahesh sent the team a link to Tommy Butler’s simple Corporate BS Generator page, and naturally we all cracked up. For the whole day any chat over Skype was derailed with someone chucking in some random BS, for example “that’s a good idea, but does it conveniently enable visionary services?” It was a Windows (read more)

Async/Await - The Edge Cases and Unit Testing Presentation

October 03, 2012 12:29 PM

Tonight I gave a short presentation at Devevening titled “Async/Await – The Edge Cases and Unit Testing”. Here’s the abstract: (read more)

More Lessons from the LINQ Database Query Performance Land

July 19, 2011 2:00 PM

Writing LINQ against databases using providers like LINQ to SQL and Entity Framework is harder than it first appears. There are many different ways to write the same query in LINQ and many of them cause LINQ providers to generate really horrible SQL. LINQ to SQL is quite the offender in this area but, as we’ll see, Entity Framework can (read more)

Incremental Builds in MSBuild and How to Avoid Breaking Them

June 26, 2011 2:50 PM

One of my recent tasks at a client has been to help improve the speed of their build process. They have around 140 projects in their main Visual Studio solution, and one of the problems they had was that if they changed some code in a unit\integration test project at the bottom of the compile chain, Visual Studio would rebuild (read more)

Sweeping Yucky LINQ Queries Under the Rug with Expression Tree Rewriting

May 02, 2011 2:06 PM

In my last post, I explained some workarounds that you could hack into your LINQ queries to get them to perform well when using LINQ to SQL and SQL CE 3.5. Although those workarounds do help fix performance issues, they can make your LINQ query code very verbose and noisy. In places where you’d simply call a constructor and pass (read more)