Skip to content

Software engineer & Linux systems administrator · since 2009

I engineer software, and run the systems it depends on.

I'm Mahfuz Shaikh. For more than seventeen years I've built software professionally and administered the Linux servers and infrastructure it runs on — designing applications, automating deployments, keeping production healthy. Today I also build products of my own, from a content management system to terminal tools and software for the Linux desktop.

What I reach for

Rust and Ruby for the code. Linux, systemd and Kamal to run it. SQLite until something proves it needs PostgreSQL. Written in Neovim, on Arch and Hyprland. Everything I use

Selected work

Things I’m proud to have built

All 10 projects
Illustration for Nibble
Building

Nibble

Content management system · 2026

A schema-driven CMS you install as your own Rails application — your theme, your content, your server.

  • Ruby on Rails 8
  • Inertia
  • Vue 3
  • TypeScript
  • SQLite
  • Tailwind CSS
Illustration for Quarry
Shipped

Quarry

Database client · TUI · 2026

A fast SQL client and full-screen TUI for PostgreSQL, MySQL, MariaDB and SQLite — one binary, the same keys everywhere.

Quarry is a native SQL client for the terminal, written in Rust. It pairs a REPL in the tradition of pgcli and mycli with a full-screen interface for exploring schemas, editing tables safely and reading query plans, and it is built on the assumption that one day you will be connected to production by mistake.

  • Rust
  • ratatui
  • tokio-postgres
  • mysql_async
Illustration for Sysman
Building

Sysman

System monitor · Linux · 2026

A system monitor for Linux that remembers — a crash-proof collector daemon and a native app to explore what happened.

Sysman is a Linux system monitor in Rust with three parts — a collector daemon that samples the machine every two seconds and keeps history in SQLite, a native GPU-accelerated app built on GPUI to explore it, and an optional, tightly confined helper for the readings that need root. Its first rule is that the last reading before a crash is already on disk.

  • Rust
  • GPUI
  • SQLite
  • systemd
Illustration for Darwan
Shipped

Darwan

Desktop app · Linux · 2026

One app to choose, configure, preview and apply themes to both of your gates — the login screen and the lock screen.

  • Rust
  • Qt 6
  • QML
  • cxx-qt
  • Quickshell
  • SDDM

The workshop

What’s on the bench

Everything I’m working on, out in the open — what’s in progress, what has shipped, and the ideas I’m testing.

How I work

Principles, after 17 years of shipping

  1. 01

    Own the whole path

    From the first line of code to the server it runs on, the backups behind it and the alert at 3am. I build like someone who will have to operate it — because I usually do.

  2. 02

    Fewer moving parts

    Every component is something to patch, monitor and pay for. I choose proven, understood technology and spend complexity only where people can feel the difference.

  3. 03

    Fail safe, not silent

    Systems should refuse loudly rather than continue wrongly — a deploy that stops before it breaks production, a value shown as unknown rather than a misleading zero.

  4. 04

    Ship small, ship often

    Small releases are easy to verify and easy to undo. A changelog written for the person running the system, not the person reading the diff.

Writing

Notes from the workshop

Everything I’ve written

Rust

Cargo's defaults ate 483 GB: a Rust build postmortem

A postmortem of build storage and test time across seven Rust workspaces: a 483 GB target folder that stalled a 32-core desktop on disk I/O, a release that ran another checkout's tests, a /tmp full of test leftovers, and the changes that fixed each one, with the numbers.

Read

Linux

Recording a window you can't see

"Record this window" sounds like the easiest feature in a screen recorder. On Wayland it took my own capture pipeline, a recorder I couldn't hide from, an audio server with a long memory, and a parent-death signal the kernel quietly drops.

Read

Linux

The compositor is still drawing it

Building easyshot taught me that the hard part of a Wayland screenshot tool isn't the capture protocol. It's the state you can't see, like a bar that's closed but still fading, a cursor painted into every frame, or a service started just by asking it a question.

Read