About:

James is a seasoned programmer with over 20 years of experience, passionate about programming and sharing insights through blogging.

Website:

Specializations:

Interests:

Programming Software development

Outgoing Links:

Hillel Wayne
Subscribe to RSS:
A comprehensive guide to optimizing a Least Frequently Used cache implementation in C++23, addressing performance issues and proposing effective solutions.
An efficient LFU cache implementation in C++23 achieves O(1) operations using doubly-linked lists and maps, balancing speed and memory trade-offs.
This post details the implementation of a Least Frequently Used cache in C++23, highlighting its structure, operations, and performance trade-offs compared to other caching strategies.
A personal exploration of learning programming through hands-on implementation of memory allocation in C, emphasizing understanding over rote copying of solutions.
Learning programming effectively relies on curiosity, hands-on experience, and community engagement rather than solely depending on large language models (LLMs).
The author shares their experiences working with Haskell in a production environment at Mercury from November 2020 to August 2025. The post discusses the trade-offs and challenges of using Haskell, including its non-mainstream sta...
The blog post discusses the development of the Haskell tigerbeetle-hs client library for the Tigerbeetle database, focusing on an issue encountered when linking the Zig-written libtb_client.so library. The author explains a segmen...
Embedding Lua in Haskell applications allows game developers to focus on game logic while leveraging Haskell's capabilities for server management.
The blog post discusses the current bleak job market for programmers, highlighting a significant drop in open positions and ongoing layoffs. It critiques programming influencers who exploit insecurity through engagement-farming ta...
The author, a former developer turned Engineering Manager, shares insights on the pitfalls of trying to contribute to the software development process while managing a team. They emphasize the importance of stepping back from codi...
This post provides tips for conducting informal code reviews, emphasizing the importance of clear specifications and encouraging authors to provide proof of correctness for their code changes. It advises reviewers to focus on the ...
An implementation guide for a Least Recently Used Cache in C++23, showcasing its structure and functionality through practical code examples.
The author shares their journey of learning the Zig programming language by creating a CHIP-8 emulator. They discuss the simplicity of CHIP-8, the challenges faced with Zig's explicit type conversions, and the advantages of integr...
The text discusses the author's reasons for not using AI tools in programming, focusing on moral, ethical, productivity, environmental, and profitability concerns. The author argues that AI tools are not energy efficient, have dub...
The text discusses how to design software in Haskell for businesses, specifically an accounting ledger system for a bank. It emphasizes the importance of asking questions and writing definitions, and separating program and state. ...
The text discusses the misconception that Haskell is a white paper language and emphasizes that it is a practical programming language used in real-world applications. The author shares their experience of using Haskell for busine...
The article discusses the importance of keeping effects at the edges when designing software. It explains how to separate effects from core logic to write clearer, easier to maintain, and testable code. It provides examples and st...
The text discusses over-engineering in software development, emphasizing the importance of understanding the problem and requirements. It compares over-engineering in software to mechanical products like tanks and bikes, and highl...
The text discusses the use of extensible enums in Haskell to handle an open set of string constants in an HTTP API. It presents three ways to handle the situation, each with its own trade-offs and benefits. The author recommends u...
The article is a practical guide to functional programming in Javascript. It explains fundamental structures, such as Validation, and their practical applications. It also discusses the concepts of algebra, Functor, and Applicativ...
The text discusses the benefits of using static type checkers in dynamic programming languages such as Javascript and Python. It explains the difference between static and dynamic type systems, and how type checkers can help with ...
The text discusses the use of Promises in Javascript and how they are used to perform IO computations. It explains the concept of purity and how Promises are good for computations. It also delves into the limitations of Promises a...
The author shares their journey of learning and adopting Haskell, facing skepticism and challenges at their workplace, and ultimately having to abandon their Haskell project after struggling to make progress and switching to a dif...