Mina Naguib


Sep 9


Originally published on my LinkedIn Pulse under title “Something a little less serious” Following a cycling accident, I found myself forced to take it easy while recovering. This was both strongly suggested by the medical staff, and physically enforced by the sheer difficulty of trying to ignore said suggestions the first couple of weeks. That meant taking naps, buying a BRÄDA …



Oct 22

The little ssh that (sometimes) couldn't

Preface This is a technical article chronicling one of the most interesting bug hunts I’ve had the pleasure of chasing down. At AdGear Technologies Inc. where I work, ssh is king. We use it for management, monitoring, deployments, log file harvesting, even some event streaming. It’s solid, reliable, has all the predictability of a native unix tool, and just works. Until one day, random …



Dec 9

Optional and name-based arguments in C

Introduction It’s inevitable that some functions’ signatures become unwieldy. This is especially true as a project ages, and various developers who were not involved in the initial vision are asked to extend and tweak various existing functionality. In a high-level language, it’s often possible to effect new changes in an existing function without modifying all its consumers. In …


Nov 22

PostgreSQL transactions wrapping child+parent modifications, deadlocks, and ActiveRecord

From PostgreSQL’s perspective To demonstrate the issue, let’s set up two tables and create a parent record with id 1: create table parents( id serial not null primary key, children_count integer not null default 0 ); create table children( id serial not null primary key, parent_id integer not null references parents(id) ); insert into parents(id) values(1); Now, let’s do a …