As 2020 was finally coming to an end, I began listing the tools that came into my day-to-day work during this period, checking what I have learnt from them. Interested? Let’s see that together.

Note: This is mostly a translation of my post on LinuxFR.org. If your native language is French or similar, you may as well read it there.

Docker

I knew Docker only by its name and I had heard here and there that it was a great tool to isolate your programs from the system. For sure it is a great tool.

If you develop an application for…


Here’s a new game: pick a random software library and review it.

A long time ago Mark Gillard posted in r/cpp a link to his C++ library to handle TOML, with a comment saying “As always, feedback welcome!”.

Hey, good thing! I don’t know anything about TOML but I know a few things about C++ and software design!

Moreover, I like doing code reviews; both as a reviewer and as a reviewee. Code reviews are great for the reader to learn new things, to think, to empathize (a.k.a “wtf is going on in this file?”). …


Did you know that every day several new C++ signal-slot libraries are created? There are so many of them that we estimate there is 1.14 libraries for each C++ developer. Let’s have a look at them.

The puma runs faster than a wardrobe

The signal-slot mechanism is a way to implement the observer pattern. Roughly, the idea is to allow subscription of callback functions to an event: when this event occurs, the functions are called. The signal (or subject) is the one emitting the events, and the slots (or observers) are the callback functions. …


Let’s talk about build systems.

Note: This is mostly a translation of my post on LinuxFR.org. If your native language is French or similar, you may as well read it there.

My job is to program video games targeted to iOS and Android devices. The platform-specific sections are written in Objective-C or Java, respectively, and the parts common to both platforms, that is 99% of the application, are written in C++. …


On the 6th of January, 2014, I joined IsCool Entertainment as a game developer on the recently released mobile game named Bazoo. It was a long time ago and the project went through a lot of phases. Let me tell you its story…

[All illustrations courtesy of IsCool Entertainment.]

The genesis

The story of Bazoo begins near 2013, when the mobile market was overwhelmed by match 3 games following the successful Candy Crush Saga released the year before. One producer at IsCool rightfully saw in this trend the perfect conditions to create a game out of his younger memories.

The man had…


I have been watching the excellent talk “Writing Fast Code” by Andrei Alexandrescu with some colleagues recently. In this talk the speaker focuses on the low level optimizations and performance improvements of C++ code while emphasizing on the importance of measuring. This is a very pleasant technical talk.

An astonishing point in the talk concerns the benchmarks. The author takes some textbook case algorithms and implement them using some nice optimization techniques such that they outperform the version of the standard library. By the end, I felt the need to see the results by myself. Here are my experiments.

First…


Concluding the series of behaviors that will make us better developers, today we focus on the pleasure of making the project moving forward and on some suggestions of books and articles to read.

We have seen in the previous article that we should retain the urge to add extra stuff while we work on a specific feature and to avoid coding features just because we can. Then, what should we do with all these great ideas when they come? How to insert them smoothly in the process ?

It may seems obvious but writing the needs in the backlog is…


Continuing in the series of behaviors that will make us better developers, today we talk about meeting our targets by doing exactly what have to be done, and nothing else.

As time goes we all eventually code a feature telling ourself “I should refactor/write a tool so I would go faster” or “it will make some future thing easier”. When this happens, just take a break.

I have spent five years part time on a pet game project, implementing every week something that would help me to go faster or that would make the game cooler. I have developed tons…


Continuing in the series of behaviors that will make us better developers, today we focus on the importance of being clean, in our code and in our interactions with our coworkers.

Our job as programmers is to write the details of a process in such simple steps that even a robot could execute it. This is the basis without which we cannot even call ourselves “developers”; still it is far from enough to be a good developer. The life of a software expands far beyond its initial implementation, with maintenance, debugging, code review; every line will be read more than…


Continuing in the series of behaviors that will make us better developers, this time we focus on the importance of providing good estimates before starting a task, adjusting it as we progress and deliver a complete feature at the end.

Do you know any use case where a customer would happily pay for a job almost done? I do not. Also, here is the mandatory building construction analogy: “Here’s your house, you can come in, it’s almost done. We just need to install the locks and to remove the crane. Also, the bathroom’s window is missing; we will have it…

Julien Jorge

Compiler Engineer at Quarkslab

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store