Pull to refresh
128K+

Go *

Compiled, multithreaded programming language

155,75
Rating
Show first
Rating limit
Level of difficulty

The Go Scheduler — The Most Detailed Guide in Simple Terms

Level of difficultyMedium
Reading time27 min
Reach and readers606

Let's design the Go scheduler from scratch. We'll start with the simplest and most understandable naive implementation, and then, step by step, we'll figure out its flaws and come up with ways to solve them, gradually making the overall model more complex.

This is one of the best ways to understand a complex system or concept—by going through the process of its step-by-step design. The system is complex and not easy to grasp, but we will break it down into simple steps that are very easy to understand. After that, the puzzle will fall into place in your mind, and the overall picture of the system will be just as simple and obvious to you.

Start Designing

Meet the Developer: Hysteria

Level of difficultyEasy
Reading time4 min
Reach and readers6.1K


This is the pilot episode of our new interview series Meet the Developer, where we talk to the people behind anti-censorship tools. Our goal is to shine a light on the developers whose open-source solutions help millions of people stay connected.

In this first episode, we sit down with Toby, the lead developer of Hysteria, to discuss the project’s origins, technical challenges and his perspective on internet censorship.

Let’s start with an introduction. Tell us who you are and what you do.

Just call me Toby. I’m a software engineer. Previously, I have worked for a large company. But right now, I’m a co-founder of a startup with some friends.

Nice to meet you Toby! Would you like to share what type of startup it is, or is it a top secret project?

We are still in stealth mode.

Why did you decide to develop Hysteria?

It was originally a project I developed for myself when I was in college.
China’s global Internet connectivity has been notoriously bad for as long as I can remember (still not any better right now). Not just in the sense of censorship, but also in terms of connection quality.

For example, if you have a server in the US and want to connect to it from China, expect over 10-20% or more packet loss.

So if you set up a proxy server in another country to circumvent censorship, it would be painfully slow (the most popular tools back then were GoAgent and later Shadowsocks).

So Hysteria began as an attempt to improve my speed for watching YouTube videos.

It’s always great to see developers building something to solve their own challenges. I can relate to the packet loss issue. Either you suffer the packet loss, or you have to purchase an expensive server with CN2 routing, which will cost a lot.

Read the interview

Your AI Should Be Writing Tests. The Unfair Advantage Every Vibe Coder Ignores

Level of difficultyEasy
Reading time4 min
Reach and readers17K

Every prompt is a gamble. Your AI writes code that compiles, looks right, and silently breaks things you already built. Tests catch it before your users do. The best part? Your AI can write the tests for you.

~206 символов. Добавил "compiles, looks right" из A для конкретики, убрал "And here's the thing" на более кликбейтное "The best part?".

Добавить в начало статьи?

Read more

(VLESS) VPN client for Windows

Level of difficultyEasy
Reading time3 min
Reach and readers22K

Recently, I needed to run a VLESS subscription on Windows, make it work with my work VPN, and deal with all the associated 'joys.' I tried v2rayN, Nekoray, and Hiddify—and quickly realized I wanted to write my own client.
And so, singbox-launcher was born:
👉 https://github.com/Leadaxe/singbox-launcher

Below are a few details about why and what came of it.

Read more

Stream-first Gotenberg Client for Go

Level of difficultyMedium
Reading time2 min
Reach and readers8.7K

Go client for Gotenberg — document conversion service supporting Chromium, LibreOffice, and PDF manipulation engines.

Features

- Chromium: Convert URLs, HTML, and Markdown to PDF

- LibreOffice: Convert Office documents (Word, Excel, PowerPoint) to PDF

- PDF Engines: Merge, split, and manipulate PDFs

- Webhook support: Async conversions with callback URLs

- Stream-first: Built on httpstream for efficient multipart uploads

Read more

Stream-first HTTP Client for Go

Level of difficultyMedium
Reading time5 min
Reach and readers7.3K

Stream-first HTTP Client for Go. Efficient, zero-buffer streaming for large HTTP payloads — built on top of net/http.

httpstream provides a minimal, streaming-oriented API for building HTTP requests without buffering entire payloads in memory.Ideal for large JSON bodies, multipart uploads, generated archives, or continuous data feeds.

- Stream data directly via io.Pipe—no intermediate buffers

- Constant memory usage (O(1)), regardless of payload size

- Natural backpressure (writes block when receiver is slow)

- Thin net/http wrapper—fully compatible

- Middleware support: func(http.RoundTripper) http.RoundTripper

- Fluent API for readability (GETPOSTMultipart, etc.)

- No goroutine leaks, no globals

httpstream connects your writer directly to the HTTP transport. Data is transmitted as it's produced, allowing the server to start processing immediately—without waiting for the full body to be buffered.

Read more

ShopCTL: A Developer-First Toolkit for Shopify Automation

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

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

XML parsing into plain Map in Golang

Level of difficultyEasy
Reading time4 min
Reach and readers7.5K

While in 2024 using XML looks a bit outdated, it still happens. And sometimes it happens we are to deal with XML having "free-structure", i.e. it couldn't be parsed into tree of user-defined structs. For JSON there still is a way to parse it with a single call into map[string]any and work with it using careful type assertions. Regretfully, there is no similar feature for XML (in Golang). Here I'll draft suitable function and demonstrate it - both for others and for myself if I ever need this again (recreating it from scratch may be somewhat painful).

Let's see implementation

Thoughts and short notes (in go) after reading «Clean Code»

Level of difficultyEasy
Reading time4 min
Reach and readers2.9K

Clean Go

Hey guys, I recently dove into 'Clean Code' by Robert C. Martin and found some valuable insights. The book is originally in Java, but I decided to reinterpret the principles in Go. Here's my take on the clean code concepts and how they can improve our coding practices.

1. Clean Code

The gist: Clean code is more than just working code; it's code that other developers can easily read, understand, and modify.

Read more

Best distributed task scheduling framework — Openjob 1.0.7 released

Reading time5 min
Reach and readers2.8K

Openjob is a new  distributed task scheduling framework based on Akka architecture. Supports multiple cronjob, delay task, workflow, lightweight distributed computing, unlimited horizontal scaling, with high scalability and fault tolerance. Also has complete management, powerful alarm monitoring, and support multiple languages

Read more

More powerful and intelligent task scheduling framework — Openjob 1.0.6 published

Reading time3 min
Reach and readers1.7K

Openjob is a new  distributed task scheduling framework based on Akka architecture. Supports multiple cronjob, delay task, workflow, lightweight distributed computing, unlimited horizontal scaling, with high scalability and fault tolerance. Also has complete management, powerful alarm monitoring, and support multiple languages

If you are looking for a high-performance distributed task scheduling framework that supports cronjob, delay task, lightweight computing, workflow, and supports multiple programming languages, then Openjob is definitely the way to go.

Read more

gookit/goutil — released v0.6.10, an extension library of common Go features

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

gookit/goutil An extended library of Go's common functionality. Contains: number, string, slice/array, Map, struct, reflection, text, file, error, time and date, test, CLI, command run, system information, formatting, common information acquisition, etc.

Read more

Openjob: distributed task scheduling framework

Reading time3 min
Reach and readers18K

Openjob is a distributed and high-performance task scheduling framework that supports multiple cronjob, delay task, workflow, lightweight distributed computing, unlimited horizontal scaling, with high scalability and fault tolerance. Also has perfect permission management, powerful alarm monitoring, and support multiple languages

Read more

From Zero to Hero: LeetCode

Level of difficultyMedium
Reading time8 min
Reach and readers43K

This is a translation of my article in Russian

In this article, I want to write about my experience of interacting with the LeetCode platform, and describe my preparation for an interview in FAANG similar companies by breaking it down into levels.

The whole article is written based on my experience, the numbers are very rough, I do not pretend to be objective, perhaps there are best practices on how to solve LeetCode problems, it would be cool if you share your experience in the comments.

Read more

Message broker selection cheat sheet: Kafka vs RabbitMQ vs Amazon SQS

Level of difficultyMedium
Reading time6 min
Reach and readers17K

This is a series of articles dedicated to the optimal choice between different systems on a real project or an architectural interview.

At work or at a System Design interview, you often have to choose the best message broker. I plunged into this issue and will tell you what and why. What is better in each case, what are the advantages and disadvantages of these systems, and which one to choose, I will show with several examples.

Read more

Database selection cheat sheet: SQL or NoSQL?

Reading time9 min
Reach and readers6.6K

This is a series of articles dedicated to the optimal choice between different systems on a real project or an architectural interview.

This topic seemed relevant to me because such tasks can be encountered both at work and at an interview for System Design Interview and you will have to choose between these two types of DBMS. I plunged into this issue and will tell you what and how. What is better in each case, what are the advantages and disadvantages of these systems and which one to choose, I will show with several examples at the end of the article.

SQL or NoSQL?

Read more

ArGOtecture

Reading time4 min
Reach and readers2K

This is an article that describes my vision of building a system that actively uses Go as the main programming language and SOA/microservices as a design paradigm. 

Here I will try to cover 4 chapters that together allow us to build a solid and reliable system.

Read more

Jira CLI: Interactive Command-line Tool for Atlassian Jira

Reading time4 min
Reach and readers4.4K

JiraCLI is an interactive command line tool for Atlassian Jira that will help you avoid Jira UI to some extent. This tool is not yet considered complete but has all the essential features required to improve your workflow with Jira.

The tool started with the idea of making issue search and navigation as straightforward as possible. However, the tool now includes all necessary features like issue creation, cloning, linking, ticket transition, and much more.

The tool supports both jira cloud and on-premise jira installation since the latest release.

Read more
1