This class teaches you how to take advantage of what C# and .Net offer. It takes a range of real-world problems, and uses modern C# and .Net features to build clean, well designed, multi-paradigm solutions.

Computationally intensive work is often best solved by moving to parallel processing, to take advantage of multiple cores. This course investigates both PPL and AMP, however it has a larger focus on the more advanced AMP functionality.

Using C# 6.0 effectively means going beyond the object oriented features of the language. Effective C# developers make good use of generics, LINQ (Language Integrated Query) and lambda expressions. They use enumerations, nullable types, initializers and extension methods to write cleaner code that is easier to refactor. This course steadily takes developers with a working knowledge of the object oriented features at the core of the C# language to the next level.

This course will give your ASP.NET MVC 5 development a solid start - in the right direction! It picks out and explains the things you need to know in order to use the framework effectively and develop testable solutions. While the course has a focus on practical skills, it also takes the time to explain important underlying concepts, including how HTTP works, the MVC design pattern, the TDD workflow and dependency inversion.

If you’ve been at any conference or talk recently you’ve likely heard about microservices. In this course we will look at what microservices are and what advantages (and disadvantages) they offer. With microservices architects have the responsibility to break their monolithic application into a collection of smaller microservices. This gives the ability to easily scale different parts of an application dependent on system load, or to choose different technologies for different services. With this increase in freedom and functionality we also get increased responsibilities for testing, documentation, and security. We’ll dig into all of these areas and see practical solutions based on our experience.

Invariants hidden in callbacks

Expanding boundaries

How to create a course

I’ve always admired my colleagues work they’ve put into creating great and rewarding courses, I imagined it was a challenging and time-consuming task. I can see the meaning of that now, because all of a sudden I am developing a course.