In this episode: Five different ways to write code that’s hard to test; dependency injection with Simple Injector; learning the benefits of regular deployment at RedGate; Symantec antivirus was insecure; the futility of trying to remember every detail; and, programming with good unit tests.

Sharpen the Saw is a somewhat delayed repost of a semi-regular newsletter of information I publish for the professional development of software developers. While targeted primarily at developers working with the Microsoft technology stack, content will cover a wider range of topics.

To subscribe, send me an email and I’ll put you on the list. Membership is moderated.


5 Easy Ways to Write Hard-to-Test Code

You’d have to go a long way to find a professional developer writing hard to test code on purpose - yet it is still remarkably easy to find hard to test code.

In this DZone blog post, Tamas Gyorfi covers five common coding techniques that make code much harder to test. Even though his examples are written in Java, the lessons are appropriate across many platforms.

Read more

Software and Updates

Simple Injector

Dependency injection is a critical technique for building composable applications with a flexible architecture.

Simple Injector is a worthy alternative to Ninject that should be considered for new projects.

Find out more

Being Professional

The Benefits of Regular Deployment

Though published a few years ago in 2012, James Moore’s blog about regular deployment at Red Gate is an instructive read. He talks about the journey that they’ve taken - from one project that failed to deliver expected results to lessons learned about The Toyota Way.

Read now

Staying Secure

Symantec antivirus bug allows utter exploitation of memory

Norton is one of the mainstays of the tech field, with a substantial collection of security and support tools going back to the heady days when MS-DOS 3 was the latest greatest thing.

Unfortunately, their Anti-Virus tool suffers from a critical flaw - one that can result in the execution of arbitrary code in a file when emailed without any user action.

The flaw exists in code injected by Symanetic into the kernel (and that, therefore, run with unlimited privilege) across all platforms.

Find out more


You Can’t Remember Every Detail, So Stop Trying

Keeping track of the myriad of details involved in developing any non-trivial application is a real challenge - there’s more information than anyone can hold in their head at one time.

In this article, Cindy Potvin talks about what you can do about this.

Read now

Video of the Week

Programming with GUTs

Noted author and presenter, Kevlin Henney gives a very interesting talk on programming with GUTs - Good Unit Tests.

Watch now

What is Sharpen the Saw?

This is a semi-regular newsletter of information for the professional development of software developers. While targeted primarily at developers working with the Microsoft technology stack, content will cover a wider range of topics relevant to developers on any platform.

Please feel encouraged to share these emails with anyone else you think might be interested.

To subscribe, send an email to with the command subscribe in the subject line. Membership is moderated.

To unsubscribe, email the command unsubscribe.

For more list options, send the command help or visit


blog comments powered by Disqus
Next Post
.NET Core Builds  21 Oct 2017
Prior Post
Pass implementations, not representations  14 Oct 2017
Related Posts
Browsers and WSL  31 Mar 2024
Factory methods and functions  05 Mar 2023
Using Constructors  27 Feb 2023
An Inconvenient API  18 Feb 2023
Method Archetypes  11 Sep 2022
A bash puzzle, solved  02 Jul 2022
A bash puzzle  25 Jun 2022
Improve your troubleshooting by aggregating errors  11 Jun 2022
Improve your troubleshooting by wrapping errors  28 May 2022
Keep your promises  14 May 2022
October 2017