I'm Charles Cook. This is my personal website where I discuss mainly software related issues and personal software projects. I work for Microsoft in the Exchange Unified Messaging team in Redmond.
I'm a software developer with more than twenty years experience. I've worked in various roles over the years — architect, team leader, and senior developer — in different types of company, from a two man startup to a large multi-national corporation. I've worked on a number of products: language translation management, a unified communications messaging platform, document management, office automation, UI prototyping, planned maintenance, and computer-aided medical diagnosis.
I've been working in the .NET environment for over 10 years using C# using technologies such as Silverlight, WFC, SQL, Entity Framework, WinForms, and ASP.NET.
Before that I coded extensively in C++ and C, with lots of experience using COM/DCOM.
I created the XML-RPC.NET open source project in 2001 and have been maintaining it ever since. It is used in a large number of commercial and open source applications world-wide.
I maintain some other open source code on GitHub, for example NOptFunc, a command line parser for C# which uses reflection to generate a specification of command line positional and option arguments using the optional parameters feature of C# 4.0.
I've been writing on this blog since April 2001. I write about topics that interest me and those which I want to learn more about.
I'm married to Qian, who is also a .NET developer. She is currently working on a knowledge management product.
I'm on Twitter.
Email me at email@example.com