InfoQ Homepage System Programming Content on InfoQ
-
Go Channels: Understanding Happens-Before for Safe Concurrency
This article dives into the happens-before semantics of Go channels, explaining how they relate to memory visibility, synchronization, and concurrency correctness. We'll examine subtle pitfalls, illustrate them with examples, and explore the architectural implications for system designers.
on Oct 13, 2025 -
Engineering a Time Series Database Using Open Source: Rebuilding InfluxDB 3 in Apache Arrow and Rust
At times, to evolve your product, you need to rebuild it from scratch. The article provides the story behind the rewrite of InfluxDB from scratch using a different programming language - Rust - and stack - Apache Flight, Data Fusion, Apache Arrow and Parquet (FDAP). It emphasises the benefits, as well as the mechanics behind its operation and the different versions of the product.
on Sep 10, 2025 -
Modeling Complex Data Structure in Golang Using Pointers, References, and Reverse Indices
Understanding pointers and references in Go can be challenging for many developers, especially those new to low-level programming languages. In this article, I’ll walk you through a program that leverages Go pointers and references to solve a real-world use case: a graph-based permission system.
on Jan 23, 2025 -
Java-Based No-Code and Low-Code Application Bootstrapping Tools Review
Low-code and no-code software development platforms help establish common ground for product development. They can help developers avoid repetitive bootstrapping tasks and speed up development. This article reviews four of the most common tools.
on Nov 05, 2024 -
Zero to Performance Hero: How to Benchmark and Profile Your eBPF Code in Rust
In this article, we will walk through creating a basic eBPF program in Rust. We will intentionally include a performance regression and then use profilers to locate and fix the bug. We will also create benchmarks and track them using a continuous benchmarking tool for CI.
on Jun 18, 2024 -
How to Use Rust Procedural Macros to Replace Panic with syn’s Fold
In this article, we show how you can write advanced macros to step through Rust code and modify it. Using the standard tooling available in the syn crate, we first show how to change the occurrence of a panic into an Err. Then we go a step beyond and use the Fold trait to recursively step through the entire function, automatically executing a change in every applicable location.
on Mar 12, 2024 -
What's New in PHP 8.3
PHP 8.3 is the latest major update in the PHP 8.x series. In addition to performance improvements, it brings a wealth of new features, including amendments to the readonly feature introduced in PHP 8.1; explicitly-typed class constants; a new #[\Override] attribute for methods intended to be overridden from a superclass, and more.
on Feb 27, 2024 -
AI-Based Prose Programming for Subject Matter Experts: Will This Work?
In this article, author Markus Völter discusses the future of programming using Large Language Model (LLM) tools like ChatGPT and GitHub’s Copilot for prose-to-code generation. He also talks about what new approaches and language changes need to be in place to help non-programmers take advantage of the "program in prose" techniques.
on Aug 08, 2023 -
InfoQ DevOps and Cloud Trends Report – July 2023
InfoQ editorial staff and friends of InfoQ are discussing the current trends in the domain of cloud and DevOps as part of the process of creating our annual trends report. These reports provide InfoQ readers with a high-level overview of the topics to pay attention to and help the editorial team focus on innovative technologies.
on Jul 17, 2023 -
Learning eBPF for Better Observability
This article shares insights into learning eBPF as a new cloud-native technology which aims to improve Observability and Security workflows. Learn how to practice using the tools, and dive into your own development. Iterate on your knowledge step-by-step, and follow-up with more advanced use cases later.
on May 19, 2023 -
Rust Reviewed: the Current Trends and Pitfalls of the Ecosystem
In this article, we share findings and insights about the Rust community and ecosystem and elaborate on the peculiarities and pitfalls of starting new projects with Rust or migrating to Rust from other languages.
on May 17, 2023 -
Relearning C++ after C++11
C++ is an old but evolving language. It has been around for a long time, but has changed significantly, particularly since 2011. In this article, we will review a few of its most compelling new features, including ranges, lambdas, range-based for loops, and move semantics, all by practising with a vector.
on May 10, 2023