Pull to refresh

All streams

Show first
Rating limit
Level of difficulty

Whose feature is better, or how to compare the efficiency of SQL query plans

Level of difficultyMedium
Reading time5 min
Reach and readers1.5K

How to compare the efficiency of SQL query plans? “Measure the execution time, of course!” — an experienced reader would say. And they would be absolutely right: from a practical perspective, the more efficient DBMS is the one that delivers higher TPS. However, sometimes we need to design a system that doesn't exist yet or predict behavior under loads that haven't occurred yet. In such cases, we need a characteristic that allows us to perform a qualitative analysis of a plan or compare two plans. This post is dedicated to one such characteristic — the number of data pages read.

Read more

The Billiard Fractals

Level of difficultyHard
Reading time21 min
Reach and readers3K


Complex systems often appear chaotic or incomprehensible, yet closer examination reveals that such complexity can frequently be reduced to a simple underlying mechanism. By systematically removing layers of emergent behavior, one can uncover a fundamental rule or equation from which the entire system originates.

Read more →

Coloring a T-SQL Procedure Listing with Metric Values

Level of difficultyMedium
Reading time3 min
Reach and readers2K

We append the following metrics to the T-SQL procedure statements: execution count (x), CPU time in milliseconds (c), duration in microseconds (d), number of reads (r), number of writes (w), and @@rowcount value (n). You can display these as absolute values or percentages.

Read more

SQL Server vs. PostgreSQL query optimization: room for improvement?

Level of difficultyMedium
Reading time15 min
Reach and readers2.1K

For years, we’ve studied Oracle to make PostgreSQL a more migration-friendly option. We introduced tools similar to SQL profile and SQL plan baseline as AQO and sr_plan extensions. In some cases, PostgreSQL even outperforms Oracle, especially in automatic re-optimization.

Migrations from Oracle to PostgreSQL are usually smooth performance-wise, and we’ve even developed session variable extensions to make the transition easier. While many enterprise-only features exist, PostgreSQL often integrates popular solutions directly into the core.

Read more

Neat defer macro for C++17

Level of difficultyMedium
Reading time5 min
Reach and readers2.9K

Manual resource management in low level C-style C++ code might be annoying. It's not practical to create good enough RAII wrappers for every single C API you use, but approaches with goto cleanup or loads of nested if (success) hurt readability.

A defer macro to the rescue! The deferred lambda will be executed on scope exit, no matter how it happens: you can return from any point, throw an exception (if allowed), or even use a goto to an outer scope. It is truly zero-cost and doesn't rely on C runtime or standard library, so it can be used even in kernel development.

Read more

Google Jules: An Asynchronous Coding Agent Explained

Level of difficultyEasy
Reading time3 min
Reach and readers4K

In this tutorial, I’ll walk you through everything I’ve learned about using Google Jules — an asynchronous coding agent. I’ve kept the explanations clear and simple, so whether you're an experienced developer or a beginner, you’ll be able to follow along. By the end, you should feel confident working with Jules: assigning tasks, reviewing its output, and making the most of its capabilities. Ready? Let’s dive in. ;)

Read more

Postgres Pro OpenTelemetry сollector

Level of difficultyMedium
Reading time4 min
Reach and readers2.1K

Hi everyone, I’m Alexey. I’m a big fan of observability, and in this post, I want to share something I’ve been working on — the pgpro-otel-collector.

TL;DRpgpro-otel-collector is an OpenTelemetry collector (aka monitoring agent) tailored for gathering Postgres metrics and logs — brought to you by PostgresPro.

Read more

Millau — ingress-proxy with self-configuration for Docker Swarm

Level of difficultyEasy
Reading time5 min
Reach and readers2K

Ashamed to admit, I still use Swarm in 2025. It's easy to explain, quick to set up, and simple to use. It's a starting point in the world of containers when full-blown Kubernetes is overkill. But Docker's evolution hasn't been the most straightforward. Over time, it began to lack a minimal dynamic proxy for Swarm - one that you run once, which configures traffic routing to microservices automatically - and forget about it. That's how Millau was born - an ingress-proxy and load balancer based on labels. It currently powers its own website and a few other projects.

Read more

Designing profitable software: architecture principles for business success

Level of difficultyMedium
Reading time5 min
Reach and readers3.6K

This article presents a business-driven approach to software architecture, focusing on maximizing profitability through technical decisions. It advocates for:

Distributed, stateless services with immutable models for scalability

Isolated third-party integrations without disrupting core logic

Simple, modular design 

Best for:

✔ Tech leads designing scalable systems
✔ Managers optimizing dev efficiency
✔ Stakeholders evaluating ROI on architecture

Read more

cgroups: how to eliminate the “noisy neighbor” effect in PostgreSQL

Level of difficultyMedium
Reading time6 min
Reach and readers1.9K

If you've ever run multiple instances of PostgreSQL or other software on a single machine (whether virtual or physical), you've probably encountered the "noisy neighbor" effect — when instances disrupted each other. So, how do you make them get along? We’ve got the answer!

Read more

ShopCTL: A Developer-First Toolkit for Shopify Automation

Level of difficultyMedium
Reading time5 min
Reach and readers2.1K

Learning Shopify has been on my bucket list for a few years now. Plenty of people in my circle — friends, colleagues, and fellow devs — are all somehow involved with Shopify in one way or the other. Earlier this year, I finally had some breathing room between projects, so I figured it was the perfect time to give Shopify a proper look.

I started exploring the platform by setting up a dev store, poking around the admin, and skimming through the API manual. While this was a quick and easy start, it didn’t give me a deeper understanding of the platform. Plus, clicking my way through the UI felt repetitive and tedious.

That got me thinking: is there a more efficient, developer-centric way to manage a store? Something that I could run in a terminal, plug into a CI/CD pipeline, or script my way out of those mundane tasks.

Learn more

Windsurf AI: The Best AI IDE for Developers?

Level of difficultyEasy
Reading time5 min
Reach and readers4.4K

I recently got my hands on Windsurf AI, and I wanted to share my experience with this AI-first Integrated Development Environment (IDE). If you’re a developer like me, always on the lookout for tools to boost productivity, this might be on your radar. So, is Windsurf AI the real deal? Let’s find out.

Read more

How to Run Telegram Ads in 2025: Secrets to High-Converting Telegram Ads

Level of difficultyMedium
Reading time9 min
Reach and readers8.6K

In this post, I’ll show you EXACTLY how to run Telegram ads in 2025.

In fact, this is the exact process I use to grow my Telegram channels and get quality subscribers for just 0.01 TON ($0.03 as of May 15, 2025).

Read more

DASTing SAML: Breaking Trust, One Assertion at a Time

Level of difficultyHard
Reading time14 min
Reach and readers2.9K

My name is Ilya and I’m a Core Developer at Bright Security. In Bright we work on a DAST (Dynamic Application Security Testing) solution that helps development teams find and fix vulnerabilities early, straight from CI/CD. My own path began in full-stack engineering, but almost a decade of shipping production code drew me ever deeper into application security. In this article I’m explaining key approaches on what SAML actually is and how we detect it in Bright using DAST.

Read more

What's New in the Angie 1.9 Web Server (an nginx fork) and What to Expect from 1.10?

Level of difficultyEasy
Reading time8 min
Reach and readers3.3K

You may have already read in the news that on the eve of Cosmonautics Day, a new stable release of Angie 1.9.0 was released, an nginx fork that continues to be developed by the team of former nginx developers. Approximately every quarter, we try to release new stable versions and delight users with numerous improvements. This release is no exception, but it's one thing to read a dry changelog and quite another to get to know the functionality in more detail, to learn how and in which cases it can be applied.

The list of innovations that we will discuss in more detail:

— Saving shared memory zones with cache index to disk;
— Persistent switching to a backup group of proxied servers;
— 0-RTT in the stream module;
— New busy status for proxied servers in the built-in statistics API;
— Improvements to the ACME module, which allows automatic obtaining of Let's Encrypt TLS certificates and others;
— Caching TLS certificates when using variables.

Read more

How to catch and optimize problematic queries in PostgreSQL

Level of difficultyMedium
Reading time8 min
Reach and readers2.8K

If you work with PostgreSQL, you've likely run into performance issues at some point — especially as your database grows. Things may have been running smoothly at first, but as your client database expanded, queries started slowing down. Sound familiar? Here's a guide to help you identify and fix problematic queries, so you can get your PostgreSQL database running at peak performance again.

Read more