Watermill 1.4 Released (Event-Driven Go Library)

It’s Autumn over here, and it usually means another release of Watermill! 🍂 It’s hard to believe it’s already been five years since the v1.0 release. In case you’re new to Watermill, here’s TL;DR. Watermill is a Go library for building message-dri...

Fearless Concurrency Ep.4: Understanding Mutexes and Thread Safety in Rust

Introduction: Welcome to Episode 4 of Fearless Concurrency in Rust! In this episode, we explore how Rust’s ownership and borrowing rules impact multithreaded programming, focusing on the complexities of managing memory in a concurrent environment. We’ll break down how Rust&rs...

Suite smells: testing legacy code

How do you rescue a legacy codebase that has no tests? Let's look at some techniques for clawing your way back to maintainability, one test at a time.

JSON - The Fine Print: Part 1

Introduction Everybody knows JSON, it’s a simple serialization format and the default format for REST APIs. Like many other topics, there are fine points you should know in order to work with JSON more effectively and avoid common mistakes. In this article we’ll explo...

Quoting and not quoting command substitution in the Bourne shell

Speeding up with SIMD and Go assembly

#​528 — October 22, 2024 Unsub  |  Web Version Go Weekly A Taste of Go Code Generator Magic: A Quick Guide to Getting Started — There aren’t many tutorials on Go code generation, which inspired the author to show how they crea...

A 10-Step Guide to Using Embassy for Embedded Rust

Embassy is a powerful framework for building asynchronous embedded applications in Rust. Embassy focuses on safety, performance, and efficiency makes it an excellent choice for latency-sensitive systems. This guide provides junior and mid-level engineers with a comprehensive unde...

The Go module proxy and forcing Go to actually update module versions

Exploring JSON Encoding and Data Handling in Go - Ep.2

Introduction: Welcome to Episode 2 of JSON for Engineers! In this episode, we explore the unique characteristics of JSON as a schema-less format, discussing both its benefits and challenges. You’ll learn how JSON’s flexibility, while enabling rapid development, can cr...

Optimising and Visualising Go Tests Parallelism: Why more cores don't speed up your Go tests

Recently, I struggled for a couple of hours to understand why the API tests of one project were slow. In theory, we designed tests to run in a fully parallel way – the duration of tests should be close to the longest-running test. Unfortunately, the reality was different. T...