© Mapbox, © OpenStreetMap

Speaker

Jonathan "J." Tower

Jonathan "J." Tower

Microsoft MVP; Partner at Trailhead Technology Partners

Grand Rapids, Michigan, United States

Actions

Jonathan, or J. as he's known to friends, is a husband, father, and founding partner of Trailhead Technology Partners, a custom software consulting company with employees across the U.S., Europe, and South America. He is a 10-time recipient of the Microsoft MVP award for his work with .NET and is a frequent speaker at software conferences around the world. He doesn’t mind the travel, though, as it allows him to share what he's been learning and also gives him the chance to visit beautiful places like national parks—one of his passions. So far, he's visited 58 of the 63 U.S. national parks.

J. is also passionate about building the software community. Over the years, he has served on several non-profit boards, including more than a decade as president of the board for Beer City Code, Western Michigan's largest professional software conference. Outside of work, J. enjoys hiking, reading, photography, and watching all the Best Picture nominees before the Oscars ceremony each year.

Awards

Area of Expertise

  • Information & Communications Technology
  • Media & Information

Topics

  • .NET
  • .NET Core
  • Web
  • Architecture
  • Cloud
  • microservices
  • Microsoft Azure
  • ASP.NET
  • ASP.NET Core

Simplicity in Action: Building Maintainable Web Apps with .NET and HTMX

Single-page applications (SPAs) have revolutionized the user experience, enabling the creation of rich, modern applications. However, they often require a significant amount of front-end code, typically written in TypeScript or JavaScript, which can add complexity and maintenance challenges. This session presents an alternative approach by guiding you through the process of building a web application using HTMX and .NET, reducing the need for extensive front-end coding.

We'll explore HTMX which allows you to access AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext with little-to-no JavaScript. We will also look at how to use these two technologies together seamlessly to build robust, maintainable web applications.

This session is a must-attend for web developers seeking to enhance their skills and learn about the latest trends and best practices in web development. Join us for an engaging and informative learning experience!

You've Been Organizing Your Code Wrong: A C# Developer's Intro to Vertical Slice Architecture

Ditch the layers and jump into the world of Vertical Slice Architecture—an architecture where features reign supreme! Imagine a codebase where the organization revolves around capabilities and not tangled technical layers. This talk will be your map to this thrilling new world.

From defining service boundaries at a macro level to orchestrating individual feature capabilities at a micro level, this session will elucidate how Vertical Slice Architecture fosters code organization that aligns seamlessly with system functionality. Gain insights into crafting a cohesive codebase, optimizing code management, and fostering more easy adaptability in your evolving software systems.

The Complete AI Toolkit for .NET (Workshop)

Artificial Intelligence (AI) and Machine Learning (ML) are revolutionizing the software industry, and .NET developers are uniquely positioned to bring these powerful technologies into their projects. This hands-on workshop is designed to guide you through the myriad of tools, libraries, and services available for integrating AI and ML into your .NET applications.

We will explore a range of topics, starting with Open AI and Azure Open AI services, which provide a suite of powerful tools and APIs for using LLM and other generative AI models. We will delve into Azure AI services and Azure ML, which offer cloud-based solutions implementing your own AI and ML.

We will also cover ML.NET, a cross-platform, open-source machine learning framework that allows .NET developers to develop their own models and infuse custom ML into their applications without requiring expertise in ML.

Lastly, we will dive the Semantic Kernel and Cognitive Toolkit. will Semantic Kernel is a tool for orchestrating AI plugins and Cognitive Toolkit is a library that allows developers to create their own neural networks from scratch.

This workshop is a must-attend for .NET developers seeking to enhance their skills and learn about the latest trends and best practices in AI and ML. The workshop will be hands-on, providing attendees with practical experience in leveraging AI and ML tools in .NET. Join us for an engaging, informative, and hands-on learning experience!

Rebuild your APIs Better, Stronger, Faster with Minimal APIs

If you currently have a controller-based API built in ASP.NET or ASP.NET Core, you might be eager to embark on the journey of transitioning it to a Minimal API approach, but not know the best process to make it happen. If so, this talk is tailor-made for you.

We will delve into the advantages of using Minimal APIs, including the simplification of complexity and the boost in performance. We'll also go though a methodical, step-by-step migration process, complete with illuminating code examples so you can see the process in action.

By the end of this session, you'll be well-equipped to update any of your ASP.NET or ASP.NET Core APIs from controller-based code into the realm of sleek and effective Minimal APIs.

Real-World AI Examples to Inspire Your Own Innovation

AI is transforming industries and redefining what's possible in software development, but how can you harness its potential in your own work?

In this talk, we will explore a curated selection of real-world AI applications across diverse sectors, from healthcare to finance to retail. You’ll discover how companies are integrating AI into their existing software to streamline operations, enhance decision-making, and deliver personalized experiences.

Whether you're a developer, product manager, or business leader, this session will spark new ideas and provide actionable insights on how to integrate AI into your own projects. Join us to learn how AI can drive innovation, improve efficiency, and open up new possibilities in your own industry.

Old to Gold: How to Modernize Your Legacy ASP.NET Apps Gradually

Legacy applications built with ASP.NET can take a long time to migrate. Doing this work all at once isn't very agile, so in this session we'll explore using YARP (Yet Another Reverse Proxy), .NET Upgrade Assistant, and the "Strangler Fig" pattern to incrementally migrate your legacy ASP.NET applications to modern technologies like ASP.NET Core.

While it might have a funny name, YARP is a very serious tool when it comes to helping you upgrade your legacy ASP.NET projects to ASP.NET Core. The best part is, it helps you do the upgrade gradually and with minimal impact to your users. When done with the help of the .NET Upgrade Assistant, you can also kick off the process without breaking a sweat.

You'll walk away more knowledgeable about these tools that help you with your migrations, and learn some of the shims that are available the make certain cross-cutting concerns easier to integrate between your legacy and modern applications. If you might have a legacy migration in your future, you're going to want to join us for this!

OpenAPI (Swagger) Is Easy in .NET 9

Discover how .NET 9 revolutionizes the way developers work with OpenAPI (formerly known as Swagger), making API documentation easier and more efficient than ever before.

This session will explore the latest enhancements in .NET 9, including built-in support for OpenAPI document generation, customizable documentation options, and enhanced middleware integration. Learn how these improvements streamline the development process for both Minimal APIs and API Controllers, support additional OpenAPI features, and provide a superior developer experience.

Whether you’re a seasoned developer or new to OpenAPI, this talk will equip you with the knowledge to leverage these powerful tools in your next .NET API project.

Minimal APIs, Maximum Impact: Exploring .NET 9 Enhancements

Join us for an in-depth look at the exciting changes and improvements to Minimal APIs in .NET 9.

This session will cover the latest enhancements that make building lightweight HTTP APIs even more efficient and powerful. We’ll explore the new features, including improved dependency injection, enhanced routing capabilities, and more flexible parameter binding. Additionally, we’ll discuss performance optimizations that ensure faster application startup times and reduced memory usage.

Whether you’re new to Minimal APIs or looking to leverage the latest advancements, this talk will provide you with the knowledge and tools to build robust and scalable APIs with ease.

Building a Well-Architected API in .NET (Workshop)

For many applications, a modular monolith architecture is an ideal fit, providing the benefits of code modularity and simplicity of deployment without the unnecessary complexity of microservices. This workshop is designed to guide you through the process of building a .NET API project as just such a well-architected modular monolith.

We will start by exploring Minimal APIs, a lean and efficient way to build APIs in .NET. The workshop will also cover the Command Query Responsibility Segregation (CQRS) pattern, as a way to effectively separate read and write operations for improved performance and scalability. We will then delve into FluentValidation, a library for building complex validation rules that are easy to read and maintain.

The concept of Vertical Slice Architecture will be introduced, an architecture style that structures projects around features rather than layers, increasing cohesion and reducing coupling. The workshop will cover the use of MediatR for implementing the Mediator pattern, promoting loose coupling and better separation of concerns. We will also get hands-on experience with Micro ORMs, which simplify data access while maintaining flexibility. Lastly, we will dive into Carter, a library that allows writing more functional code in ASP.NET Core.

This workshop is a must-attend for .NET developers seeking to enhance their API development skills and learn about the latest trends and best practices in the industry. The workshop will be hands-on, providing attendees with practical experience in building a well-architected API in .NET. Join us for an engaging, informative, and hands-on learning experience!

Easy Distributed Apps with .NET Aspire

This workshop is designed for .NET developers eager to leverage the power of .NET Aspire, a powerful framework for creating configurable, cloud-native applications, for building distributed applications in C# and .NET.

You'll learn how to set up and structure projects, streamline connections and configurations, and configure service discoverability for seamless integration. We will explore .NET Aspire's curated NuGet packages for integrating with services like PostgreSQL, Azure Cosmos DB, and Redis, and guide you through project management and deployment using the Aspire Dashboard and Azure Developer CLI.

Hands-on labs and demos will reinforce your learning, and we'll share best practices for maximizing .NET Aspire's potential in your projects. By the end of this workshop, you'll be equipped to build robust, scalable distributed applications with .NET Aspire. Whether you're new to .NET Aspire or looking to deepen your expertise, this workshop will enhance your development skills and keep you ahead in the technology landscape.

Join us and transform your approach to distributed application development with .NET Aspire.

Is Everyone AI-ing Without Me? A .NET Developers Guide to Development with AI

AI is causing the tech landscape to evolve faster than ever, so it's important for developers to understand how to know when they should use traditional algorithms versus when they should use artificial intelligence (AI), and how to best use the two together.

This talk takes you on a journey that demystifies the process of integrating AI concepts into your .NET projects. We'll go through a list of many of the AI tools and services available to a .NET developer, when you would use them, and how they would integrate into your traditional algorithms.

Participants will leave equipped with a newfound understanding of AI's role in their .NET developer toolkit, poised to infuse innovation into their projects and embrace the exciting realm of AI-augmented software development.

Avoidifying Over-Complexification: Rooting Out Over-Engineering in Your Projects

Discover the art of unraveling complexity in your software projects and returning to the fundamental principle of KISS ("Keep It Simple, Software developer"). As complexity grows in any system, so do its potential points of failure, underscoring the importance of mastering the art of software architecture simplification.

Journey with us as we delve into the most common mistakes that pave the path to software over-engineering. We'll talk about the allure of gold plating, superfluous features, and premature optimization, among other popular complications.

Your takeaway will be some practical strategies that will help you hold the line on over-engineering. In short, you will learn to strike the right balance between power and simplicity in your software projects.

Minimalist Architecture: Unmasking Over-Engineering in Your Projects

Discover the art of unraveling complexity in your software projects and returning to the fundamental principle of KISS ("Keep It Simple, Software developer"). As complexity grows in any system, so do its potential points of failure, underscoring the importance of mastering the art of software architecture simplification.

Journey with us as we delve into the most common mistakes that pave the path to software over-engineering. We'll talk about the allure of gold-plating. superfluous features, and premature optimization, among other popular complications.

Your takeaway will be some practical strategies that will help you hold the line on over-engineering. In short, you will learn to strike the right balance between power and simplicity in your software projects.

Say Goodbye to Controller Classes with ASP.NET Core's Minimal APIs

The MVC-style pattern we've used for APIs for years isn't the only way to create API projects in .NET anymore. In fact, you never have to create another controller class again, and what's better is, you won't miss them!

Come learn about ASP.NET Core's Minimal APIs and see how moving your API code from controllers will help make your code more maintainable, better organized, and cleaner.

Nuget Packages Every .NET Dev Should Know About

There’s nothing worse than finding out about a great library after it’s too late to use it for your project. Don’t miss out; join us as we look at an overview of some of my favorite Nuget packages, all of which can quickly and elegantly help you solve common problems that we .NET developers face.

Data access, validation, list manipulation, design patterns, testing, fault tolerance—we’ll cover a little bit of everything, and you’ll walk away knowing a list of tools you may have not heard of before, and knowing how and when to use them in your projects.

Multi-Tenant Architecture for .NET Web APIs

Some applications aren’t a good fit for NoSQL. If you’re doing a large-scale .NET project that is a better fit for relational databases like SQL Server, how do you set it up to scale well?

In the session, I’ll recount some of the useful lessons I’ve learned building highly scalable .NET APIs that are built using traditional relational databases. We’ll discuss multi-tenancy, shared databases, shared data, microservices, and CQRS, among other useful design patterns, architectures, and tools.

Faster .NET Web APIs with Redis Caching

Are you suffering from slow web APIs in .NET? Is your database overloaded or the bottleneck in your application? If any of those are true for you, it's likely that adding a caching layer to your APIs will help solve the problem.

In this session, we’ll look at APIs built with .NET and what makes them slow. I'll show you what makes an endpoint a good candidate for in-memory caching, and show you how adding it can help alleviate performance problems. We'll look at Redis and why it's such a good option for your in-memory cache. Finally, we’ll discuss some of the common pitfalls of caching implementations and explore the best tooling and libraries to help ease your Redis caching implementation in .NET.

Avoid Common Microservices Mistakes Made by .NET Developers

.NET developers who are familiar with monolithic applications often make the same mistakes when they set out to build their first microservices application. As microservices become a more important architecture for building highly scalable applications, it is becoming more important for developers to learn how to properly design and implement them.

In this session, we'll review a sample .NET application that has been set up as well-designed microservices. We'll use it as an example of what to do, and what NOT to do when you're building your own microservices architectures in .NET.

Migrate Your Legacy ASP.NET Projects to ASP.NET Core Incrementally with YARP

YARP (Yet Another Reverse Proxy) might have a funny name, but it a very serious tool when it comes to helping you upgrade your legacy ASP.NET projects to ASP.NET Core. The best part is, it helps you do the upgrade gradually, and with minimal impact to your users.

In this session we'll explore using YARP, and how it uses the "Strangle Fig Pattern" to allow you to incrementally migrate your applications to modern technologies. We'll look at the tooling that is available to help you with the migration, and see some shims that make it easier to integrate cross-cutting concerns between your legacy and modern application, such as session storage and authentication.

Improving Your Validation Game with Fluent Validation for .NET

Just about every application needs some sort of validation in it. If you’re a .NET Developer, you’ve no-doubt mostly been doing validation using the data annotation attributes from the System.ComponentModel namespace. These attributes are built-in to .NET by default, and can work well in some situations, but there’s also another option that can be better in several important ways

In the session, we’ll exploring the advantages of using Fluent Validation in your C# and .NET applications. This method of validation creates cleaner code that better follows the single-responsibility principle, gives you more control over custom validation, can be fired conditionally, makes unit testing easier, and even includes client-side support for web apps. If your .NET validation game has gotten a little stale, come see how to step it up with fluent validation.

Improving the Security of JSON Web Tokens with Refresh Tokens.

Are you using JWT tokens to secure your .NET web APIs? Are you also worried about the security of using long-lived tokens or about possible holes in your token refresh implementation?

If that sounds like you: fear not—all your answers are here in this session. Join me as I cover all the JWT and refresh token best practices, and help you make sure you’re following them. We’ll even look at a real token and refresh implementation which you can build off of in your projects. Join us, and make sure you’re not making a mistake with this common security technology.

Don’t Build a Distributed Monolith: How to Avoid Doing Microservices Completely Wrong

As a consultant, I get to see many systems built by many different developers. Recently, I’ve seen an uptick in the number of systems built with a microservice architecture in mind, but those systems often include a lot of the same mistakes that keep them from working well.

In this session you’ll learn from my experiences and get pointers on what to avoid in your microservices implementations so that you don’t accidentally build something which has all the worst aspects of a monolithic application and the worst aspects of microservices These monsters are what I call “distributed monoliths”, and I can help you avoid building one accidentally.

Cloud-Native Architecture for .NET Developers

If you're a .NET Developer, you're probably used to building applications with technologies like ASP.NET, Entity Framework, SQL Server, IIS, and other related ones. But, the cloud is quickly changing the way application are built, and allowing us to write software that is much more performant and scalable than ever before. Will those skills translate to this new world?

Come learn how to apply your existing C#, .NET, and relational database knowledge to the world of cloud-native application development. We'll look at an overview of the technologies that are likely to change the way we develop applications in the future--things like static sites generation, the JAMStack, serverless applications with Azure Functions, and cloud-scale databases with SQL Azure and CosmosDB.

If you're a .NET Developer, you don't have to be afraid of the cloud's impact on your future. I'll show you how you're already set up for success in the cloud.

Choose Your Own Adventure: Lessons Learned from an Unusual Journey

A pro-adventure mindset can lead to exciting opportunities in both your personal and professional life. Join me as I share my unusual story of taking a leap of faith and embarking on a year-long RV adventure across the USA.

During my journey, I learned how having a pro-adventure mindset is essential for unlocking new opportunities and taking risks that can lead to both personal and professional growth. I'll show you how my own outside-the-box thinking led to my incredible experience of traveling to all 48 states while living in an RV and working remotely, plus how it changed my personal and professional trajectory.

By hearing my story, I hope you'll be inspired to see your own career and life path in a different light, and be encouraged to step out of your comfort zone to discover your own adventure. Don't miss this chance to learn about how embracing a pro-adventure mindset can help you achieve your wildest dreams!

Adding Redis Caching to Your .NET Web API

Are you suffering from slow web APIs in .NET? Is your database overloaded? It’s quite likely that adding a caching layer to your application will help with both of those problems.

In this session, we’ll learn about what causes slow APIs and overloaded databases, and see how caching can help alleviate these problems. We’ll discuss some of the common pitfalls of caching implementations and explore all the best tooling and libraries you can use to ease your Redis caching implementation in .NET.

Dotnet CLI or: How I Learned to Stop Worrying and Love the Command Line

If you’ve been using Visual Studio for years like I have, you’ve probably also grown accustomed to the “walled garden” experience that it provides. With .NET Core’s successfuly moves toward being cross-platform support for Linux, Mac, and Windows, the command-line interface (CLI) for .NET Core has become an even more important piece of the puzzle than ever before.

In this session, we’ll work through all the basic workflows for a .NET developer–but all all without the help Visual Studio. By the end, you will be able to create, build, publish, test, run, and package projects, as well serveral other common tasks like database migrations, or using third-party CLI tools.

A Data Access Layer You're Proud of without Entity Framework

If you're a .NET developer, it almost goes without saying that you use Entity Framework as part of the data access code on your software projects. Sometimes, EF is just right for the job, but other times you want something more simple, with better control of the generated SQL queries, and more performant. Over the years, several micro-ORMs (object relationship mappers) have evolved for just this purpose. Sometimes the simplest solution is the best one.

I'd like to walk you through a few of the more popular .NET micro-ORM options so you can see how you can make a simple, high-performance, and easy to use data access layer that you can be proud of.

I'm a .NET Developer, and I Want to Do AI to Something

AI is causing the tech landscape to evolve faster than ever, so it's important to understand how to when to use custom development and when to use artificial intelligence (AI), and how to use them together.

This talk takes you on a journey that demystifies the process of integrating AI concepts into .NET projects, opening doors to endless possibilities in your software projects. We'll go through a list of many of the AI tools and services available to a .NET developer, when you would use them, and how they would integrate into your traditional algorithms.

Participants leave equipped with a newfound understanding of AI's role in their .NET developer toolkit, poised to infuse innovation into their projects and embrace the exciting realm of AI-augmented software development.

NDC London 2025 Sessionize Event Upcoming

January 2025 London, United Kingdom

CodeMash 2025 Sessionize Event Upcoming

January 2025 Sandusky, Ohio, United States

Momentum 2024 Sessionize Event

October 2024 Cincinnati, Ohio, United States

MIDOTNET User group Sessionize Event

September 2024 Southfield, Michigan, United States

dev up 2024 Sessionize Event

August 2024 St. Louis, Missouri, United States

That Conference

July 2024 Wisconsin Dells, Wisconsin, United States

Cincy Deliver

July 2024 Cincinnati, Ohio, United States

KCDC 2024 Sessionize Event

June 2024 Kansas City, Missouri, United States

Stir Trek 2024 Sessionize Event

May 2024 Columbus, Ohio, United States

Michigan Technology Conference 2024 Sessionize Event

March 2024 Pontiac, Michigan, United States

NDC Sydney 2024 Sessionize Event

February 2024 Sydney, Australia

CodeMash 2024 Sessionize Event

January 2024 Sandusky, Ohio, United States

TechBash 2023 Sessionize Event

November 2023 Mount Pocono, Pennsylvania, United States

NDC Porto 2023 Sessionize Event

October 2023 Porto, Portugal

Indy.Code()

August 2023 Indianapolis, Indiana, United States

Cincy Deliver

July 2023 Cincinnati, Ohio, United States

KCDC 2023 Sessionize Event

June 2023 Kansas City, Missouri, United States

NDC London 2023 Sessionize Event

January 2023 London, United Kingdom

VS Live Orlando

November 2022 Orlando, Florida, United States

TechBash 2022 Sessionize Event

November 2022 Mount Pocono, Pennsylvania, United States

.NET Conf 2022 Sessionize Event

November 2022

Momentum 2022 Sessionize Event

October 2022 Cincinnati, Ohio, United States

Code PaLOUsa 2022 Sessionize Event

August 2022 Louisville, Kentucky, United States

KCDC 2022 Sessionize Event

August 2022 Kansas City, Missouri, United States

Developer Week '22 Sessionize Event

July 2022 Nürnberg, Germany

Stir Trek 2022 Sessionize Event

May 2022 Columbus, Ohio, United States

TechBash 2021 Sessionize Event

October 2021 Mount Pocono, Pennsylvania, United States

KCDC 2021 Sessionize Event

September 2021 Kansas City, Missouri, United States

Code PaLOUsa 2021 Sessionize Event

August 2021

Visual Studio Live! Las Vegas & Austin 2020 Sessionize Event

March 2020 Las Vegas, Nevada, United States

CodeMash 2020 Sessionize Event

January 2020 Sandusky, Ohio, United States

TechBash 2019 Sessionize Event

November 2019 East Stroudsburg, Pennsylvania, United States

VS Live Chicago

October 2019 Chicalim, India

Music City Tech 2019 Sessionize Event

September 2019 Nashville, Tennessee, United States

Code PaLOUsa 2019 Sessionize Event

August 2019 Louisville, Kentucky, United States

KCDC 2019 Sessionize Event

July 2019 Kansas City, Missouri, United States

Stir Trek 2019 Sessionize Event

April 2019 Columbus, Ohio, United States

Music City Tech 2018 Sessionize Event

May 2018 Nashville, Tennessee, United States

DevIntersections

November 2014 Las Vegas, Nevada, United States

ITCamp

May 2014 Cluj-Napoca, Romania

DevReach

October 2013 Sofia, Bulgaria

Jonathan "J." Tower

Microsoft MVP; Partner at Trailhead Technology Partners

Grand Rapids, Michigan, United States

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top