About:

Software developer, tech enthusiast, and coffee lover who writes about software development and technology; occasionally posts random stuff on Twitter.

Website:

Specializations:

Subscribe to RSS:
The article explores Zig's unique approach to memory allocation, emphasizing the use of Allocators for manual control over memory management. It contrasts Zig's method with those of other languages like C++ and Rust, highlighting ...
The blog post discusses the author's experience using Zig with the Qt framework to develop a cross-platform GUI shopping list application. The author highlights the ease of using the libqt6zig bindings, which provide direct access...
The article discusses the shift in developer culture from curiosity-driven innovation to a focus on metrics and revenue optimization. It reflects on the past when developers created tools out of passion and curiosity, contrasting ...
Astro is a static site generation framework that allows developers to build websites using various frontend frameworks without worrying about server-side rendering (SSR), static site generation (SSG), or SEO. It supports multiple ...
The author describes the process of creating a dotenv parser while developing a CLI argument parser in Zig. Initially focused on adding environment variable support to the argument parser, the author realized that the implementati...
The blog post discusses the pitfalls of perfectionism in work, particularly in software development. It argues that striving for perfection can lead to 'analysis paralysis,' where one becomes so focused on predicting every possibl...
The article discusses the increasing tolerance for boilerplate and ugly code among developers due to the reliance on AI tools for code generation. It emphasizes the importance of striving for elegance and simplicity in coding, dra...
The article critiques the shift from owning software to a subscription-based model, arguing that this change has led to a loss of user control and ownership. Initially, software was a product that users could buy and own, but the ...
The blog post explores the programming language Odin, particularly its application in building a tiny key-value store with a pub/sub system. The author reflects on their journey from using languages like C and Zig to discovering O...
The blog post discusses the author's preference for using Zig over Rust for developing command-line interface (CLI) tools, focusing on memory management. It explains the differences between stack and heap memory, the role of Rust'...
The blog post discusses the trend of rewriting established software, specifically GNU Core Utils, in newer programming languages like Rust. The author questions the necessity of such rewrites, arguing that existing solutions are o...
The author discusses their experience transitioning from xserver to Wayland and the decision to write a small C daemon for checking RSS feeds. They highlight the efficiency of C compared to Python and Go, emphasizing the lower mem...
The article discusses the pitfalls of over-engineering in programming, particularly the tendency to over-abstract code. It emphasizes the importance of writing straightforward code first, avoiding unnecessary abstractions, and foc...
The blog post defends C++ against common criticisms regarding its complexity, age, safety, readability, and suitability for beginners. It argues that while C++ is complex and has a steep learning curve, it allows for simple, maint...
The blog post explains Zig's unique approach to error handling, emphasizing its simplicity and clarity. It introduces error sets, which are enums representing possible errors a function can return, and discusses error unions that ...
The blog post discusses emerging trends and technologies in frontend development, reflecting on the author's personal journey from early web development to current advancements. Key trends include the rise of headless CMS, the con...
The author shares a collection of battle-tested React hooks that have been used in various projects over the years. The post discusses the importance of open-sourcing these hooks, which include functionalities like local storage m...
The blog post discusses Zig, a general-purpose programming language designed for performance, safety, and simplicity. It highlights Zig's modern features, compile-time memory safety, and its ability to interoperate with C and C++....
This article provides a tutorial on how to read the contents of a directory in the Zig programming language using the page allocator. It explains the importance of directories in file systems, introduces Zig's features that make i...
The blog post explains Zig unions, a feature in the Zig programming language that allows a variable to represent multiple possible types, with only one type active at a time. It details how to create both bare and tagged unions, p...
The article explains the 'retry' option in React Query (now called Tanstack Query), which allows developers to control data fetching behavior in case of failures. It details how to implement retry logic, including setting the numb...
The blog post explains the concept of slices in the Zig programming language, detailing how to create, access, and iterate over them. Slices are defined as a pointer to the first element and a length, differing from arrays in that...
The post explains how to use the Jotai library's atomWithStorage function to persist data in React applications. It details how atomWithStorage automatically stores atom data in localStorage, sessionStorage, or AsyncStorage, ensur...
The blog post explains the concept of structs in the Zig programming language, detailing how they are used to group related data. It compares structs to classes in traditional OOP languages, outlines how to define and instantiate ...