Jacek's Blog

Software Engineering Consultant

Jacek Galowicz's Posts (Page 2)

Tags book c++ haskell metaprogramming nix purescript python testing

Book Review: Algorithms to Live By - The Computer Science of Human Decisions

December 28, 2022 book

What does the math tell us about how many job applicants we should look at before hiring one? While onboarding our new employees, how can ideas from the TCP networking protocol help us to identify the optimal workload for them? Why would giving employees unlimited vacation days most likely lead to less vacation being taken? Algorithms to live By - The Computer Science of Human Decisions gives some fascinating insights into such questions.

Read more


Book Review: The Phoenix Project

December 19, 2022 book

The Phoenix Project is a novel that has been declared a must-read by many IT executives. It provides smart solutions to the problems that most IT companies struggle with and is at the same time educating to read. What principles does it teach, and where does it fall short?

Read more


Book Review: The Culture Map

December 12, 2022 book

Why do American coworkers always communicate so clearly and directly, but at the same time criticize rather indirectly and cushioned? When do Asian coworkers finally jump in and say something in a meeting? How do German coworkers get done anything innovative in their fixated planning madness? After having experienced many strange situations in projects with people from around the world, I found Erin Meyer’s book The Culture Map to be so insightful that I would declare it a must-read for any software professional who works with or in international teams.

Read more


Book Review: A Philosophy of Software Design

December 5, 2022 book

What separates the truly great software developers from the average ones? People have lots of opinions about this, but it’s often hard to describe what makes the code of a great engineer so good - and what part of it novice programmers should really try to learn from. John Ousterhout’s book A philosophy of Software Design aims to answer this question and actually introduces some extraordinarily appropriate vocabulary for your next discussion about software quality.

Read more


NixOS Community Oceansprint late 2022 Report

November 26, 2022 nix

This is my trip report from the late 2022 Oceansprint hackathon on Lanzarote. For more information please also have a look on the website: https://oceansprint.org

Read more


Filtering Unique Items from Heterogeneous Lists at Compile Time

March 20, 2022 haskell metaprogramming

This article is about how to filter unique items from heterogeneous lists on the type level in Haskell. This example, without further context, might look a bit esoteric by itself, but I learned a lot writing it and wanted to share the experience.

Read more


NixOS Community Oceansprint 2021 Report

December 12, 2021 nix

This is my trip report from the awesome NixOS community hackathon on Lanzarote. For more information please also have a look on the website: https://oceansprint.org

Read more


Setting up a C++ project environment with nix

April 17, 2019 nix c++

This article explains how to quickly set up a C++ project environment with complete toolchain- and dependency management with nix. nix is a powerful package manager for Linux and other Unix systems (It is indeed a more powerful alternative to conan and docker) that makes package management reliable and reproducible. After setting up the project and playing around with it, we will parametrize the project description in order to automatically build it with different compilers and dependency library versions (GCC 7 & 8, Clang 7 & 8, lib boost 1.6.6 - 1.6.9, lib poco 1.9.0 & 1.9.1).

Read more


Managing libraries with Nix

February 27, 2018 c++ nix

While learning Haskell and using its really smart library dependency management tools (cabal and stack), i realized that the C++ eco system has a problem: There are no handy established tools that let the developer declare which libraries (and versions) are required for a project which can then be automatically installed in a portable way. Nix however convinced me to be more versatile and powerful than Conan and handier than Docker, Vagrant, etc. (although it’s fair to say that i am mixing use cases here a little bit!) In this article, i am going to showcase this great tool a little bit.

Read more


Iterators are also part of the C++ zero cost abstractions

July 2, 2017 c++

This article picks up an example operating system kernel code snippet that is written in C++, but looks like “C with classes”. I think it is a great idea to implement Embedded projects/kernels in C++ instead of C and it’s nice to see that the number of embedded system developers that use C++ is rising. Unfortunately, I see stagnation in terms of modern programming in embedded/kernel projects in the industry. After diving through the context i demonstrate how to implement a nice iterator as a zero cost abstraction that helps tidy up the code.

Read more

Newer Older