I'm generally happy to give talks at user groups and conferences. I'm privileged to receive more invitations than I'm able to accept, but I apply the following criteria (as well as purely subjective ones) when considering invitations:
None of this should stop you from at least asking, of course. Drop me a mail at email@example.com with details. Note that my calendar gets full pretty quickly - if you can ask with at least 6 months notice, particularly for international travel, there's much more chance that I'll be able to make it.
Conferences and user groups tend to want a picture and a bio, so I figure it's worth writing one here that's easy to copy. Please download the head shot I normally use, and feel free to turn it greyscale, crop it or whatever you need to do. If that image doesn't work for you, just let me know.
Jon Skeet is a Staff Developer Platform Engineer at Google, working on Google Cloud Platform client libraries for .NET, based in the London office. (That's the theory, anyway. Most of the time he works from his shed instead.) He's best known for contributions to Stack Overflow as well as his book, C# in Depth. Additionally he is the primary maintainer of the Noda Time date/time library for .NET.
Outside of software, Jon is a committed Christian, and enjoys theatre (particularly musical theatre), playing board games, and spending time with his amazing family.
(Beginner, C#, fun)
In the summer of 2019 I bought an electronic drum kit. I'm thoroughly enjoying playing it (badly) but I've spent even more time talking to the kit over a USB MIDI connection, in an application which allows you to load, edit and save the drum kit configuration. Personal projects are always fertile grounds for learning and reflecting, unburdened by deadlines and other external forces.
This session looks at specific aspects of the (C#) code - particularly mutability and efficiency - but more importantly, it reflects on the nature of personal projects and how we can use them to become more effective in our professional coding lives.
(Drumming not included, for everyone's benefit.)
(Intermediate/advanced, C#, C# 8, live coding)
C# 8 was released in 2019. The most important, complex, and potentially disruptive feature in C# 8 is nullable reference types, but there's more than that. Other features includes also pattern matching enhancements, switch expressions, index and range literals, greater async integration... this is a talk where I've never run out of features to demonstrate. (We either run out of time or my voice gives way before I can show everything...)
(Language-agnostic, slides, diversity, contemplative)
White. A blank page or canvas. The challenge: bring order to the whole. Through design. Composition. Tension. Balance. Light. And harmony.
The opening lines of Sondheim's "Sunday in the Park with George" were written with fine art and paintings in mind, but ring true for software engineer as well.
As Seurat created grand visions from tiny dots, so software solves huge problems one line at a time. Some parallels are obvious - the suggestion of "favor composition over inheritance springs to mind" - but others take more reflection. This talk offers musings on each element, and links each back to the cornerstone so often neglected in the midst of design docs, specifications and linters: our shared humanity. What turns "good" code into "great" code? How subjective is this? How does it affect how libraries connect with their consumers, and how applications connect with their users? At the end of this talk, you'll be left with more questions than answers - catalysts for your own thoughts on the nature of code and art, and for further discussion.
Some developers write date/time-sensitive code without worrying about it - but also without thinking about it. Some developers write date/time-sensitive code and worry about it a lot because it's hard.
In this talk Jon will provide some guidance to help you write date/time-sensitive code with a reasonable
degree of confidence, and test it. We'll look at the speaker's Noda Time project as one tool to make your life
easier, but Jon will also explain how you can improve your
System.DateTime code too.
Software engineers use versioning all the time, and .NET is no different. Over the last couple of years, I've been thinking a lot about versioning in different contexts, and I wish I could now say I knew how to do it easily. Instead, I can at least share my experiences, highlight some problems, and maybe look at possible improvements to come. We'll look at:
(This section is primarily present to make it easy for Jon to fill in performance and MVP appraisals.)
Note: this was largely compiled before COVID-19 struck... it needs amending.