What people are saying
Once again, I enjoyed your presentations. Last year’s SOLID
presentation was great and I really enjoyed both your presentations
this year.
I want to express my appreciation and enthusiasm for your class on
SOLID OO design. It left a deep impression on me.
Attended the trifecta and received great information from your
presentation.
It was a great, well-prepared, well-given presentation, enlightening to all that attended.
AWESOME lecture!!! Thank you! This lecture was my favorite at Desert
Code Camp. GREAT topic!!!!!
10 minutes in, Craig
is an excellent speaker
Best speaker of the spring Utah Code Camp.
Thanks to Craig for his session on SOLID OOP. A good combination of
review and new principles.
The highlight of my day (other than the pizza, of course)
I thought it was most informative. I had heard of DDD but this was
the first time I got a detailed review of it's concepts (Entities,
Value Objects, Services, etc).
Excellent talk. Standing room only and it was worth it.
An excellent session on SOLID OOP, the slides were laid out well
with the SOLID definition, then each area broken down, and some code
examples to further explain.
A really good presentation on the basics of DDD.
Great introduction to CI. Knowledgeable speaker and well designed
presentation.
All in all it was a fun session. The subject matter was timely and
relevant. I enjoyed it quite a bit.
Craig is extremely well prepared and engages the audience well with Q&A.
Thank you for your timely, informative and amusing presentation. It was invaluable.
Over the years, I have given many presentations to various groups. Here are the presentations currently available. Attendees will have access to the PowerPoint slides and sample code and whitepaper where applicable.
Available presentations
Branches and Merges are Bears, Oh My!
One of the most important tools you have have is a Version Control System (VCS). But while it can be very useful, it can also be very frustrating. It's common to branch your code, but when it comes time to merge, it can be a big problem. In this session, you will learn concepts to avoid branching in the first place, when brancing makes sense, and how to branch effectively. Whether you use a centralized or distributed VCS, you'll see how to apply practices that can make a big impact in managing your VCS.
The Continuous Delivery Zone
Imagine if you will, a development environment where your application is compiled, tested, and delivered automatically with little to no human intervention. A delivery pipeline keeps things flowing smoothly through the entire process and notifies you when a clog stops things. Does it sound impossble? You're about to find out as you enter The Continuous Delivery Zone. In this session you will learn about Continuous Integration (CI) and then how to extend it into automated testing, code analysis, and even into deployment using a Deployment Pipeline. You will then learn about reporting back to the development team using a CI Server and a Build Radiator.
Software Gardening
Creating great software is not like construction. It's more like gardening. In this session you will learn about important software gardening concepts such as soil, water, seeds, light, pruning, insecticide, weeding, and more. Along the way you'll see processes, concepts, tools, and techniques that you can use in your software gardening project. By applying the ideas presented in this session, your software will be lush, green, and vibrant.
Public Speaking for Computer Professionals
At some point, most of us have to speak in public, whether you need to speak to customers or coworkers or you desire to be a conference speaker. This session will help you get over your fears and get up in front of an audience. You will learn about creating the presentation, being on stage, handling questions, what to when things go wrong, and more. You will also learn lots of do's and don'ts for working with PowerPoint.
SOLID Object Oriented Design
SOLID is term that stands for five basic patterns of object-oriented programming and design. By using the principles, you are much more likely to create a system that more maintainable and extensible. SOLID can be used to remove code smells by refactoring. You will learn about the following SOLID principles: Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion.
Continuous Integration in .NET
Continuous Integration is a method where source code is continually built and tested, resulting in better quality applications in less time. While Visual Studio Team System gives you the tools you need to do continuous integration, the cost is prohibitive to many shops. This presentation discusses free tools that allow you to integrate continuous integration into your .NET development.
Static Code Analysis in .NET
Testing is an integral part of any application, but testing the executing code is only one way to verify it is correct. It's important to also analyze the code and compiled assemblies. In this session, you will learn how to use static code analysis tools to improve your code and catch bugs before you ship.
Introduction to Domain Driven Design
Domain Driven Design is used to reduce complexity in an application. Many people feel that it is only applicable to large, enterprise-wide applications. This view is far from the truth. You can use DDD concepts in every app you write. This presentation introduces you to DDD concepts. You will learn concepts that totally turn your design practices on their head, but you'll also see you already do many DDD concepts.
All rights Reserved