learn in public

Insertion sort: 0 comparisons, 0 swaps

I'm Thomas Ngo, a software engineer in Stanton, California. I write down what I learn about algorithms, C# and .NET, and building real software, so I understand it better and you can learn it faster.

Articles explain a topic end to end. Problem of the Day posts are my daily algorithm practice, one LeetCode problem at a time.

1050 posts since 2023 624 Problem of the Day write-ups 309 tags

Latest articles

Guides and deep dives on .NET, architecture and the tools I use at work.

  1. AZ-900 Study Notes: IaaS vs. PaaS vs. SaaS, and When to Use Each

    7 min

    AZ-900 rarely asks “what does PaaS stand for?” It asks scenario questions: “A company wants to do X. Which service type should it use?” This post is about answering th...

  2. AZ-900 Study Notes: Cloud Service Types (IaaS, PaaS, SaaS)

    4 min

    Short, exam-focused notes on the three cloud service types: IaaS, PaaS, and SaaS. Read it once, then use the tables and the quiz at the end to review.

  3. AZ-900 Study Notes: Cloud Computing, Cloud Models, and Azure Stack

    17 min

    I’m preparing for AZ-900: Microsoft Azure Fundamentals, and these are my study notes for the first big topic on the exam: what cloud computing is, the different cloud ...

  4. How Claude Code Runs Your Tasks: Where the Model Thinks and Where the Code Runs

    11 min
  5. GitHub Actions for Beginners: Your First Workflow, Step by Step

    15 min

    This is a beginner tutorial for GitHub Actions. We start from zero and build a small workflow that tests a .NET project every time you push code. I use short sentences...

  6. Building a CI/CD Pipeline with GitHub Actions: A Step-by-Step Guide from My PersonalFinance Project (.NET 10 + Azure)

    21 min

    I recently set up a full CI/CD pipeline for my PersonalFinance project with help from Claude Code. It works well, but a pipeline you can’t explain is a pipeline you ca...

See every post in the Journal

Problem of the Day

Daily algorithm practice, one LeetCode problem at a time, with the approach and complexity.

  1. Copy List with Random Pointer in C#
  2. Remove N-th Node From End of List in C#
  3. LeetCode: Reorder List in C#
  4. Median of Two Sorted Arrays in C#
  5. Linked List Cycle Detection in C#
  6. Merging Two Sorted Lists in C#
  7. Reverse Linked List in C#
  8. Time Based Key-Value Store in C#
  9. Search in Rotated Sorted Array in C#
  10. Find Minimum in Rotated Sorted Array in C#
See all 624 problems

Topics

The tags I write about most, with how many posts each has.

Browse all tags

About

Who's writing this.

I'm Thomas Ngo, a software engineer in Stanton, California. I build reliable, maintainable software and write down what I learn along the way.