I use Lanyrd to track where I’ve spoken and am going to speak.  Please contact me if you’re interested in having me speak at your event.

Upcoming

Description Date Event Location
An Opinionated, Maintainable REST API Architecture for ASP.NET Core June 2017 NDC Oslo Oslo, Norway
An Opinionated, Maintainable REST API Architecture for ASP.NET Core June 2017 CodePaLOUsa Louisville, KY
Deconstructing TypeScript's Type System July 2017 Detroit.Code() Detroit, MI
Never RESTing – RESTful API Best Practices using ASP.NET Web API July 2017 Detroit.Code() Detroit, MI
Deconstructing TypeScript's Type System August 2017 Kansas City Developer Conference Kansas City, MO
Never RESTing – RESTful API Best Practices using ASP.NET Web API August 2017 Kansas City Developer Conference Kansas City, MO

Notable/recent past events

Description Date Event Location
Workshop - Building Web Apps with ASP.NET Core 2.0 May 2017 Nebraska.Code() Lincoln, NE
An Opinionated, Maintainable REST API Architecture for ASP.NET Core May 2017 Nebraska.Code() Lincoln, NE
Never RESTing – RESTful API Best Practices using ASP.NET Web API May 2017 Nebraska.Code() Lincoln, NE
Deconstructing TypeScript's Type System April 2017 Chicago Code Camp Chicago, IL
Never RESTing – RESTful API Best Practices using ASP.NET Web API January 2017 NDC London London, England

For my full past speaking history, click here.

Current talks

Never RESTing – RESTful API Design Best Practices Using ASP.NET Web API

Designing and building RESTful APIs isn’t easy. On its surface, it may seem simple – after all, we’re only marshaling JSON back and forth over HTTP right? However, that’s only a small part of the equation. There are many things to keep in mind while building the systems that act as the key to your system.

In this session, we’ll delve into several best practices to keep in mind when designing your RESTful API. We’ll discuss authentication, versioning, controller/model design, and testability. We’ll also explore the do’s and don’t’s of RESTful API management so that you make sure your APIs are simple, consistent, and easy-to-use. Finally, we’ll discuss the importance of documentation and change management.

The session will show examples using ASP.NET Web API and C#. However, this session will benefit anyone who is or might be working on a RESTful API.

Presenting at:

NDC London 2017
Nebraska.Code() 2017
Detroit.Code() 2017

Deconstructing TypeScript's Type System

TypeScript isn’t just a strongly-typed replacement for JavaScript – it’s a full language with lots of modern features, including a cutting-edge type system. This awesome type system is often overlooked in favor of other features such as decorators and async/await, but is one of the best reasons to use TypeScript.

In this session, Spencer will discuss the advanced type features of TypeScript, including intersection types, type guards, nullable types, type aliases, string literals, and discriminated unions. We’ll also discuss ways to take full advantage of TypeScript’s compile-time checking to ensure your code is clean and safe.

Presenting/Presented at:

Chicago Code Camp 2017
Detroit.Code() 2017
Kansas City Developer Conference 2017

An Opinionated, Maintainable REST API Architecture for ASP.NET Core

Writing a brand-new RESTful API using ASP.NET has never been easier, or so you’ve been led to believe. Create a project, write a few models, and scaffold – instant API for your website! While convenient, this leads to a lot of pain as your API scales. Testability and maintainability become more and more difficult as your codebase continues to expand. Eventually, you’re left with a huge mess of code and zero separation of concerns.

In this session, Spencer will provide a highly-opinionated and easy-to-learn pattern for creating scalable, maintainable APIs powered by ASP.NET Core. Attendees will learn about dependency injection, validating requests, executing requests via services, error handling, and versioning strategies to make sure your API lasts for the long haul.

Presenting/Presented at:

NDC Oslo 2017
Detroit.Code() 2017
CodePaLOUsa 2017