A website about technology, software craftsmanship and the exhilaration of designing abstract structures for concrete use.

Here, I share thoughts about the tools I test and explain the techniques I use. In addition to isolated articles, I develop more in-depth examples in article series. In those, we build fun open-source projects from the ground up.

Open series are: cryptomate, software engineering and python.

What's new?

Zero-cost unique_ptr deleters

A C++ smart unique_ptr uses exactly the same amount of memory as a regular pointer, and has zero runtime cost. That is what we love about C++. But what if I need a custom deleter for my pointer? Can I get it at zero cost too?▸ read more

Error Handling part 2: Abstractions

We cover the basics of correct error handling, so it is no longer an afterthought. In previous post, we left some crucial questions unanswered, such as “What exactly makes an error recoverable?”. In this post, we dive into levels of abstraction and what they mean for error handling.▸ read more

Market Port

So far, we have been talking about market events, orders and strategies, as abstract concepts, leaving details to a later point. Now, to design the core of the strategy engine, we need the full picture.▸ read more

Laying the Groundwork

Initial design is done. It is now time to start laying the basis of the project. At this point, there are a few technical choices we can no longer defer.▸ read more

Starting a Python Project

We hack together a couple of modules, do quick manual testing. Eventually, the code remains a hackish mess rotting away which may be fine but a little unsatisfactory.▸ read more

The Story So Far

We used most of the allocated design time, and our architecture is falling into place. Spending more time on upfront design will yield diminishing returns at this point. Here is a quick post index.▸ read more

Critical Points

We detail critical parts of the architecture: relationships between main components, strategy life-cycle and integration examples for both testing and production.▸ read more

Getting Started

A new project with no legacy to accommodate may either be a clean slate or a blank page, depending on how one looks at it. Before we start filling it, we need to define our strategy.▸ read more

Introducing Cryptomate

A trading bot is an amazing tool. It talks to many third parties. It requires a rich, flexible toolset to empower its user. This needs powerful abstractions. In short, it is the perfect project to start my website with.▸ read more
back to top