# Dometrain > Dometrain is an online learning platform for software engineers. Courses are crafted by expert engineers and combine video lessons with written lessons, in-browser coding exercises, quizzes and certificates. The library is strongest in C# and .NET, with courses on architecture, design patterns, cloud, AI, testing and other languages. Free courses and the preview lessons of paid courses are open to everyone. Dometrain Lite includes a curated set of courses, Dometrain Pro includes the full first-party library, and single courses can also be bought on their own. Partner courses, published by independent authors, can only be bought individually and are never included in Lite or Pro. AI use: reading, summarising and citing these pages to answer questions is welcome. Using Dometrain content to train AI models is not permitted (see https://dometrain.com/robots.txt). ## Start here - [Course catalog](https://dometrain.com/courses/): Every course, with filters for topic and level. - [Plans and pricing](https://dometrain.com/dometrain-pro/): Dometrain Lite and Dometrain Pro. Prices depend on the visitor's country. - [Learning paths](https://dometrain.com/learning-paths/): A personal learning path that the Dometrain agent builds from a learner's goal and progress. - [Workshops](https://dometrain.com/workshops/): Online workshops run by engineers. ## Tools - [AI agent](https://dometrain.com/ai-agent/): An AI assistant inside every course. It writes and edits code, runs tests, draws architecture diagrams, and answers questions about video lessons. Every account gets a free weekly allowance. AI assistance in partner courses requires an active Dometrain Lite or Pro subscription, even when the course is purchased separately. - [MCP server](https://dometrain.com/mcp/): Gives coding agents (Claude Code, Codex, GitHub Copilot, OpenCode) searchable lesson documents, code transcribed from the videos, and links to the moment a concept is taught. Endpoint: https://mcp.dometrain.com/mcp over HTTP with an `Authorization: Bearer ` header. Requires Dometrain Pro; keys are created in the account settings. - [SkillScore](https://dometrain.com/skillscore/): A timed assessment that gives a chess-style skill rating and a plan for closing the gaps. - [Mock interviews](https://dometrain.com/interviews/): Voice-based mock technical interviews with an AI interviewer and a scored debrief. ## Courses by topic - [C# & .NET](https://dometrain.com/courses/dotnet/) - [Architecture](https://dometrain.com/courses/architecture/) - [TypeScript](https://dometrain.com/courses/typescript/) - [Testing](https://dometrain.com/courses/testing/) - [Cloud](https://dometrain.com/courses/cloud/) - [Databases](https://dometrain.com/courses/databases/) - [Blazor](https://dometrain.com/courses/blazor/) - [AI](https://dometrain.com/courses/ai/) - [Design Patterns](https://dometrain.com/courses/design-patterns/) - [Containers](https://dometrain.com/courses/containers/) ## All courses - [Getting Started: OpenID Connect](https://dometrain.com/course/getting-started-openid-connect/): Learn how OAuth and OpenID Connect work, from understanding tokens and claims to using the different flows. - [From Zero to Hero: Visual Studio](https://dometrain.com/course/from-zero-to-hero-visual-studio/): Learn how to use Visual Studio, from creating your first project to debugging, shortcuts, and extensions. - [Deep Dive: Claude Code](https://dometrain.com/course/deep-dive-claude-code/): Learn how to use and configure Claude Code, from custom skills and hooks to MCP servers and CI/CD integration. - [From Zero to Hero: Working with GitHub Copilot](https://dometrain.com/course/from-zero-to-hero-working-with-github-copilot/): Learn how to use GitHub Copilot, from writing your first prompts and implementing features to extending it with custom agents and MCP servers. - [Deep Dive: Caching in .NET](https://dometrain.com/course/deep-dive-caching-in-dotnet/): Learn how caching works in .NET, from eviction policies and distributed caches to hybrid caching and handling cache stampedes. - [Deep Dive: Rust](https://dometrain.com/course/deep-dive-rust/): Learn how to use traits, manage memory, write unsafe code, handle concurrency, and build advanced web applications in Rust. - [Getting Started: Microsoft Agent Framework in Python](https://dometrain.com/course/getting-started-microsoft-agent-framework-in-python/): Learn how to use the Microsoft Agent Framework in Python to build AI agents and orchestrate workflows. - [Getting Started: Microsoft Agent Framework in .NET](https://dometrain.com/course/getting-started-microsoft-agent-framework-in-dotnet/): Learn how to use the Microsoft Agent Framework to build AI agents in .NET, from your first agent to tools, workflows, and observability. - [Hands-On: Learn Linux](https://dometrain.com/course/hands-on-learn-linux/): Start from zero in a real Linux environment and learn Linux through the terminal. - [Getting Started: Claude Code](https://dometrain.com/course/getting-started-claude-code/): Learn how to get started with Claude Code, from setting up your project to handling development workflows. - [Getting Started: Rust](https://dometrain.com/course/getting-started-rust/): Learn how to get started with Rust, from the basics of memory management to building and testing a web API that talks to a database. - [Hands-On: Learn Vim](https://dometrain.com/course/hands-on-learn-vim/): Learn how to edit text in Vim, from basic movement and saving to macros and configuration. - [From Zero to Hero: Garbage Collection in .NET](https://dometrain.com/course/from-zero-to-hero-garbage-collection-in-dotnet/): Learn how garbage collection works in .NET, from the stack and heap to generations and the disposable pattern. - [Hands-On: Learn Git From Scratch](https://dometrain.com/course/hands-on-learn-git-from-scratch/): Learn how to use Git, from your first commit to branching, merging, and rebasing. - [Hands-On: System Design for Azure](https://dometrain.com/course/hands-on-system-design-for-azure/): Learn how to design systems on Azure, from routing requests and storing data to handling asynchronous work. - [From Zero to Hero: Benchmarking code in .NET](https://dometrain.com/course/from-zero-to-hero-benchmarking-code-in-dotnet/): Learn how to measure code performance in .NET using BenchmarkDotNet. - [Hands-On: C for Beginners](https://dometrain.com/course/hands-on-c-for-beginners/): Learn how to program in C, from your first function to pointers, dynamic memory, and data structures. - [Hands-On: System Design for AWS](https://dometrain.com/course/hands-on-system-design-for-aws/): Learn how to design systems in AWS by building a request path and optimizing it for observability, security, reliability, performance, and cost. - [Mastering: C#](https://dometrain.com/course/mastering-csharp/): Learn how C# features work under the hood, from the memory layout of types to the performance of lambdas, pattern matching, and LINQ. - [Hands-On: System Design for Beginners](https://dometrain.com/course/hands-on-system-design-for-beginners/): Free course. Get started with System Design using Dometrain's System Design Editor - [From Zero to Hero: 1 Billion Row Performance Challenge in .NET](https://dometrain.com/course/from-zero-to-hero-1-billion-row-performance-challenge-in-dotnet/): Learn how to process a billion-row file in .NET using multi-threading, memory-mapped files, and SIMD. - [Hands-On: System Design for Intermediate Engineers](https://dometrain.com/course/hands-on-system-design-for-intermediate-engineers/): Learn how to design and scale systems using horizontal scaling, database replication, sharding, caching, distributed tracing, and CQRS. - [Hands-On: Advanced System Design](https://dometrain.com/course/hands-on-advanced-system-design/): Learn how to design distributed systems, from event sourcing and CQRS to multi-region architecture and observability. - [From Zero to Hero: Background Processing in .NET](https://dometrain.com/course/from-zero-to-hero-background-processing-in-dotnet/): Learn how to build background jobs in .NET using hosted services, worker services, scheduling libraries, and message queues. - [Getting Started: C# Interview Questions](https://dometrain.com/course/getting-started-csharp-interview-questions/): Free course. Learn how to answer junior developer interview questions about C# fundamentals, object-oriented programming, memory, and async. - [Getting Started: Java Interview Questions](https://dometrain.com/course/getting-started-java-interview-questions/): Free course. Learn the Java concepts needed to answer junior developer interview questions, from OOP and collections to streams and the JVM. - [Getting Started: JavaScript Interview Questions](https://dometrain.com/course/getting-started-javascript-interview-questions/): Free course. Learn the JavaScript fundamentals you need to answer junior developer interview questions, from the type system to closures and async. - [Getting Started: TypeScript Interview Questions](https://dometrain.com/course/getting-started-typescript-interview-questions/): Free course. Learn the TypeScript concepts you need to answer junior developer interview questions, from the type system and scoping to asynchronous programming. - [Getting Started: Python Interview Questions](https://dometrain.com/course/getting-started-python-interview-questions/): Free course. Learn how to answer junior developer interview questions on Python fundamentals, built-in data structures, object-oriented programming, and generators. - [Getting Started: Go Interview Questions](https://dometrain.com/course/getting-started-go-interview-questions/): Free course. Learn how to answer junior developer interview questions about Go, from variables and types to concurrency and testing. - [Getting Started: QA Automation Engineer Interview Questions](https://dometrain.com/course/getting-started-qa-automation-interview-questions/): Free course. Learn how to get started with QA automation, from UI and API testing to test structure and CI. - [Getting Started: Manual QA Interview Questions](https://dometrain.com/course/getting-started-manual-qa-interview-questions/): Free course. Learn the fundamentals of manual QA, from test design and defect management to API and SQL validation, to prepare for interview questions. - [Hands-On: Behavioral Design Patterns in C#](https://dometrain.com/course/hands-on-behavioral-design-patterns-in-csharp/): Learn how to implement and combine the behavioral design patterns in C# - [Hands-On: Structural Design Patterns in C#](https://dometrain.com/course/hands-on-structural-design-patterns-in-csharp/): Free course. Learn how to implement the seven structural design patterns in C# - [Hands-On: Creational Design Patterns in C#](https://dometrain.com/course/hands-on-hands-on-creational-design-patterns-in-csharp/): Learn how to implement the Creational Design Patterns in C# - [From Zero to Hero: Microsoft.Extensions.AI in .NET](https://dometrain.com/course/from-zero-to-hero-microsoft-extensions-ai-in-dotnet/): Master the main AI abstraction library for .NET AI development - [Getting Started: Authentication and Authorization in .NET](https://dometrain.com/course/getting-started-authentication-and-authorization-in-dotnet/): Learn how to get started with authentication and authorization in .NET - [Hands-On: LINQ in C#](https://dometrain.com/course/hands-on-linq-in-csharp/): Master LINQ, one of C#'s most powerful features - [Mastering: Azure for Developers](https://dometrain.com/course/mastering-azure-for-developers/): Familiar with Azure? Learn how to master it with this course. - [Getting Started: Model Context Protocol (MCP)](https://dometrain.com/course/getting-started-model-context-protocol-mcp/): Learn the fundamentals of MCP, the open standard for connecting AI assistants to external tools, data sources, and APIs. - [Career: Becoming A Tech Lead](https://dometrain.com/course/career-becoming-a-tech-lead/): Learn what it really takes to step into a Tech Lead role. - [Career: Making High-Impact Decisions with AI](https://dometrain.com/course/career-making-high-impact-decisions-with-ai/): Learn to make better technical decisions using practical frameworks and AI - [Hands-On: SOLID Principles in C#](https://dometrain.com/course/hands-on-solid-principles-in-csharp/): Learn SOLID Principles in C# by completing hands-on C# exercises. - [Hands-On: C# for Beginners](https://dometrain.com/course/hands-on-csharp-for-beginners/): Free course. Learn C# from scratch by completing practical exercises, writing real C# code. - [Hands-On: Learn Java](https://dometrain.com/course/hands-on-learn-java/): Learn Java from scratch by completing practical exercises and writing real Java code. - [Getting Started: Bicep for Azure](https://dometrain.com/course/getting-started-bicep-for-azure/): Learn how to manage Azure resources with Bicep from scratch - [Hands-On: Learn TypeScript](https://dometrain.com/course/hands-on-learn-typescript/): Learn TypeScript from scratch by completing practical exercises and writing real TypeScript code. - [Hands-On: Learn Python](https://dometrain.com/course/hands-on-learn-python/): Learn Python from scratch by completing practical exercises and writing real Python code. - [Hands-On: Learn Go](https://dometrain.com/course/hands-on-learn-go/): Learn Go from scratch by completing practical exercises and writing real Go code. - [Hands-On: Learn JavaScript](https://dometrain.com/course/hands-on-learn-javascript/): Learn JavaScript from scratch by completing practical exercises and writing real JavaScript code. - [Hands-On: Learn SQLite](https://dometrain.com/course/hands-on-learn-sqlite/): Free course. Learn SQLite through hands-on coding exercises. Practice what you learn with interactive exercises. - [Hands-On: Data Structures & Algorithms in C#](https://dometrain.com/course/hands-on-data-structures-and-algorithms-in-csharp/): Learn data structures and algorithms in C# with practical hands-on exercises - [From Zero to Hero: Parallel Programming in C#](https://dometrain.com/course/from-zero-to-hero-parallel-programming-in-csharp/): Master modern multi-threading in C# using the latest parallelism features - [Hands-On: Learn PostgreSQL](https://dometrain.com/course/hands-on-learn-postgresql/): Learn PostgreSQL through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level. - [Getting Started: AI for .NET Developers](https://dometrain.com/course/getting-started-ai-for-dotnet-developers/): Get started with integrating AI into your .NET applications effectively using the latest LLM best practices. - [From Zero to Hero: Serverless with Azure Functions](https://dometrain.com/course/from-zero-to-hero-serverless-with-azure-functions/): Simplify your development and deployment by building Serverless services with Azure Functions. - [Getting Started: Building .NET Applications on AWS](https://dometrain.com/course/getting-started-building-dotnet-applications-on-aws/): Learn how to build modern .NET Applications using Amazon Web Services features and services for production. - [Getting Started: Messaging in .NET with NServiceBus](https://dometrain.com/course/getting-started-messaging-in-dotnet-with-nservicebus/): Simplify distributed systems messaging in .NET using the battle-tested NServiceBus framework. - [Hands-On: System Design for GCP](https://dometrain.com/course/hands-on-system-design-for-gcp/): Learn how to design systems on GCP, from serving requests and managing data to messaging, networking, and observability. - [Let's Build It: AI Chatbot with RAG in .NET Using Your Data](https://dometrain.com/course/lets-build-it-ai-chatbot-with-rag-in-dotnet-using-your-data/): Build a Retrieval-Augmented Generation (RAG) chatbot that can answer questions using your data. - [From Zero to Hero: SignalR in .NET](https://dometrain.com/course/from-zero-to-hero-signalr-in-dotnet/): Enable enterprise-grade real-time communication for your web apps with SignalR - [Deep Dive: Solution Architecture](https://dometrain.com/course/deep-dive-solution-architecture/): Master solution architecture and turn business needs into scalable, maintainable systems. - [Migrating: ASP.NET Web APIs to ASP.NET Core](https://dometrain.com/course/migrating-asp-net-web-apis-to-asp-net-core/): A step-by-step process to migrate ASP.NET Web APIs from .NET Framework to ASP.NET Core. - [Getting Started: Caching in .NET](https://dometrain.com/course/getting-started-caching-in-dotnet/): Let's make the hardest thing in programming easy for .NET software engineers. - [From Zero to Hero: Testing with xUnit in C#](https://dometrain.com/course/from-zero-to-hero-testing-with-xunit-in-csharp/): Learn how to test any codebase in .NET with the latest version of xUnit, the industry-standard testing library. - [Getting Started: AI Agents in C#](https://dometrain.com/course/getting-started-ai-agents-in-csharp/): Learn how to use AI Agents that can reason, use tools and take action to build products. - [Migrating: ASP.NET Web Forms and MVC to ASP.NET Core](https://dometrain.com/course/migrating-aspnet-web-forms-mvc-to-aspnet-core/): Migrating web apps from .NET Framework to ASP.NET Core has been painful, until now. - [From Zero to Hero: Bootstrap](https://dometrain.com/course/from-zero-to-hero-bootstrap/): Build beautiful web applications and UIs using the popular Bootstrap library. - [Getting Started: SQL Server](https://dometrain.com/course/getting-started-sql-server/): Get started with RDBMSs using Microsoft SQL Server. - [From Zero to Hero: Cloud Architecture in Azure](https://dometrain.com/course/from-zero-to-hero-cloud-architecture-in-azure/): Master Cloud Architecture in Microsoft's Azure cloud platform. - [From Zero to Hero: Source Generators in C#](https://dometrain.com/course/from-zero-to-hero-source-generators-in-csharp/): Master the art of writing code that writes code with source generators in C#. - [From Zero to Hero: Dapper in .NET](https://dometrain.com/course/from-zero-to-hero-dapper-in-dotnet/): Learn how to use Dapper, the most popular .NET ORM - [From Zero to Hero: REST APIs in .NET](https://dometrain.com/course/from-zero-to-hero-rest-apis-in-asp-net-core/): Learn how to create robust, scalable REST APIs in ASP.NET Core. This course covers essential principles, real-world techniques, and advanced features for modern API development. - [Deep Dive: Event Sourcing in .NET](https://dometrain.com/course/deep-dive-event-sourcing-in-dotnet/): Deep dive into production-ready Event Sourcing in .NET - [Deep Dive: TypeScript](https://dometrain.com/course/deep-dive-typescript/): Deep dive into advanced TypeScript features and master the language - [From Zero to Hero: Docker Compose](https://dometrain.com/course/from-zero-to-hero-docker-compose/): You know Docker, now it's time to master Docker Compose - [Career: Building a Personal Brand as Tech Professional](https://dometrain.com/course/career-building-a-personal-brand-as-tech-professional/): Learn how to build your personal brand as a tech professional - [Career: Mastering Communication & Collaboration for Software Engineers](https://dometrain.com/course/career-mastering-communication-collaboration-for-software-engineers/): Everything you need to master Communication and Collaboration as a Software Engineer - [Getting Started: Aspire](https://dometrain.com/course/getting-started-dotnet-aspire/): Get started with Aspire, the future of local development - [Let's Build It: Multi-Tenant SaaS App in TypeScript](https://dometrain.com/course/lets-build-it-multi-tenant-saas-app-in-typescript/): Learn how to build a full-stack production-ready multi-tenant Saas Application in TypeScript and React - [From Zero to Hero: Sending Email with .NET](https://dometrain.com/course/from-zero-to-hero-sending-email-with-dotnet/): Learn everything you need to know to send production-grade emails in .NET - [Deep Dive: Boosting Developer Productivity with AI](https://dometrain.com/course/deep-dive-boosting-developer-productivity-with-ai/): Deep dive into Artificial Intelligence to improve developer productivity - [From Zero to Hero: Writing Testable Code in C#](https://dometrain.com/course/from-zero-to-hero-writing-testable-code-in-csharp/): Learn how to write testable C# code using modern coding practices. - [From Zero to Hero: Authentication & Authorization in Blazor](https://dometrain.com/course/from-zero-to-hero-authentication-authorization-in-blazor/): Learn how to implement authentication and authorization in Blazor. - [Getting Started: TypeScript](https://dometrain.com/course/getting-started-typescript/): Get started with learning TypeScript. - [From Zero to Hero: Working with Null in C#](https://dometrain.com/course/from-zero-to-hero-working-with-null-in-csharp/): Learn how to properly use null in C# in a modern way and write better, robust code - [From Zero to Hero: Asynchronous Programming in C#](https://dometrain.com/course/from-zero-to-hero-asynchronous-programming-in-csharp/): Learn how to master asynchronous programming in C# - [Getting Started: C#](https://dometrain.com/course/getting-started-csharp/): Get started with C# programming in this comprehensive course, perfect for beginners or those transitioning from other languages. Learn key concepts like variables, loops, OOP, and debugging in C#. - [Deep Dive: C#](https://dometrain.com/course/deep-dive-csharp/): Dive deeper into C# with this advanced course, covering topics like OOP, multithreading, async programming, LINQ, and more. Perfect for those with C# basics looking to expand their expertise. - [Career: Career Management for Software Engineers](https://dometrain.com/course/career-management-for-software-engineers/): Learn how to take the future of your career into your own hands. - [Career: Building a Resume/CV & LinkedIn Profile](https://dometrain.com/course/career-building-a-resume-cv-linkedin-profile/): Learn how to build a CV/Resume and a LinkedIn Profile as a software engineer - [Deep Dive: Azure for Developers](https://dometrain.com/course/deep-dive-azure-for-developers/): Deep dive into Microsoft Azure as a Software Engineer - [From Zero to Hero: JetBrains Rider](https://dometrain.com/course/from-zero-to-hero-jetbrains-rider/): Learn how to use the JetBrains Rider IDE from beginning to mastery - [Getting Started: Azure for Developers](https://dometrain.com/course/getting-started-azure-for-developers/): Get started with Microsoft Azure as a Software Engineer - [Deep Dive: Blazor](https://dometrain.com/course/deep-dive-blazor/): Deep dive into Blazor, a modern web framework using HTML, CSS, and C#. This course teaches you how to build full-featured web apps with minimal JavaScript, leveraging your C# skills. - [From Zero to Hero: Event-Driven Architecture](https://dometrain.com/course/from-zero-to-hero-event-driven-architecture/): Learn everything you need to start using Event-Driven Architecture - [Getting Started: ASP.NET Core](https://dometrain.com/course/getting-started-asp-dotnet-core/): Learn how to get started with building web product with ASP.NET Core - [Getting Started: Event Sourcing in .NET](https://dometrain.com/course/getting-started-event-sourcing-in-dotnet/): Get started with Event Sourcing in .NET - [Let's Build It: URL Shortener in .NET](https://dometrain.com/course/lets-build-it-url-shortener-in-dotnet/): Learn how to build a production-ready URL Shortener in its entirety, including conception, development and deployment. - [From Zero to Hero: Deploying .NET Applications to Azure](https://dometrain.com/course/from-zero-to-hero-deploying-dotnet-apps-to-azure/): Learn how to deploy and host .NET applications to Azure. - [Getting Started: Messaging in .NET with MassTransit](https://dometrain.com/course/getting-started-messaging-in-net-with-masstransit/): Learn how to implement asynchronous messaging in .NET with MassTransit. This covers key concepts like queues, topics, message brokers, and patterns like Saga and Outbox, using real-world examples. - [Career: Getting Promoted as a Software Engineer](https://dometrain.com/course/career-getting-promoted-as-a-software-engineer/): Learn how to get promotions and scale the career ladder as a Software Engineer. - [Getting Started: Boosting Developer Productivity with AI](https://dometrain.com/course/getting-started-boosting-developer-productivity-with-ai/): Learn how to boost your productivity as a developer using AI tools like GitHub Copilot. This course covers prompt engineering, automating coding tasks, debugging, refactoring, and more! - [From Zero to Hero: Reflection in .NET](https://dometrain.com/course/from-zero-to-hero-reflection-in-dotnet/): Learn how to use Reflection in .NET with this course, covering everything from accessing type information to advanced techniques like invoking members, handling attributes, and working with generics. - [From Zero to Hero: Git](https://dometrain.com/course/from-zero-to-hero-git/): Learn Git from scratch with this comprehensive course, covering everything from basic version control concepts to advanced Git techniques. - [From Zero to Hero: GitHub Actions](https://dometrain.com/course/from-zero-to-hero-github-actions/): Learn GitHub Actions from scratch in this course, which covers everything from the basics to advanced CI/CD workflows. Automate your builds, tests, and deployments with GitHub Actions. - [From Zero to Hero: Vertical Slice Architecture](https://dometrain.com/course/from-zero-to-hero-vertical-slice-architecture/): Learn how to structure your applications using Vertical Slice Architecture. This course covers core principles, implementing slices, CQRS, domain events, and securing APIs. - [From Zero to Hero: OpenTelemetry in .NET](https://dometrain.com/course/from-zero-to-hero-open-telemetry-in-net/): Learn how to implement OpenTelemetry in .NET to capture and export metrics, traces, and logs. This course covers observability concepts, like instrumentation, logging, tracing, and monitoring. - [Getting Started: Blazor](https://dometrain.com/course/getting-started-blazor/): Learn the fundamentals of Blazor, a modern web framework using HTML, CSS, and C#. This course teaches you how to build full-featured web apps with minimal JavaScript, leveraging your C# skills. - [From Zero to Hero: From Microservices to Modular Monoliths](https://dometrain.com/course/from-zero-to-hero-microservices-to-modular-monoliths/): Learn how to move from microservices to modular monoliths, simplifying deployment and reducing complexity. This course teaches strategies for planning and migrating modular monolith architectures - [Getting Started: GraphQL in .NET](https://dometrain.com/course/getting-started-graphql-in-dotnet/): Learn GraphQL in .NET with this comprehensive course. Covering key concepts like query patterns, mutations and subscriptions, this course equips you to build efficient APIs with C#. - [Design Patterns in C#: Singleton](https://dometrain.com/course/design-patterns-singleton/): Learn everything about the Singleton Design Pattern in C#. This course explains its importance, benefits, and how to manage resources and maintain consistency in applications using the pattern. - [Design Patterns in C#: Abstract Factory](https://dometrain.com/course/design-patterns-in-csharp-abstract-factory/): Learn everything about the Abstract Factory Design Pattern in C#. - [Design Patterns in C#: Factory Method](https://dometrain.com/course/design-patterns-in-csharp-factory-method/): Learn everything about the Factory Method Design Pattern in C#. - [Design Patterns in C#: Builder](https://dometrain.com/course/design-patterns-in-csharp-builder/): Learn everything about the Builder Design Pattern in C#. - [Design Patterns in C#: Flyweight](https://dometrain.com/course/design-patterns-in-csharp-flyweight/): Learn everything about the Flyweight Design Pattern in C#. - [Design Patterns in C#: Prototype](https://dometrain.com/course/design-patterns-in-csharp-prototype/): Learn everything about the Prototype Design Pattern in C#. - [Design Patterns in C#: Adapter](https://dometrain.com/course/design-patterns-in-csharp-adapter/): Learn everything about the Adapter Design Pattern in C#. - [Design Patterns in C#: Bridge](https://dometrain.com/course/design-patterns-in-csharp-bridge/): Learn everything about the Bridge Design Pattern in C#. - [Design Patterns in C#: Composite](https://dometrain.com/course/design-patterns-in-csharp-composite/): Learn everything about the Composite Design Pattern in C#. - [Design Patterns in C#: Decorator](https://dometrain.com/course/design-patterns-in-csharp-decorator/): Learn everything about the Decorator Design Pattern in C#. - [Design Patterns in C#: Facade](https://dometrain.com/course/design-patterns-in-csharp-facade/): Learn everything about the Facade Design Pattern in C#. - [Design Patterns in C#: Proxy](https://dometrain.com/course/design-patterns-in-csharp-proxy/): Learn everything about the Proxy Design Pattern in C#. - [Design Patterns in C#: Mediator](https://dometrain.com/course/design-patterns-in-csharp-mediator/): Learn everything about the Mediator Design Pattern in C#. - [Design Patterns in C#: Strategy](https://dometrain.com/course/design-patterns-in-csharp-strategy/): Learn everything about the Strategy Design Pattern in C#. - [Design Patterns in C#: Chain of Responsibility](https://dometrain.com/course/design-patterns-in-csharp-chain-of-responsibility/): Learn everything about the Chain of Responsibility Design Pattern in C#. - [Design Patterns in C#: Command](https://dometrain.com/course/design-patterns-in-csharp-command/): Learn everything about the Command Design Pattern in C#. - [Design Patterns in C#: Interpreter](https://dometrain.com/course/design-patterns-in-csharp-interpreter/): Learn everything about the Interpreter Design Pattern in C#. - [Design Patterns in C#: Iterator](https://dometrain.com/course/design-patterns-in-csharp-iterator/): Learn everything about the Iterator Design Pattern in C#. - [Design Patterns in C#: Memento](https://dometrain.com/course/design-patterns-in-csharp-memento/): Learn everything about the Memento Design Pattern in C#. - [Design Patterns in C#: Observer](https://dometrain.com/course/design-patterns-in-csharp-observer/): Learn everything about the Observer Design Pattern in C#. - [Design Patterns in C#: State](https://dometrain.com/course/design-patterns-in-csharp-state/): Learn everything about the State Design Pattern in C#. - [Design Patterns in C#: Template Method](https://dometrain.com/course/design-patterns-in-csharp-template-method/): Learn everything about the Template Method Design Pattern in C#. - [Design Patterns in C#: Visitor](https://dometrain.com/course/design-patterns-in-csharp-visitor/): Learn everything about the Visitor Design Pattern in C#. - [Deep Dive: Microservices Architecture](https://dometrain.com/course/deep-dive-microservices-architecture/): Gain an in-depth understanding of microservices architecture, covering service discovery, communication patterns, event-driven design, and scaling. - [Deep Dive: Domain-Driven Design](https://dometrain.com/course/deep-dive-domain-driven-design-ddd/): Explore advanced Domain-Driven Design concepts like event storming, context mapping, and aggregate design. This course helps you master complex systems architecture for scalable applications. - [From Zero to Hero: LINQ in .NET](https://dometrain.com/course/from-zero-to-hero-linq-in-dotnet/): Learn everything about LINQ in .NET, from the basics to advanced techniques. This course covers efficient data querying, filtering, ordering and optimizing operations for high-performance applications - [Career: Nailing the Behavioral Interview](https://dometrain.com/course/career-nailing-the-behavioral-interview/): Master the behavioral interview process with insights from tech leaders at Microsoft and Yelp. This course covers interview prep, storytelling techniques, key competencies, and mock interviews. - [Getting Started: Domain-Driven Design](https://dometrain.com/course/getting-started-domain-driven-design-ddd/): Learn the fundamentals of Domain-Driven Design (DDD) with practical examples in this course. Explore complex domains, strategic patterns, and tactical design to create well-aligned systems! - [From Zero to Hero: Kubernetes for Developers](https://dometrain.com/course/from-zero-to-hero-kubernetes-for-developers/): Learn Kubernetes from scratch with this comprehensive course for developers. Covering everything from installation to advanced features, you'll gain the skills to manage containerized applications. - [Career: Soft Skills for Software Engineers](https://dometrain.com/course/career-soft-skills-for-software-engineers/): Learn all the essential soft skills required for software engineers - [From Zero to Hero: SOLID Principles for C# Developers](https://dometrain.com/course/from-zero-to-hero-solid-principles-for-csharp-developers/): Learn the SOLID principles in C# with practical examples. This course covers the five SOLID principles, along with other key software engineering concepts like DRY to improve your code quality. - [Deep Dive: Modular Monoliths in .NET](https://dometrain.com/course/deep-dive-modular-monoliths-in-dotnet/): Explore advanced techniques in Modular Monoliths with this in-depth course. Learn module communication patterns, event-driven design, and architectural upgrades, all applied to real-world projects. - [Getting Started: Clean Architecture in .NET](https://dometrain.com/course/getting-started-clean-architecture-in-dotnet/): Learn the principles of Clean Architecture in .NET with real-world examples. This course teaches you to build scalable, maintainable systems using proven architectural patterns. - [From Zero to Hero: Entity Framework Core in .NET](https://dometrain.com/course/from-zero-to-hero-entity-framework-core-in-dotnet/): Learn how to effectively use Entity Framework Core in .NET with this course. Covering everything from basic concepts to advanced techniques like migrations, testing, and performance tuning. - [Getting Started: Modular Monoliths in .NET](https://dometrain.com/course/getting-started-modular-monoliths-in-dotnet/): Learn how to structure your .NET applications with modular monoliths. This course covers designing modular systems that improve maintainability without the complexity of microservices. - [Getting Started: Microservices Architecture](https://dometrain.com/course/getting-started-microservices-architecture/): Learn the basics of microservices architecture in this course. Understand the key concepts, design patterns, and techniques for building scalable, modular systems. - [Deep Dive: Clean Architecture in .NET](https://dometrain.com/course/deep-dive-clean-architecture-in-dotnet/): Explore advanced practices of Clean Architecture in .NET. This course dives deep into events, validation, testing and consistency with real-world examples to build scalable, maintainable systems - [From Zero to Hero: Test-Driven Development in C#](https://dometrain.com/course/from-zero-to-hero-test-driven-development-tdd-csharp/): Learn Test-Driven Development (TDD) in C# from the ground up! This course covers everything from the basics to advanced TDD concepts, helping you write cleaner, more maintainable code. - [From Zero to Hero: Writing Clean Code with C#](https://dometrain.com/course/from-zero-to-hero-clean-code-with-csharp/): Learn how to write clean, maintainable C# code using modern Clean Code practices. This course covers essential principles like readability and simplicity for more efficient development. - [From Zero to Hero: Refactoring for C# Developers](https://dometrain.com/course/from-zero-to-hero-refactoring-for-csharp-developers/): Learn refactoring techniques in C# to improve code quality and maintainability. This course covers modern practices to optimize your codebase, with examples to enhance readability, and testability. - [Getting Started: Solution Architecture](https://dometrain.com/course/getting-started-solution-architecture/): Discover the fundamentals of solution architecture with this course! Learn key concepts, tools, and techniques to design scalable, efficient systems. - [From Zero to Hero: Docker for Developers](https://dometrain.com/course/from-zero-to-hero-docker-for-developers/): Learn Docker from scratch and incorporate it into your development workflow. This course covers everything from installation to creating and sharing Docker images, CI/CD, and more. - [Getting Started: .NET MAUI](https://dometrain.com/course/getting-started-dotnet-maui/): Get started with .NET MAUI to build cross-platform mobile and desktop apps using a single project. This course covers app logic, UI layout, and more to streamline modern app development. - [From Zero to Hero: Unit testing for C# Developers](https://dometrain.com/course/from-zero-to-hero-unit-testing-for-csharp-developers/): Learn modern unit testing in C# from scratch! This course by Nick Chapsas teaches you how to write reliable, maintainable unit tests, covering key concepts, techniques, and real-world applications. - [From Zero to Hero: Integration testing in ASP.NET Core](https://dometrain.com/course/from-zero-to-hero-integration-testing-in-asp-net-core/): Learn integration testing in ASP.NET Core with real-world examples. Ensure your services are reliable and behave as expected using modern techniques. - [From Zero to Hero: Dependency Injection in .NET with C#](https://dometrain.com/course/from-zero-to-hero-dependency-injection-in-dotnet-with-csharp/): Master Dependency Injection in .NET with this comprehensive course by Nick Chapsas. Learn how to build cleaner, more maintainable code, optimize testability, and tackle real-world projects. - [From Zero to Hero: gRPC in .NET](https://dometrain.com/course/from-zero-to-hero-grpc-in-dotnet/): Learn to build high-performance gRPC applications in .NET with this course. It covers everything from the basics to advanced concepts, using real-world examples. Ideal for developers working with APIs - [From Zero to Hero: Minimal APIs in .NET with C#](https://dometrain.com/course/from-zero-to-hero-minimal-apis-in-dotnet-with-csharp/): Learn how to build efficient, scalable applications with Minimal APIs in .NET. This course covers essential techniques for creating lightweight, high-performance web APIs. Perfect for .NET developers! - [From Zero to Hero: Logging in .NET](https://dometrain.com/course/from-zero-to-hero-logging-in-dotnet/): Learn essential logging techniques in .NET to ensure reliable applications. This course covers built-in logging, structured logging with Serilog, and advanced features for production-ready code. - [Getting Started: AWS Services for C# Developers](https://dometrain.com/course/getting-started-aws-services-for-csharp-developers/): Take your first step into the world of cloud computing. - [Deep Dive: .NET MAUI](https://dometrain.com/course/deep-dive-dotnet-maui/): This course offers an in-depth exploration of advanced techniques in .NET MAUI, covering topics like custom controls, memory management, async programming, and testing to build robust, scalable apps. - [From Zero to Hero: Configuration and Options in .NET](https://dometrain.com/course/from-zero-to-hero-configuration-and-options-in-dotnet/): Learn how to configure and manage settings in .NET applications with Configuration and Options. This course covers essential techniques for handling application settings, secure storage, and more. - [Hands-On: Learn PHP](https://dometrain.com/course/hands-on-learn-php/): Learn how to write PHP, from basic syntax and arrays to object-oriented programming and database access. - [Exam Prep: Azure Fundamentals (AZ-900)](https://dometrain.com/course/getting-started-azure-fundamentals-az-900/): Free course. Learn the fundamentals of Microsoft Azure to prepare for the AZ-900 exam, from cloud concepts and compute services to security and cost management. - [Hands-On: Learn Bash](https://dometrain.com/course/hands-on-learn-bash/): Learn how to use Bash, from working at the prompt to writing automation scripts. - [Exam Prep: Azure Administrator (AZ-104)](https://dometrain.com/course/exam-prep-azure-administrator-az-104/): You answer 490 graded AZ-104 questions across all five skill areas, each lesson teaching the facts its questions turn on first. - [Exam Prep: Azure Solutions Architect Expert (AZ-305)](https://dometrain.com/course/exam-prep-azure-solutions-architect-expert-az-305/): Requirement-driven AZ-305 design questions across all four skill areas, each lesson teaching the material before it grades you. - [Exam Prep: AWS Certified Cloud Practitioner (CLF-C02)](https://dometrain.com/course/exam-prep-aws-certified-cloud-practitioner-clf-c02/): Free course. Answer 385 CLF-C02 practice questions on cloud value, security, core AWS services, and billing, after short lessons that teach what each question set tests. - [Exam Prep: AWS Certified Solutions Architect Associate (SAA-C03)](https://dometrain.com/course/exam-prep-aws-certified-solutions-architect-associate-saa-c03/): Work through 469 SAA-C03 design questions on secure, resilient, high-performing, and cost-optimized AWS architectures, each question set preceded by the teaching it tests. - [Exam Prep: AWS Certified Solutions Architect Professional (SAP-C02)](https://dometrain.com/course/exam-prep-aws-certified-solutions-architect-professional-sap-c02/): Practice SAP-C02 architecture decisions across organizations, Regions, migrations, operations, and cost with scenario questions grounded in current AWS behavior. - [Hands-On: C++ for Beginners](https://dometrain.com/course/hands-on-cpp-for-beginners/): Learn the basics of C++, from variables and functions to classes, standard containers, and memory management. - [Exam Prep: Google Cloud Digital Leader (CDL)](https://dometrain.com/course/exam-prep-google-cloud-digital-leader-cdl/): Free course. Answer 344 Google Cloud Digital Leader practice questions on cloud value, data, AI, infrastructure, security, and operations, after short lessons that teach what each question set tests. - [Hands-On: Swift for Beginners](https://dometrain.com/course/hands-on-swift-for-beginners/): Learn how to write Swift, from basic variables and loops to structs, classes, and protocols. - [Exam Prep: Google Cloud Associate Cloud Engineer (ACE)](https://dometrain.com/course/exam-prep-google-cloud-associate-cloud-engineer-ace/): Answer 493 Associate Cloud Engineer practice questions on projects, IAM, compute, GKE, serverless, data, networking, and monitoring, after short lessons that teach what each set tests. - [Hands-On: F# for Beginners](https://dometrain.com/course/hands-on-fsharp-for-beginners/): Learn how to write F# code, from your first functions to using pipelines, pattern matching, and discriminated unions. - [Exam Prep: Google Cloud Professional Cloud Architect (PCA)](https://dometrain.com/course/exam-prep-google-cloud-professional-cloud-architect-pca/): Practice 515 Professional Cloud Architect exam questions that make you pick and defend Google Cloud designs, from security and networking to migration, reliability and the four case studies. - [Hands-On: Rust for Beginners](https://dometrain.com/course/hands-on-rust-for-beginners/): Free course. Learn Rust from zero by writing and running small graded programs in the browser: bindings, functions, control flow, ownership, borrowing, strings, and vectors. - [Hands-On: Rust for Intermediate Engineers](https://dometrain.com/course/rust-for-intermediate-engineers/): Learn how to use structs, enums, and pattern matching to manage state and handle errors in Rust. - [Hands-On: Rust for Advanced Engineers](https://dometrain.com/course/rust-for-advanced-engineers/): Learn how to write Rust, from borrowing and lifetimes to traits, shared ownership, and concurrency. - [Hands-On: PowerShell for beginners](https://dometrain.com/course/hands-on-powershell-for-beginners/): Free course. Learn how to get started with PowerShell, from variables and loops to working with objects, pipelines, and JSON. - [Hands-On: Intermediate PowerShell](https://dometrain.com/course/hands-on-intermediate-powershell/): Practice reusable PowerShell functions, record transformations, literal text parsing, CSV joins, and failure handling through sixteen interactive code exercises. - [Hands-On: Advanced PowerShell](https://dometrain.com/course/hands-on-advanced-powershell/): Build validated pipeline functions and local script modules that preview, reconcile, and repeat virtual file changes safely. ## Optional - [Blog](https://dometrain.com/blogs/): Articles by Dometrain authors. - [Blog feed](https://dometrain.com/blogfeed.xml): Atom feed of blog posts. - [Authors](https://dometrain.com/authors/): The engineers who create Dometrain courses. - [Reviews](https://dometrain.com/reviews/): What learners say about the courses. - [Customer stories](https://dometrain.com/customer-stories/): Stories from Dometrain customers. - [Changelog](https://dometrain.com/changelog/): What Dometrain has shipped, week by week. - [Affiliate program](https://dometrain.com/affiliates/): Commission for creators who refer learners. - [Contact](https://dometrain.com/contact/) - [Terms of service](https://dometrain.com/terms/) - [Privacy policy](https://dometrain.com/privacy/) - [Sitemap](https://dometrain.com/sitemap.xml): Every public URL.