
Chad Green
Microsoft MVP; Director of IT Architecture at Aline
Louisville, Kentucky, United States
Chad Green is a developer, speaker, and software development community organizer. He is the organizer of Code PaLOUsa, a regional software development conference in Louisville, Kentucky along with the Louisville .NET Meetup and Louisville Tech Leaders. He is also a frequent speaker at software development conferences, where he shares his knowledge and experience in the field. He is passionate about helping other developers grow in their careers and is active in the local developer community.
Links
Awards
Area of Expertise
Topics
File New: Build a Fully-Managed and Documented API
Azure API Management is a way to create consistent modern API gateways for existing backend services. It provides an interface for your backend services and APIs while ensuring they are secured, monitored, maintained, well-documented, and published to the cloud. In this session, we will focus on the how by creating a new Azure API Management instance, configuring API endpoints to be served by the API Management instance, setting up rate-limiting, transforming data coming in and out of the endpoints, providing a portal for developers to intact with the API, and add security and performance. You will see firsthand how to get the most out of Azure API Management to make your APIs accessible to your internal and external customers.
File New: Build a Serverless Microservices from Scratch
The microservice pattern serves as an excellent practice in building modern applications to be more resilient and reduce dependencies across multiple components of a system. Often these solutions are based on complex web frameworks and containerization. Using Azure Functions, we can develop more concise services even quicker and get many additional benefits that come with serverless technology without all the operational management. In this session, we will focus on the how by starting with an empty Visual Studio solution and building a complete serverless microservice solution using Azure Functions that solve a real-world problem. You will see firsthand how to design, develop, and deploy the Azure Function App providing services usable to perform valuable services.
File New: Build a Event-Driven Architected Microservice from Scratch
Event-driven microservice architectures provide a versatile approach to designing and integrating complex software systems with independent, encapsulated components. During this session, we will focus on the how by starting with an empty Visual Studio solution and building a complete event-driven architected microservice to solve a real-world problem. You will see firsthand how to design, develop, and deploy a decoupled, encapsulated, responsive, scalable, and independent solution. We’ll talk about potential pitfalls, and you will see how to get around them.
Time Travelling Data: A Quick Overview of SQL Server Temporal Tables
Often customers will ask what the data looked like on a particular date and you might have built completed triggers and procedures to track that history. But SQL Server and Azure SQL already have a solution built-in, and it's straightforward to use. During this quick overview, you will understand what Temporal Tables are, the key scenarios around their use, and how to use built-in query syntax to retrieve the values of database records at a point in time. We will also look at how Entity Framework Core makes this even easier now with Temporal Table support.
Design and Develop a Serverless Event-Driven Microservice-Based Solution in 2 Days
You have heard all the buzzwords such as microservices, event-driven architecture, serverless, etc. You probably have attended sessions that talk about these terms. But how do you put all that together?
During this two-day workshop, you will start by designing a solution using serverless and event-driven cloud services using microservice patterns. Then you will build that solution using .NET, Azure services, and other best-practice tools. Finally, you will deploy that solution to the cloud so your customers can reap the rewards of a well-architected, reliable, and scalable solution that meets their needs today and provides for growth in the future.
Beyond Hello World: Getting Deeper into Azure Functions
By now, you surely have seen the HTTP trigger within Azure Functions. Just about every presentation uses that trigger to show how awesome Azure Functions can be. But there is a bunch more you can do with Azure Functions using the other triggers and bindings, which make Azure Functions a fantastic tool in your tool chest for solving all sorts of needs. So come and hear about these triggers and bindings and see real-world examples of how they have been employed in different solutions to solve real customer needs.
Developing a Resilient Serverless Solution
So, you have decided to develop a serverless solution using Azure Functions because it makes it easy to get things up and running and handles all the scalability issues for you. All you have to do is write the code. However, while Azure Functions (and other similar serverless services) offer a great set of features that make scalability, resilience, and reliability easier, it is not fool-proof and can still go down. During this session, we will talk about how to make your Azure Function solutions more resilient, how to validate it will continue to work under load, and how to know about potential failures or at least the failures before your customer does.
Develop a Serverless Event-Driven Microservice-Based Solution in a Day
You have heard all the buzzwords such as microservices, event-driven architecture, serverless, etc. You probably have attended sessions that talk about these terms. But how do you put all that together?
During this workshop, you will build a solution using serverless and event-driven cloud services implementing microservice patterns. Then you will deploy that solution to the cloud so your customers can reap the rewards of a well-architected, reliable, and scalable solution that meets their needs today and provides for growth in the future.
Building Great Libraries
“Bad libraries build collections; good libraries build services; great libraries build communities.” Whether you are building a class library containing common functionality to use within your company’s products, a class library for your customers to be able to use your services, or the next great open-source project; you should take great care when building a class library so that it is easy to use and widely adopted. During this session, we will talk about coding standards you should apply, documentation, dependencies, publishing, versioning, and handling breaking changes so that you can build class libraries that developers will enjoy using instead of those they curse at.
Building Event-Driven Microservices
Event-driven architecture promotes the production, detection, consumption of, and reaction to events. Using this type of architecture can improve how your products respond to events coming in from multiple sources – especially when you need to take various actions based upon an event. During this session, we’ll explore event-driven architecture and how we can incorporate it into a microservice pattern to develop lightweight services that can quickly react to events coming from multiple sources. While the architecture can work with different technologies, we’ll implement this approach using Azure services.
Building Microservice REST APIs Using Azure Functions
The microservice pattern serves as an excellent practice in building modern applications to be more resilient and reduce dependencies across the multiple parts of a product. But generally, these involve complex web frameworks and containerization to get those benefits. But using Azure Functions, we can develop more concise services even quicker and get many of the benefits of serverless technology without lots of operational management. In this session, we’ll explore Azure Functions and see how they can be used to build out a microservice-based solution.
The Taming of the API
Tranio tells Lucentio that, “No profit grows where is no pleasure ta’en: In brief, sir, study what you most affect.” While Tranio’s point was to get Lucentio to loosen up for him to “live a little,” this is still a valuable lesson to developers. Your team has worked hard to build the functionality that provides all of your customers’ needs, but how easily have you made it for them to access that? Sometimes building the API is the easy part; making them usable is the hard part. But by adding an API gateway, we can make it easier for customers to access functionality and data provided by your application.
In this presentation, we will look at API gateways in general and how to use them to make your APIs usable. We’ll then go into examples using Azure’s API Management service, which allows you to streamline work in Azure and across hybrid and multi-cloud environments to provide your customers with a single place to work with your APIs.
Technical Debt Is Not Free
So many software development teams rack up technical debt and do not even realize it. But even if you are a more mature team and recognize and maybe even document technical debt, what good is it if you do not take action. Just like in other parts of our life, just because we can accumulate bunches of debt, if we do not take steps to handle it, we will be destined for bad times when that comes due. In this session, we’ll explore technical debt, how to properly document and track it, and – more importantly – how to address it so that it does not cause significant issues down the road.
Going Schema-less: How to migrate a relational database to a NoSQL database
There can be a lot of great benefits of developing with a NoSQL database over a relational database. In this presentation, you will learn about those benefits and also the potential pitfalls. There will be demonstrations where we take relationally developed data, restructure it into a NoSQL database (Cosmos DB in particular), and develop an application to work with that data.
Secrets of Conflict Resolution
One of the most challenging aspect of being a leader is dealing with conflict amongst your team. It’s vital to productivity to get the team running like a well-oiled machine, even in the face of adversity. Improving your relationships with your coworkers, clients, and managers and find your way through conflict back to cooperation. This session will provide you with the secrets of effective conflict resolution and how to prevent conflicts from ever starting.
Software Craftsmanship for Non-Developers
Have you heard the developers on your team throw around terms like code smell, DRY, or SOLID you just look at them with a blank stare? When your senior developer tells you that they need to spend a sprint taking care of technical debt do you just think they are wanting some time to goof off? Then this session is for you. We will discuss what exactly software craftsmanship is and what is not and why it can be important on your team.
How to be a Leader
What is leadership? That term gets thrown around a lot, but what is it really? What do leader do that makes them leaders? Leadership can be learned and that is good as leaders are in high demand and in short supply. TO be an effective leader, you must first understand what leadership is and what traits a leader exhibits.
During this session, we will review leadership traits and principles and how you can implement them within your teams. By demonstrating these in your daily activities you will earn the respect, confidence, and loyal cooperation of those on your team.
Software Craftsmanship for New Developers
As a new developer, knowing language syntax is important; but just as important is understanding what software craftsmanship is. In this session Chad will talk about what the software craftsmanship movement is all about and why it is important. Chad will also explain important craftsmanship terms like code smells, DRY, and SOLID. Even if you have been developing for a while, this session will be useful to brush up on how not to be a developer but how to be a professional developer.
Time Travelling Data: SQL Server Temporal Tables
Have you have built complicated triggers and procedures to track the history of data in your databases? What if SQL Server or Azure SQL could take care of all that for you and you just had to change a couple of settings? Starting with SQL Server 2016, there is support for system-versioned temporal tables as a database feature that brings built-in support for providing information about data stored in a table at any point in time rather than only the data that is correct as the current moment time. During this session, Chad will explain the key scenarios around the use of Temporal Tables, how system-time works, how to get started, and finish up with a demo to show you Temporal Tables in action, including the easy-to-use T-SQL syntax to implement all of the Temporal goodness. We will also look at how Entity Framework Core 6 now lets us do all this directly in Entity Framework.
The Hitchhiker’s Guide to the Cosmos
Today’s applications are required to be highly responsible and always online. Cosmos DB was built from the ground up to provide a globally distributed, multi-model database service that enables you to elastically and independently scale throughput and storage across any number of Azure regions worldwide. Because of its ARS (atoms, records, and sequences) design, Azure Cosmos DB accessing data via SQL, MongoDB, Table, Gremlin, and Cassandra APIs. All of this with transparent multi-master replication, high availability at 99.999%, and guarantees of less than 10-ms latencies both reads and (indexed) writes.
In this session, you will learn what you can do with Cosmos DB, the benefits of each of these data models, and how to use everything Cosmos DB has to offer to make your applications rock solid. Come find out when and how to implement Cosmos DB and which options you should use based upon your needs.
Graphing Your Way Through the Cosmos: Common Data Problems Solved with Graphs
Data as it appears in the real world is naturally connected, but traditional data modeling focuses on entities which can cause for complicated joins of these naturally connected data. That is where graph databases come in as they store data more like what happens naturally in the real world. Sure, there a lot of talk about using graph databases for social networks, recommendation engines, and Internet of Things; but using graph databases can also make a lot of sense when working with common business data problems.
In this presentation, you will get a better understanding of what graph databases are, how to use the Gremlin API within Azure Cosmos DB to traverse such data structures, and see practical examples to common data problems.
Ch-ch-ch-changes: Tracing Changes in Azure Cosmos DB
David Bowie might not be able to trace how time changes him, but with the Azure Cosmos DB change feed allows us to trace the changes to your data within your Cosmos database. The Azure Cosmos DB change feed listens to an Azure Cosmos container for any changes and then outputs the sorted lists of documents that were changed. In this session, you learn what the change feed is, how it works, and how you can use it to build more robust applications.
Reevaluating Software Design Patterns: Uncovering Patterns That Can Be More Burden Than Benefit
Design patterns are potent tools in software development that solve recurring problems. These patterns have become essential in creating maintainable, scalable, and robust software systems. However, not all design patterns are created equal, and some well-respected patterns may inadvertently lead to increased complexity, decreased maintainability, and even hinder productivity. In this presentation, we'll delve into software design patterns that can cause more work than they are worth.
Join us as we explore design patterns that have earned their place in software engineering history but may only sometimes live up to their reputation. We'll discuss real-world scenarios where these patterns can lead to unintended consequences, including convoluted code, performance bottlenecks, and intricate debugging sessions.
Essential Software Design Patterns for Optimal Development
Utilizing effective design patterns is paramount to achieving maintainable, scalable, and robust systems in software development's dynamic and ever-evolving landscape. This presentation aims to delve into the world of software design patterns, providing an in-depth exploration of the most valuable and versatile ways that have stood the test of time.
The presentation will begin by laying a solid foundation with an overview of design patterns and why they are crucial in modern software engineering. It will then examine a carefully curated selection of essential design patterns, each accompanied by real-world examples and use cases highlighting their practical applications.
The presentation will emphasize each pattern's benefits and potential drawbacks, addressing concerns related to code maintainability, extensibility, and collaboration within development teams. Special attention will be given to pattern selection criteria, guiding participants in making informed decisions about when and where to apply specific patterns.
By the end of this presentation, attendees will be equipped with a solid foundation in a range of essential software design patterns, enabling them to make informed design choices, write cleaner and more modular code, and confidently tackle complex software engineering challenges. Whether novice or experienced, every software professional will find valuable insights to enhance their development practices and elevate the quality of their software projects.
TechBash 2023 Upcoming
Indy.Code()
• Building Event-Driven Microservices
• The Taming of the API
Nebraska.Code()
* Technical Debt Is Not Free
* The Taming of the API
TDevConf
TDevConf is a new virtual conference presented by the .NET User Groups in Chattanooga, Knoxville, Memphis, and Nashville, Tennessee.
The Hitchhiker’s Guide to the Cosmos
Today’s applications are required to be highly responsible and always online. Cosmos DB was built from the ground up to provide a globally distributed, multi-model database service that enables you to elastically and independently scale throughput and storage across any number of Azure regions worldwide. Because of its ARS (atoms, records, and sequences) design, Azure Cosmos DB accessing data via SQL, MongoDB, Table, Gremlin, and Cassandra APIs. All of this with transparent multi-master replication, high availability at 99.999%, and guarantees of less than 10-ms latencies both reads and (indexed) writes.
In this session, you will learn what you can do with Cosmos DB, the benefits of each of these data models, and how to use everything Cosmos DB has to offer to make your applications rock solid. Come find out when and how to implement Cosmos DB and which options you should use based upon your needs.

Chad Green
Microsoft MVP; Director of IT Architecture at Aline
Louisville, Kentucky, United States