Jacek's Blog

Software Engineering Consultant

Jacek Galowicz

Looking for Nix & NixOS Trainings?

I give on-site corporate Nix & NixOS Training under the Nixcademy label.

Individuals can book the same training via the Linuxhotel in Essen, Germany. (Nix Training, NixOS Training)

This training class saves teams of developers & DevOps professionals months of ramp-up by teaching the most important and difficult parts of Nix & NixOS. It also saves a lot of money because I am the one who travels to your company site, and I offer to stay available as a technical mentor for your staff until they feel confident enough.

Portrait photo of Jacek Galowicz

Effective Software Engineering

I am a freelancer with professional interests in software development, software architecture, interface design, and continuous integration & deployment (CI/CD, DevOps). Over the years I got into bigger and bigger production projects and developed a lot of competence in how projects should be structurally built, integrated, and tested to enable and maximize the developer's ownership of the overall quality of the resulting product.

I communicate fluently in English and German.

Services

Consulting

With my many years of experience and my expert knowledge, we analyze your problem together and then find the optimal solution.

Development

If you need a proof-of-concept or some specified module, I will build it for you. During peak pressure times, I can integrate into your processes for some time.

Coaching

I accompany and coach key people or entire teams and thus support your projects in the long term. After signing your NDA, your employees can ask me anything and I help them avoid pitfalls and frustration.

Review

To ensure that your software development is done properly and of high quality, I regularly examine and help fix processes, architectures, source code, and more.

Training

I train you and your colleagues individually tailored to your problem according to the latest standards, both in open training courses and on-site at your company.

CI/CD Automation

I help improve your development and delivery pace by suggesting and implementing big process improvements in the areas of build speed, regression testing automation, and automatic deployment.

Teaching Publications

I give talks and training on the topics of C++, Nix & NixOS, Software Architecture, Build Systems, Automation of Builds, Integration, Tests, and Deployment of Software.

Author of the Book C++17 STL Cookbook and the editor of the Book C++17 in Detail.

Co-Author of the scientific paper Combining Mechanized Proofs and Model-Based Testing in the Formal Analysis of a Hypervisor, FM 2016: Formal Methods and Efficient Implementation of the bare-metal Hypervisor MetalSVM for the SCC), 6th Many-core Applications Research Community (MARC) Symposium.

Author/Co-Author of Cyberus Technology GmbH. Blog posts about Intel CPU vulnerabilities: Meltdown, Spectre V4, Intel LazyFP Vulnerability, L1 Terminal Fault Vulnerability, Zombieload, TSX Asynchronous Abort.

Software Architecture Development

Nix(OS) Logo C++ Logo Haskell Logo postgreSQL Logo Qt Framework Logo Purescript Logo Python Logo React.js Logo

Most of my experience concentrates on embedded (x86-64 and ARM) and backend development on Linux operating systems with C++ and Haskell. I use the strong type systems of languages to define error states out of existence as much as possible.

In frontend development, I have the most experience with the Qt Framework on Linux and Windows, embedded and non-embedded systems. I have also built rich, complex web- and desktop applications against REST APIs with Electron.js and React, typically implemented with the type safety of Purescript.

I am the maintainer of the Python NixOS Integration Test Driver portion of the nixos/nixpkgs Project on GitHub.

Work Background

2018 - 2023: Visiting Lecturer, FH Münster

I held the lecture “Quality-Assuring Software Engineering Methods“ for master students every winter semester, which is about unit & integration testing, spec-driven testing, fuzzing, reproducibility, development processes in teams, bad established practices in the industry, etc.

Since 2017: Co-Founder, Cyberus Technology GmbH

  • Automation/Integration of software modules into system images (C++, CMake, Meson, Gitlab, Docker, Nix)
  • Design of Hardware-In-the-Loop (HIL) test infrastructure that enabled high-throughput and regression-free SW development processes of our hypervisor team (Haskell, Python, REST Interfaces, NixOS, Raspberry Pi, USB OTG)
  • Implementation of low-level libraries for embedded systems (C++, Template Metaprogramming)

2014 - 2016: Sr. Software Engineer, FireEye, Inc.

  • Design, implementation, and test of components of a secure, microkernel-based virtualization platform. (C++14, C, Assembler, ACPI, Microkernel OSes, Intel VT, PCI, Interrupt Routing, Suspend & Resume, C++ Template Metaprogramming, STL, Qt)
  • Design and implementation of automated hardware test infrastructure.

2012 - 2013: Student Intern/Master Thesis Worker, Intel Corporation

  • Implementing a live migration feature for a virtual machine monitor based on an innovative microkernel operating system. (NOVA Microhypervisor, Microkernel Operating Systems, lwIP TCP/IP Stack, Intel VT-Extensions, Live Migration)
  • Extension of the live migration feature for the master thesis (ACPI, PCI hot plugging, preserving TCP connections over migrations, Network trunking)

2009 - 2012: Student Assistant, RWTH Aachen University

  • Low-Level Kernel programming (Kernel Functionality, Hypervisor, Documentation)
  • Development of Benchmarks and GUI frontends (C/C++, OpenMP, MPI, Qt)
  • Giving tutorials in Basics of Computer Science 1 and 4 (C, General Algorithms and Data Structures, x86 Assembly, Virtual Memory, Processes/Threads, Shared Memory, Synchronization, etc.)
  • Supervising lab courses (C++, Object Oriented Programming)

2004 - 2009: Freelancer at Academy GmbH & Co. KG

Framework design for web-based medical decision support systems, GUI frontends (Qt, JavaScript), Applications for handhelds (Visual Basic)

Education

2008 - 2013: B.Sc. & M.Sc. Electrical Engineering, RWTH Aachen University

  • Master thesis: Live Migration of Virtual Machines between Heterogeneous Host Systems (PDF)
  • Bachelor thesis: Design and Implementation of a Virtualization Layer for the Operating System Kernel "MetalSVM" (PDF)

My special thanks go to the companies Brunel, E-Plus, and Intel Corporation, who co-financed my education within the framework of the Germany Scholarship.