Back to blog

Bookmarks Review vol. 1

Bookmarks Review

I've been collecting programming bookmarks for years. Some are tools I use daily, others are articles I found insightful and saved "for later." This is the first post in a series where I go through my bookmarks folder and share the ones worth your time.

Here are five articles from my "Programming" folder that I think every developer should read.

Trunk Based Development

If you've ever worked on a team struggling with merge conflicts, long-lived branches, or release coordination nightmares, this site is for you. Trunk Based Development is the branching strategy used by companies like Google, Meta, and Microsoft—teams that ship code thousands of times per day.

The core idea is simple: everyone commits to a single branch (trunk/main) frequently, and feature flags replace feature branches. The site goes deep into why this works, how to handle releases, and common objections teams have when adopting this approach.

Read article

Why billing systems are a nightmare for engineers

Building a SaaS product? Don't underestimate the billing system. This article from Lago explains why billing is one of the most complex parts of any software business—and why so many teams end up rebuilding it multiple times.

It covers proration, usage-based pricing, invoice generation, payment retries, dunning, and all the edge cases that seem simple until you actually implement them. Even if you're using Stripe or a similar service, understanding these concepts helps you make better architecture decisions.

Read article

Richardson Maturity Model

Martin Fowler's article from 2010 remains the definitive explanation of REST API levels. It breaks down what makes an API "RESTful" into four levels: Level 0 (plain HTTP), Level 1 (resources), Level 2 (HTTP verbs), and Level 3 (hypermedia controls/HATEOAS).

Most APIs claim to be RESTful but stop at Level 2. This article helps you understand what each level means, why Level 3 matters for evolvability, and when it's okay to stop at Level 2. Essential reading before designing any API.

Read article

HTTP/3: From root to tip

Cloudflare's deep dive into HTTP/3 explains not just what changed from HTTP/2, but why. It starts from TCP's limitations, explains how QUIC solves head-of-line blocking, and shows the evolution from HTTP/1.0 through HTTP/3.

The article is technical but approachable. You'll understand why HTTP/3 uses UDP, how connection migration works for mobile users, and why this matters for web performance. Great for anyone building latency-sensitive applications.

Read article

You're (probably still) using HttpClient wrong

This one is .NET-specific, but the lessons apply broadly. It explains why creating new HttpClient instances for each request causes socket exhaustion—a bug that's hard to catch in development but brings down production systems.

The article covers IHttpClientFactory, connection pooling, DNS refresh issues, and the correct patterns for using HttpClient in modern .NET applications. If you write C# code that makes HTTP calls, read this.

Read article

That's it for volume one. I have hundreds more bookmarks to go through—expect more of these posts in the future.

Patryk Domasik

Patryk Domasik

Software engineer building web products with React, .NET, and Azure.