In today’s post: How to choose between a static factory method and a constructor; What not to do with async; Meeting with Skype for free; How to stop wasting your time; What you don’t know about names; New static analysis features in GCC prove their worth; Making your C# more functional; Coding bootcamps for veterans; and, How to crash an airplane.

Sharpen the Saw used to be an email newsletter of information I published for the professional development of software developers. Now it’s a series of blog posts. While targeted primarily at developers working with the Microsoft technology stack, content covers a wider range of topics.


Always a way to improve the code you write every day.

Static Factory Methods vs Constructors In C#

While it’s sometimes obvious, it’s not always clear when to use a public constructor or a static factory method for a new class. Gustav used to lean heavily on public constructors but now he takes a more nuanced position. He includes some widely applicable guidelines at the end that I think are very useful.

Read more

C# Async Antipatterns

When C# introduced the await and async keywords, it was a revolutionary approach to writing asynchronous code. Unfortunately, they don’t completely absolve you of responsibility - you still need to pay attention to what you’re doing. Here’s a good discussion of some antipatterns - things you should not be doing in your async code.

Read more

Software & Updates

A new or upgraded tool can be a beautiful thing.

Host A Quick Meeting With Skype’s ‘Meet Now’, No Login Needed

Isn’t it interesting how quickly “Zooming” entered the vocabulary as a verb for making a video conference call? Given some of the well-publicised concerns with the security and privacy of Zoom, it’s useful to be aware of alternatives.

For example, you can have a quick meeting with Skype without needing to have an account - and their limit of 4 hours per video call is a lot more generous than 40 minutes. Even better, you don’t get completely cut off when your time expires, the call just drops to audio-only.

Read more

Being Professional

A great developer does more than just write great code.

How to stop wasting your life watching TV and do something worthwhile with your downtime

This one seems especially relevant in the times of COVID-19 and social distancing. Here are five strategies for making the most of your time, so that you don’t get to the end of the week and wonder why the only thing you did was work.

Read more

Falsehoods Programmers Believe About Names

When’s the last time you had to enter your name into a computer website? We do it all the time when we sign up for online shopping, or place an order for dinner. How did the website prompt you for your name? If it’s like most, it used the very western approach of prompting you for your first and last names. Don’t see the problem? Read this post. Names are hard - and most computer systems screw them up.

Read more


Staying safe online and writing secure systems are both harder than we think.

GCC 10 gets security bug trap

The latest version of GCC (the GNU Compiler Collection) includes a static analysis feature designed to detect the kinds of bugs that lead to security problems. Even before release, it’s started to prove it’s worth, revealing a recently-introduced security vulnerability in OpenSSL, the library used by much of the internet to secure network connections.

Read more


Sometimes the answer is random.

Your C# is already functional, but only if you let it

In this blog post, Igal Tabachnik shares a surprisingly concise and very readable implementation of Fizz-Buzz in C#, using some of the newest features of the language. A good illustration of the expressive power of the new features and how they can be used to good effect.

Read more

This veteran started a code boot camp for people who went to boot camp

After their time in the military, many veterans find it difficult to transition to civilian roles even though they are smart, disciplined and know how to work in a team. Jerome Hardaway was one of those vets. He learnt to code and has started a nonprofit dedicated to giving other vets a hand up by teaching them to code too.

Read more

Podcast bonus: Scott Hanselman interviews Jerome Hardaway Listen now

Length: 31 minutes
Audience: Everyone


Take some time to feed your mind.

How to crash an airplane

The July 1989 crash of United Flight 232 is undoubtedly a tragedy. But it’s also a story of clear thinking, sound judgement and quite a lot of luck. Nickolas Means tells the story in an engaging and interesting way, with lessons we all can take forward.

Audience: Everyone
Length: 43m

Watch now


blog comments powered by Disqus
Next Post
Improved Caching  09 May 2020
Prior Post
Caching Speech  25 Apr 2020
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
May 2020