Online courses

There are several online courses I produced over the past years.

Domain-Driven Design in Practice

This course is a descriptive, in-depth walk-through. It shows how to develop an application from scratch using Domain-Driven Design principles and patterns.

I really admire the great refactoring ability Vlad has. I’ve dropped my mouth many times watching his courses. Started watching his code with a bit of indifference at the very beginning but as soon as he refactored the code to reflect the concepts of DDD, it was like watching a top-level software craftsman. Every step well commented, and reasoned, changes flowed so naturally that refactoring seemed really easy.

 

 

CQRS in Practice

An in-depth guideline into every concern or implementation question you’ve ever had about CQRS. And by every, I really do mean each and every thing about CQRS. After watching this course, you won’t have anything left to ask about CQRS.

I just finished this course. It was terrific. That’s an understatement. I’ve been developing software for a long time with more focus on code quality and architecture in recent years. It’s astounding that in so many organizations principles like this are completely unknown, which means you can go a long time without learning about them.

 

In past years I’ve started some side projects, but I always experienced friction between how I wanted them to behave and the CRUD-based design. This was really eye-opening, even game-changing.

 

 — Scott Hannen, Mar 7, 2019 (from an email exchange, shared with permission)

After several viewings of this course, I certify it Platinum! I can’t sing your praises enough. Thank you!

 

 — Rock Anthony Johnson Nov 31, 2018

This really is a very well thought-out course. I’ve watched several of yours previously, but for me this one was precisely where I think it should have been; exactly balanced on illustrating deep and specific topics while explicitly not distracting with the irrelevant topics - and making that clear. Really, really well done.

 

 — Ryan Harris Nov 16, 2018

I sincerely recommend it to anybody that wants to learn about the CQRS pattern and DDD in general.

 

 — Paulo Clavijo Jan 12, 2019

 

Functional Principles in C#

This course will teach you the fundamental principles behind functional programming, why they are important and how to apply them in practice:

  • Immutable architecture

  • Exceptions

  • Primitive obsession

  • How to handles failures and input errors

  • Working with nulls

 

Refactoring from Anemic Domain Model Towards a Rich One

Having a rich, highly encapsulated domain model is essential if you want to succeed in building building bullet-proof business line applications. This course shows how to properly implement it. The topics covered in the course:

  • Why Anemic domain is an anti-pattern

  • Its relationship to functional programming

  • Encapsulation and how to achieve it in your domain model

  • Most important refactoring techniques

As usual, the course is built around an end-to-end close-to-real-world sample application.

For me, this course by Vladimir Khorikov was eye-opening.

 

 — Daniel Dughila Mar 9, 2018

Briiliant course Mr. Khorikov. This is EXACTLY what I’ve been looking for. Thank you so much. We need more real world courses like these

 

 — Ilunga Kalusokoma May 5, 2018

Excellent material and teaching style. One of the best courses on pluralsight I’ve seen so far. The live refactoring of an actual project is very helpful.

 

 — Brett Liotta Nov 27, 2017

You have an amazing knack of explaining complex topics in an easy to understand way! I’ve been writing code in c# for over 15 years and still learned quite a lot from this course…​ Great job!

 

 — Preetham Reddy Feb 20, 2019

This is a quantum leap in my understanding of DDD.

 

 — Michael Wong Apr 8, 2019

This course just rocks.

 

 — Theron Kousek Apr 19, 2019

 

Building a Pragmatic Unit Test Suite

Unit testing is everywhere. It is one of the most widely spread engineering practices in the world of software development. It’s important to know how to apply it in a way that helps, and not prevents you from building successful products. This course shows how to do that. A brief outline of the questions answered in the course:

  • What makes a test valuable

  • Different styles of unit testing

  • The use of mocks

  • Integration testing

  • Unit testing anti-patterns

The goal of this course is not merely to teach you how to write unit tests but show, with examples, how to make the most out of them.

 

Database Delivery Best Practices

Keeping track of your application’s database is never an easy task. This course will teach you different approaches to database delivery and best practices that will help you avoid running into common pitfalls in this area.

 

Specification Pattern in C#

Domain-driven design includes many established patterns and practices, and the specification pattern is one of them. In this short course, you’ll learn how to properly implement the specification pattern in practice and avoid common anti-patterns and pitfalls in this area.

I like the way you structure your courses. Taking small sample project with general implementation which most developers would do, and then refactoring that implementation to show how an expert programmer would do it.

 

This is the aspect I generally expect from the authors I follow, but you are the only one I found who explains how an expert programmer writes software. Thank you very much and keep doing it.

 

 — Sridhar Reddy, Jun 13, 2019 (from an email exchange, shared with permission)

 

Domain-Driven Design: Working with Legacy Projects

As a programmer, you’d love to only work on green-field projects. However, you are most likely working on a legacy project right now, or will be at some point in the future. In this course, you’ll develop skills that will help you manage these legacy projects to deliver new functionality and keep the stakeholders happy. Here are the key takeaways:

  • How to make your way through the legacy code base by refactoring it one step at a time

  • How to handle rewrites, when to do that, and when it is better to keep the existing legacy code base instead

  • Building an Anticorruption Layer - very powerful DDD technique.

Just like all your other courses, this one is excellent. You always use very good code samples (simple, but complex enough to show how things would be in a real environment) and the flow of the course is logical and easy to follow. I recommend everyone who wants to get into DDD, to watch all your DDD courses.

 

 — Filip Van Bouwel 08/02/2018

This is an EXCELLENT 5-star course on Pluralsight about adding DDD concepts into a legacy project. Learned a lot.

 

 — Theron Kousek April 14, 2019

 

Automating UI Tests for WPF Applications

This course is about building a test automation framework for WPF applications.