Simon Painter

Information & Communications Technology

.net .net core ASP.NET Visual Studio / .NET .NET Standard functional programming object oriented programming Programming Languages metaprogramming ASP.NET Core Entity Framework

Telford, England, United Kingdom

Simon Painter

.NET Contractor and Consultant

I've been working as a .NET developer for over 13 years now in a variety of industries including government, retail and manufacturing. But as a coder, I've been playing with making computers do whatever my crazed imagination could devise since I was old enough to read my Dad's copy of the ZX Spectrum BASIC coders manual.

I've been speaking about Functional C# at various user groups and conferences around the UK, USA, and India, and am particularly interested in seeing just how far we can push the capabilities of C#.

When I'm not coding, or running after my two small children, I have been known to enjoy the classic series of Doctor Who, Fighting Fantasy Gamebooks, Cryptic Crosswords, and rather more coffee than is probably good for me.

Current sessions

Functional Programming in JavaScript

Functional Programming is becoming increasingly popular and relevant with each year that goes by. With so much discussion around languages such as F#, Haskell and Erlang, it can seem as though getting started with Functional programming would mean first learning a whole new syntax...but what if it didn't?

Using just a few JavaScript libraries, such as RamdaJS, developers can implement some of the most powerful patterns and techniques from the world of functional programming?

This talk will demonstrate how, using ES6 and a few extra libraries, we can write Functional code that is:

More robust

Easier to read

Easier to maintain

This talk might be of interest to anyone looking into moving to a new platform, or in improving the scalability of an existing application, or even just interested in seeing what Functional Programming is all about, but all within the comfort of a familiar language.

We might even attempt the impossible, and explain what a Monad is!


Pride & Prejudice & C#

Who doesn't like Jane Austen? She's kick-arse and awesome. The only problem though, is that she didn't write a great deal. Just 6 (ish) books? Not enough! In this talk I'm going to show how, with a bit of C#, some relatively simple maths, and a bit of Blue-Peter-Style creativity, we can automatically generate as much Jane Austen as anyone in their right mind would ever want. I might even show you how this is useful in your day job as well!


Functional Programming with C#

Functional Programming is becoming increasingly popular and relevant with each year that goes by. With so much discussion around languages such as F#, Haskell and Erlang, it can seem as though getting started with Functional programming would mean first learning a whole new syntax...but what if it didn't?

Most .NET developers are familiar with the use of Linq, and basic constructs such as IEnumerable, Func delegates, arrow functions and ternary expressions, but did you know that you can use all of this to implement some of the most powerful patterns and techniques from the world of functional programming?

This talk will demonstrate how, using only familiar features available in out-of-the-box C#, to write Functional code that is:

* More robust
* Easier to read
* Easier to maintain

As well as these benefits, Functional code is a great enabler for the use of concurrency with Async functions and Serverless applications with technologies such as Azure Functions.

This talk might be of interest to anyone looking into moving to a new platform, or in improving the scalability of an existing application, or even just interested in seeing what Functional Programming is all about, but all within the comfort of a familiar language.

We might even attempt the impossible, and explain what a Monad is!


Hacking C#: Development for the Truly Lazy

I don't know about you, but I'm a lazy developer. What do I mean by lazy? I don't mean I don't want to do my work - far from it - I mean that I hate to write out a great deal of code to get the job done. I want to accomplish my goals with as little effort as possible.

One of my pet hates is writing enhancements that involve copying and pasting blocks of code, changing a variable name, then leaving everything else the same. I hate having to consider each and every possible null reference exception, and adding in a whole ton of boilerplate to handle it. I hate having to spent ages jumping back and forth in a legacy codebase, trying to understand what it actually does!

What's the alternative? In this talk, I'll demonstrate a way of working that avoids all this unneccesary work, and gives you more time to do something more productive.

We'll look at:
* Functional Programming - what benefits does this increasingly popular paradigm bring us to cut down coding effort
* Linq & Generics - These have been a part of C# for a long time now, and are some of the most powerful features available in the language, but hardly anyone seems to be using them effectively
* MetaProgramming - break open C# and take it to the next level with code that describes how to generate code

Our goal is to write code in as few lines as possible that provides the greatest amount of impact. We also want code that's readable, and easily maintainable. We want to think smart, and think...Lazy.


Past and future events

Developer Week '20

28 Jun 2020 - 2 Jul 2020
Nürnberg, Bavaria, Germany

NE RPC

18 Jun 2020

NDC Oslo 2020

7 Jun 2020 - 11 Jun 2020
Oslo, Norway

DDD North 2020!

29 Feb 2020

DDD East Midlands Limited 2019

25 Oct 2019
Nottingham, England, United Kingdom