.NET Foundation Campaign: Jon Skeet

Why I’m Running

Firstly, I’m nearly not running. At the time I’m typing this, all the candidates are men, and most are white. That’s not good enough, and I hope it changes significantly before the elections themselves. Elect me to the board of directors, and you can expect to hear me chiming in on diversity frequently. I want to do more than complain, of course. I hope to be able to spend time on the Foundation’s behalf working with (not on behalf of) the many groups already trying to address tech’s diversity problems. My thoughts on diversity can be summarized in three aspects:

  • There’s a very real problem.
  • It’s not inevitable. I’m not aiming for perfection, but I’m not willing to accept the current status quo.
  • It’s up to all of us to fix this. For many of us, that starts by actively listening rather than going into problem-solving mode.

The last bullet is where the Foundation comes in. The board of directors needs to actively engage in listening to those with the most experience of why our part of the tech community isn’t as diverse as we’d like it to be, and then seeing where the Foundation can help.

From a more conventional side, I see great potential in the .NET Foundation beyond its current roles.

The aspect I’m most keen on is finding “holes” in the .NET ecosystem, and helping them to get filled, one way or another. My experience on Noda Time has taught me that creating a new Open Source project for .NET requires a bunch of code to be written that’s far removed from the purpose of the project, and that there are areas that just aren’t easily addressed at the moment. For example:

  • What’s the best way of hosting documentation for a library that covers multiple versions, including diffs between them?
  • How can I be confident in the backward compatibility story for my library?
  • How can I include interactive examples for my library, or even just static snippets with generated output?
  • How can I best review the changes I’ve made in my library for C# 8’s nullable reference types?
  • How can I document which parts of my library are available on which platforms?

Those are just some of the examples I’ve seen personally - I’m sure there are many more out there. Often there are some solutions to these, existing on the side of a project - or even as standalone projects that haven’t received enough attention. I believe the Foundation can help to find these holes, discover existing solutions and consider the best way of either unifying them or promoting multiple options, depending on the situation.

In a similar vein, Microsoft is making great progress in terms of providing guidance for library authors - but the Foundation can still add value by both promoting that content and encouraging more feedback such as requests for additional topics to be covered. The Foundation can effectively encourage and amplify voices within the community.

My .NET Contributions

I’m probably best known in the community for my answers on Stack Overflow, but I’m also active as a conference and user group speaker (whether on C# or less tech-specific topics) and the author of C# in Depth. I’m the convenor of the ECMA technical group for standardizing C# - we released the ECMA standard for C# 5 at the end of 2017. (Yes, I know we’re getting behind again…) As a passionate C# developer, I love staying on the bleeding edge of language features, and provide feedback to the C# design team. I’m also the Google representative to the .NET Foundation’s Technical Steering Group. (While obviously I would bear Google’s interests in mind, I’m running for this post as an individual.)

In terms of code, my day job is to make Google Cloud Platform rock for .NET developers, primarily through the client libraries used to connect your code to Google Cloud Platform APIs. My other main passion in terms of .NET client libraries is Noda Time, which is an alternative date/time API.

Contact Information