Mert Özen Further With Every Line

Guide: how to read mertozen.com from start to finish

The series on this site are read stage by stage, from the basics to advanced topics, around a single sample application called Bookstore. This page shows where to start, which series to read after which, and where to find each series' code on GitHub.

If your goal is clear, pick one of the paths below; the map then highlights only that path's series. If you are not sure, start with Stage 0 and follow the order. Skipping is fine: each series card lists the series worth reading first.

categories
13
series
167
posts
1990
sample app
1

What is Bookstore?

Bookstore is an online bookstore. Every series on the site covers a different side of this one product: the data model, the API, the Angular UI, security, deployment and the team's process. What you learn in one series builds on the same application in the next.

  • Product: book sales to individual customers (catalog, search, cart, orders, payment, shipping, returns, campaigns), Institutional Orders for schools, libraries and companies, and a back office for stock, purchasing and reports.
  • Modules: Catalog, Ordering, Inventory, Payments, Shipping, Notifications, Institutional, Identity.
  • Tech: Bookstore.Api (ASP.NET Core Web API) with .NET 10 and C#, SQL Server through EF Core, and bookstore-web with Angular 22.
  • Team: the process series follow the same team: Selin (Product Owner), Emre and Ayşe (developers), Hakan (institutional sales), Gül (customer service) and the institutional customer Nevin Hanım.
Read the Bookstore series →

Where is the code? GitHub guide

All the code lives in a single GitHub repository. The layout is simple: one branch per series, one tag per post.

  • Branch: series/<series-slug>. Example: series/docker, the final state of the Docker series.
  • Tag: <series-slug>/NN. Example: docker/05, the code as it was at the end of post 05 of the Docker series.
  • Reference application: the main branch.
git clone https://github.com/mrtozn1923/bookstore.git
cd bookstore
git switch series/docker        # final state of the series
git switch --detach docker/05   # code of post 05

Concept-heavy series (process, architecture concepts and the like) have no separate code; on the map the GitHub link appears only for series that have a branch.

Open the repository on GitHub

Where should I start?

Pick the path that fits your goal; the map highlights only that path's series.

Map: the reading order stage by stage

Read the stages top to bottom. At stage 4 the map splits into three independent branches.

  1. 0

    Getting Started: Your Setup and Bookstore

    Set up the environment you will run code in and get to know the sample app Bookstore and computer basics.

    6 series · 65 posts

    1. 0.1
      Bookstore: The Site's Example Application
      Software Architecture 3 posts Beginner
      01
    2. 0.2
      How Computers Work
      Computer Science Fundamentals 6 posts Beginner
      01
    3. 0.3
      Number Systems and Data Representation
      Computer Science Fundamentals 6 posts Beginner
      01
    4. 0.4
      Terminal and Command Line
      Developer Tools 6 posts Beginner
    5. 0.5
      IDEs
      Developer Tools 10 posts Beginner
      01
    6. 0.6
      Git & GitHub
      DevOps 34 posts Beginner

      First: Terminal and Command Line

  2. 1

    Web and Language Basics

    Learn how the web works, HTML/CSS and the two main languages (JavaScript, C#) and SQL from the basics.

    6 series · 103 posts

    1. 1.1
      How Networking and HTTP Work
      Computer Science Fundamentals 10 posts Beginner
      01
    2. 1.2
      HTML5 and Semantic HTML
      Frontend 13 posts Beginner
    3. 1.3
    4. 1.4
      JavaScript Basics
      Frontend 19 posts Beginner
    5. 1.5
      C# Fundamentals
      Backend 20 posts Beginner
      01
    6. 1.6
      SQL Fundamentals
      Database 25 posts Beginner
  3. 2

    Going Deeper into the Languages

    Take the languages deep enough for real work: OOP, collections, LINQ, async, TypeScript, clean code and debugging.

    11 series · 145 posts

    1. 2.1
      JavaScript Intermediate
      Frontend 19 posts Beginner

      First: JavaScript Basics

    2. 2.2
      TypeScript Basics
      Frontend 14 posts Beginner

      First: JavaScript Basics

    3. 2.3
      Object-Oriented Programming in C#
      Backend 16 posts Beginner

      First: C# Fundamentals

      01
    4. 2.5
      LINQ
      Backend 17 posts Beginner

      First: C# Collections and Generics

      01
    5. 2.6
      Asynchronous Programming in C#
      Backend 17 posts Beginner

      First: C# Fundamentals

      01
    6. 2.7
      Clean Code
      Software Design 14 posts Beginner

      First: C# Fundamentals

      01
    7. 2.8
      Debugging and Problem Solving
      Developer Tools 13 posts Beginner
      01
    8. 2.9
      Browser DevTools
      Developer Tools 10 posts Beginner
      01
    9. 2.10
      Regular Expressions
      Developer Tools 8 posts Beginner

      First: Terminal and Command Line, IDEs

    10. 2.11
      JSON, YAML and Configuration Formats
      Developer Tools 6 posts Beginner

      First: Terminal and Command Line

  4. 3

    First Application: API + Data + UI

    Build the first version of Bookstore: a REST API, data with EF Core, an Angular UI and the first unit tests.

    10 series · 200 posts

    1. 3.1
      REST API Design
      Software Architecture 10 posts Intermediate
    2. 3.2
      .NET Core Web API
      Backend 43 posts Intermediate

      First: Asynchronous Programming in C#, REST API Design

    3. 3.3
      Entity Framework Core
      Database 33 posts Intermediate

      First: .NET Core Web API, SQL Fundamentals

    4. 3.4
      Data Modeling and Normalization
      Database 12 posts Intermediate

      First: SQL Fundamentals

      01
    5. 3.5
      TypeScript Intermediate
      Frontend 14 posts Intermediate

      First: TypeScript Basics

    6. 3.6
      Angular
      Frontend 35 posts Intermediate

      First: TypeScript Intermediate, HTML5 and Semantic HTML

    7. 3.8
      Unit Testing
      Testing & Quality 21 posts Intermediate

      First: C# Fundamentals

    8. 3.9
      API Tools
      Developer Tools 7 posts Intermediate

      First: .NET Core Web API, Browser DevTools, IDEs

    9. 3.10
      SOLID and Design Principles
      Software Design 12 posts Intermediate

      First: Object-Oriented Programming in C#

      01
  5. 4a

    Branch: Growing the Backend

    Grow the backend: authentication, logging, caching, background jobs, real-time and external services.

    12 series · 141 posts

    1. 4a.1
      ASP.NET Core MVC and Razor Pages
      Backend 15 posts Intermediate
    2. 4a.2
      Authentication and Authorization
      Security 18 posts Intermediate

      First: .NET Core Web API

      01
    3. 4a.3
      Logging in .NET
      Backend 10 posts Intermediate
      01
    4. 4a.4
      Caching
      Backend 10 posts Intermediate
      01
    5. 4a.5
      Background Jobs and Scheduled Jobs
      Backend 11 posts Intermediate
      01
    6. 4a.6
      Real-time Applications
      Backend 9 posts Intermediate
      01
    7. 4a.7
      I/O in .NET
      Backend 11 posts Intermediate

      First: .NET Core Web API, C# Fundamentals, LINQ

    8. 4a.9
      gRPC and GraphQL
      Backend 12 posts Intermediate

      First: .NET Core Web API, Angular

      01
    9. 4a.10
      Dapper
      Database 16 posts Intermediate

      First: SQL Fundamentals

      01
    10. 4a.11
    11. 4a.12
    4b

    Branch: Growing the Frontend

    Grow the UI: modern CSS, state management, a component library, accessibility, PWA and frontend tests.

    11 series · 108 posts

    1. 4b.1
      CSS Properties: A Hands-On Guide
      Frontend 13 posts Intermediate
    2. 4b.2
      Sass/SCSS
      Frontend 12 posts Intermediate

      First: Angular

    3. 4b.3
      Tailwind CSS
      Frontend 8 posts Intermediate

      First: Angular

    4. 4b.4
      UI/UX Design Principles
      Frontend 11 posts Intermediate

      First: HTML5 and Semantic HTML

    5. 4b.5
    6. 4b.6
      Angular Material and the CDK
      Frontend 8 posts Intermediate

      First: Sass/SCSS, Angular

    7. 4b.8
      Browser APIs and PWA
      Frontend 11 posts Intermediate

      First: Browser DevTools, JavaScript Intermediate, Angular

    8. 4b.9
      Frontend Testing
      Testing & Quality 9 posts Intermediate

      First: Browser DevTools, Unit Testing, Angular

    9. 4b.11
      Build Tools
      Frontend 8 posts Intermediate

      First: Browser DevTools, JavaScript Intermediate, Angular

    4c

    Branch: Growing the Data Layer

    Grow the data layer: SQL Server in depth, PostgreSQL, Redis, MongoDB, search and performance.

    6 series · 101 posts

    1. 4c.1
      SQL Server in Depth
      Database 24 posts Intermediate

      First: SQL Fundamentals

    2. 4c.2
      PostgreSQL
      Database 24 posts Intermediate

      First: SQL Server in Depth, SQL Fundamentals, Dapper

    3. 4c.3
      Redis
      Database 15 posts Intermediate

      First: Real-time Applications, .NET Core Web API, Caching

    4. 4c.4
      MongoDB
      Database 15 posts Intermediate

      First: SQL Fundamentals, Caching

    5. 4c.5
      Search with Elasticsearch
      Database 13 posts Intermediate

      First: .NET Core Web API, SQL Fundamentals

    6. 4c.6
      Database Performance and Scaling
      Database 10 posts Intermediate

      First: SQL Server in Depth, Dapper

  6. 5

    Quality and Design

    Learn to change code safely: test strategy, TDD, code review, refactoring and design patterns.

    12 series · 139 posts

    1. 5.1
      Test Strategy
      Testing & Quality 4 posts Intermediate
      01
    2. 5.2
      TDD
      Testing & Quality 7 posts Intermediate

      First: Debugging and Problem Solving, .NET Core Web API, Test Strategy, Clean Code

      01
    3. 5.3
      Test Design Techniques
      Testing & Quality 8 posts Intermediate

      First: Test Strategy, Unit Testing, TDD

    4. 5.4
      Integration and E2E Testing
      Testing & Quality 13 posts Intermediate

      First: .NET Core Web API, Unit Testing

    5. 5.5
      Code Review
      Testing & Quality 5 posts Intermediate

      First: Git & GitHub, Clean Code

    6. 5.6
      Static Analysis
      Testing & Quality 6 posts Intermediate

      First: Debugging and Problem Solving, Test Strategy, Angular, IDEs

    7. 5.7
      Refactoring
      Software Design 16 posts Intermediate

      First: SOLID and Design Principles, Test Strategy, Git & GitHub, Clean Code

    8. 5.8
      Design Patterns
      Software Design 26 posts Intermediate

      First: SOLID and Design Principles

      01
    9. 5.9
      Solution Patterns
      Software Design 22 posts Intermediate
    10. 5.10
      Functional Programming Concepts
      Software Design 9 posts Intermediate

      First: Design Patterns, Clean Code, Unit Testing, LINQ

    11. 5.11
      UML and Modeling
      Software Design 18 posts Intermediate
    12. 5.12
      Coding Conventions and Team Standards
      Software Design 5 posts Intermediate

      First: Git & GitHub, Clean Code, Angular, IDEs

      01
  7. 6

    Delivery: Containers, CI/CD and Cloud

    Take the app to production: Linux, Docker, CI/CD, cloud, Kubernetes, observability and operations.

    22 series · 238 posts

    1. 6.5
      Docker Compose
      DevOps 7 posts Intermediate

      First: .NET Core Web API, Logging in .NET, Caching, Docker

    2. 6.6
      CI/CD Fundamentals
      DevOps 8 posts Intermediate
      01
    3. 6.7
      GitHub Actions
      DevOps 17 posts Intermediate
    4. 6.8
    5. 6.9
      Jenkins
      DevOps 12 posts Intermediate
      01
    6. 6.10
      Web Servers and Hosting
      DevOps 12 posts Intermediate
      01
    7. 6.11
      Domain, DNS and CDN
      DevOps 7 posts Intermediate

      First: Web Servers and Hosting

    8. 6.12
      SSL/TLS Certificates and HTTPS
      DevOps 8 posts Intermediate

      First: Web Servers and Hosting

      01
    9. 6.15
      Deployment Strategies
      DevOps 9 posts Intermediate
      01
    10. 6.18
      Kubernetes
      DevOps 22 posts Intermediate

      First: Docker

    11. 6.19
      Helm
      DevOps 7 posts Intermediate

      First: GitHub Actions, Git & GitHub, Kubernetes, Docker

  8. 7

    Security

    Protect Bookstore against attacks: OWASP, ASP.NET Core and API security, cryptography, privacy law and DevSecOps.

    8 series · 81 posts

    1. 7.1
      Web Security (OWASP Top 10)
      Security 21 posts Intermediate

      First: How Networking and HTTP Work

      01
    2. 7.2
      ASP.NET Core Security
      Security 9 posts Intermediate
    3. 7.3
      Frontend Security
      Security 9 posts Intermediate
      01
    4. 7.4
      API Security (OWASP API Top 10)
      Security 11 posts Intermediate
      01
  9. 8

    Architecture

    Design the growing system: layered architectures, DDD, modular monoliths, messaging, microservices and system design.

    16 series · 166 posts

    1. 8.1
      Introduction to Software Architecture
      Software Architecture 9 posts Advanced
      01
    2. 8.2
      Clean, Onion and Hexagonal Architecture
      Software Architecture 9 posts Advanced
      01
    3. 8.3
      Vertical Slice Architecture
      Software Architecture 6 posts Advanced
      01
    4. 8.4
      Domain-Driven Design
      Software Architecture 14 posts Advanced

      First: Clean, Onion and Hexagonal Architecture

      01
    5. 8.5
      Modular Monolith
      Software Architecture 8 posts Advanced
      01
    6. 8.6
      Messaging and Event-Driven Architecture
      Software Architecture 11 posts Advanced
      01
    7. 8.7
      Working with Message Queues
      Backend 14 posts Advanced
      01
    8. 8.8
      CQRS and Event Sourcing
      Software Architecture 10 posts Advanced

      First: Domain-Driven Design

      01
    9. 8.9
      Microservices
      Software Architecture 12 posts Advanced

      First: Modular Monolith, Messaging and Event-Driven Architecture

      01
    10. 8.13
      Distributed Systems Fundamentals
      Software Architecture 11 posts Advanced
      01
    11. 8.14
      System Design
      Software Architecture 15 posts Advanced
      01
    12. 8.15
      Architecture Decisions
      Software Architecture 7 posts Advanced
      01
    13. 8.16
      UI Architecture Patterns
      Software Architecture 9 posts Advanced
      01
  10. 9

    Advanced Topics and Computer Science

    Look under the hood: advanced C#, .NET tooling, profiling, algorithms, operating systems and concurrency.

    12 series · 133 posts

    1. 9.1
      Advanced C#
      Backend 14 posts Advanced

      First: Asynchronous Programming in C#, LINQ

      01
    2. 9.2
      C# Versions
      Backend 7 posts Advanced

      First: C# Fundamentals

      01
    3. 9.6
      JavaScript Advanced
      Frontend 17 posts Advanced

      First: JavaScript Intermediate

    4. 9.7
      TypeScript Advanced
      Frontend 12 posts Advanced

      First: TypeScript Intermediate

    5. 9.8
      Algorithms and Data Structures
      Computer Science Fundamentals 27 posts Advanced
    6. 9.9
      Big-O and Complexity
      Computer Science Fundamentals 5 posts Advanced
      01
    7. 9.10
      Operating System Fundamentals
      Computer Science Fundamentals 9 posts Advanced

      First: Kubernetes

    8. 9.11
      Concurrency Theory
      Computer Science Fundamentals 8 posts Advanced
    9. 9.12
      Compilers and Programming Languages
      Computer Science Fundamentals 8 posts Advanced
  11. 10

    Building with AI

    Use AI both as a tool and in the product: assistants, coding agents, LLM APIs, RAG and agents.

    15 series · 168 posts

    1. 10.1
      LLM Fundamentals
      Artificial Intelligence 20 posts Intermediate
      01
    2. 10.2
      Prompt Engineering in Practice
      Artificial Intelligence 9 posts Intermediate

      First: LLM Fundamentals

    3. 10.3
      AI-Assisted Development
      Artificial Intelligence 6 posts Intermediate

      First: LLM Fundamentals, Git & GitHub, Code Review, IDEs

    4. 10.4
      GitHub Copilot
      Artificial Intelligence 10 posts Intermediate

      First: AI-Assisted Development, GitHub Actions, Git & GitHub, Code Review

    5. 10.5
      Working with Claude
      Artificial Intelligence 11 posts Intermediate

      First: AI-Assisted Development, Browser DevTools, LLM Fundamentals

      01
    6. 10.6
      Working with ChatGPT
      Artificial Intelligence 11 posts Intermediate

      First: Working with Claude, LLM Fundamentals

      01
    7. 10.7
      Claude Code
      Artificial Intelligence 13 posts Intermediate

      First: Terminal and Command Line, AI-Assisted Development, CI/CD Fundamentals, GitHub Actions

    8. 10.8
      OpenAI Codex
      Artificial Intelligence 7 posts Intermediate

      First: AI-Assisted Development, Working with ChatGPT, CI/CD Fundamentals, GitHub Actions

    9. 10.9
      AI with .NET
      Artificial Intelligence 14 posts Intermediate
      01
    10. 10.10
      Building Applications with the Claude API
      Artificial Intelligence 11 posts Intermediate

      First: .NET Core Web API, AI with .NET, LLM Fundamentals

    11. 10.11
      RAG
      Artificial Intelligence 13 posts Intermediate

      First: AI with .NET

      01
    12. 10.12
      AI Agents and MCP
      Artificial Intelligence 14 posts Intermediate

      First: RAG

      01
    13. 10.14
      LLM Application Security
      Artificial Intelligence 9 posts Intermediate

      First: AI Agents and MCP, AI with .NET, Frontend Security, Logging in .NET

      01
    14. 10.15
      Introduction to Machine Learning
      Artificial Intelligence 11 posts Intermediate

      First: .NET Core Web API, AI with .NET, LLM Fundamentals, LINQ

Side paths

Independent of the main chain; read them whenever you like.

Y1

Side path: Team and Process

The process side of building software in a team: SDLC, Agile, Scrum, Kanban, requirements and estimation.

8 series · 57 posts

  1. Y1.1
    SDLC (Software Development Life Cycle)
    Project Management 6 posts Beginner
    01
  2. Y1.2
    Agile Mindset
    Project Management 6 posts Beginner

    First: SDLC (Software Development Life Cycle)

    01
  3. Y1.3
    Scrum
    Project Management 11 posts Beginner

    First: Agile Mindset

    01
  4. Y1.4
    Kanban
    Project Management 7 posts Beginner

    First: Agile Mindset

    01
  5. Y1.5
    Introduction to Product Management
    Project Management 9 posts Beginner
    01
Y2

Side path: SEO and GEO

Getting a site found in search and AI answer engines: technical SEO, structured data, content and measurement.

6 series · 53 posts

  1. Y2.1
    SEO Fundamentals
    SEO & GEO 7 posts Beginner
    01
  2. Y2.2
    Technical SEO
    SEO & GEO 16 posts Beginner

    First: SEO Fundamentals

  3. Y2.5
    GEO (Generative Engine Optimization)
    SEO & GEO 7 posts Beginner

    First: SEO Fundamentals

    01
Y3

Side path: Other Platforms

The same ideas on other platforms: Node.js, Go, React, Blazor and Flutter.

5 series · 87 posts

By category

Frequently asked questions

I know nothing yet. Where do I start?

Start with Stage 0: set up your environment, get to know Bookstore and learn Git. Then follow the stages in order. Each stage starts with a note on why it is there.

Can I skip ahead?

Yes. The series are written to be readable on their own. Each series card lists the series worth reading first as prerequisites; if you already know them, go straight on.

Should I read the backend or the frontend branch first?

After Stage 3 the map splits into three branches: backend, frontend and data. They are independent; pick one for your goal or move through them in parallel. The full-stack path includes both.

How do I run Bookstore on my machine?

Clone the repository and switch to the tag of the post you are reading (for example git switch --detach docker/05). The setup is described in the first post of each series and in the repository README.

Why is each post's code in a separate tag?

So you see the code exactly as it was while reading the post. Later posts' changes don't get mixed in, and comparing two tags shows what a post changed.

When should I read the AI series?

To use AI tools (Claude, ChatGPT, Copilot) you can start right after Stage 0. To add an LLM to your own application (Claude API, RAG, agents), knowing the API series in Stage 3 first makes it easier.