/Alex Kladov

How I Use Git Worktrees tl;dr: “There are a bunch of posts on the internet about using git worktree command. As far as I can tell, most of them are primarily about using worktrees as a replacement of, or a supplement to git branches. Instead of switching branches, you just change directories. This is also how I originally had used worktrees, but that didn’t stick, and I abandoned them. But recently worktrees grew on me, though my new use-case is unlike branching.”

featured in #535


How To Test tl;dr: “This post describes my current approach to testing. When I started programming professionally, I knew how to write good code, but good tests remained a mystery for a long time. This is not due to the lack of advice — on the contrary, there’s abundance of information & terminology about testing.”

featured in #520


Basic Things tl;dr: “After working on the initial stages of several largish projects, I accumulated a list of things that share the following three properties: (1) They are irrelevant while the project is small. (2) They are a productivity multiplier when the project is large. (3) They are much harder to introduce down the line.”

featured in #510


Basic Things tl;dr: “After working on the initial stages of several largish projects, I accumulated a list of things that share the following three properties: (1) They are irrelevant while the project is small. (2) They are a productivity multiplier when the project is large. (3) They are much harder to introduce down the line.”

featured in #509


Push Ifs Up And Fors Down tl;dr: The article presents two interdependent coding principles: (1) "Push Ifs Up" - move if conditions to the caller to simplify functions and enhance readability by centralizing control flow. This approach reduces bugs and makes code maintenance easier. (2) "Push Fors Down" - handle operations on batches of objects, not individually, for better performance and flexibility. This method is efficient, especially when combined with the first rule, as it streamlines processing and can enable advanced techniques like vectorization.

featured in #466


Rust Is A Scalable Language tl;dr: Rust is vertically scalable as you “can write all kinds of software in it,” as well as horizontally scalable - you “can easily parallelize development of large software artifacts across many people and teams.” Alex elaborates on both.

featured in #402


Zig And Rust tl;dr: I now find myself writing Zig full-time, after more than seven years of Rust. This post is a hand-wavy answer to the “why?” question. It is emphatically not a balanced and thorough comparison of the two languages.

featured in #401


Rust’s Ugly Syntax tl;dr: "People complain about Rust syntax. I think that most of the time when people think they have an issue with Rust’s syntax, they actually object to Rust’s semantics. In this slightly whimsical post, I’ll try to disentangle the two."

featured in #386


Hard Mode Rust tl;dr: "This post is a case study of writing a Rust application using only minimal, artificially constrained API (eg, no dynamic memory allocation). It assumes a fair bit of familiarity with the language."

featured in #358


Almost Rules tl;dr: "In this post, I’d want to catalog some of the cases I’ve seen in the Rust programming language where I think an internal boundaries were eroded with time."

featured in #334