Skip to content
View abdellah-darni's full-sized avatar

Highlights

  • Pro

Block or report abdellah-darni

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
abdellah-darni/README.md

Abdellah Darni

I build the layer that decides whether a server recovers on its own at 2 a.m. or someone has to drive in and fix it. Most of my work is backend services and the bare-metal Linux infrastructure they run on, with regular detours into the systems-level C underneath.

I write up the debugging rabbit holes I fall into, mostly so future-me remembers how I got out, at blog.darni.org.

📫 LinkedIn


Featured Engineering

  • DeepDame: Real-time multiplayer checkers. I architected the game backend: a framework-free stateless engine, Redis-backed live state with atomic per-move updates, an LLM AI opponent with graceful fallback to a legal random move, and a STOMP/WebSocket layer validated to ~6,000 concurrent sessions via k6 on k3s. I then led the Flutter client with a feature-folder architecture using Riverpod, Freezed, GoRouter, Dio cookie-auth, and STOMP-over-SockJS. Shipped to production as a single-node Docker deployment.

  • ToDoist: A terminal task manager written in C. Multi-panel ncurses interface using the menu, form, and panel libraries, with a non-blocking input loop, a live clock, and terminal-resize handling. SQLite storage through the C API: multi-statement writes wrapped in transactions with rollback on error, UUID primary keys (libuuid), a tasks/tags many-to-many schema with foreign keys, and soft deletes. Makefile with release, debug, AddressSanitizer, Valgrind, and gdb/lldb crash-report targets; builds on Linux and macOS, with a GitHub Actions build check.

  • Homelab: A Proxmox host serving my self-hosted stack as version-controlled Docker Compose behind a single Traefik v3 reverse proxy. Dual-provider routing pairs Docker label discovery with a watched file provider that brings non-Docker backends (Proxmox, a Jellyfin LXC) under the same TLS and middleware. Wildcard TLS via the Cloudflare DNS-01 challenge, a middleware chain enforcing LAN/Tailscale-only access with hardened security headers, and per-container capability drops and resource limits. Remote access over a Tailscale mesh, with a subnet-router LXC alongside per-VM clients. Writeup on the blog.

Latest posts

https://blog.darni.org/blog/observability/   https://blog.darni.org/blog/deepdame/   https://blog.darni.org/blog/architecting-modular-home-lab/

Stack

My stack

Traefik  Proxmox  Tailscale 

Pinned Loading

  1. ToDoist ToDoist Public

    A keyboard-driven terminal task manager in C — ncurses TUI, SQLite persistence, UUID-keyed tasks and tags, with full debug/ASAN/Valgrind build support.

    C 3

  2. sefault-dev/DeepDame sefault-dev/DeepDame Public

    A production-ready multiplayer Checkers platform featuring real-time matchmaking, live chat, and an adversarial AI opponent.

    Dart 4 2

  3. home-lab home-lab Public

    Self-hosted home lab — Docker Compose stacks for 20+ services, routed through Traefik with Cloudflare wildcard TLS and LAN-restricted middleware.

  4. dotfiles dotfiles Public

    Arch Linux dotfiles managed with GNU Stow — Hyprland, Neovim, Kitty, Waybar, Zsh/Starship, all themed with Catppuccin Mocha.

    Lua 2

  5. Spotify-Ad-Muter Spotify-Ad-Muter Public

    Python script for Linux (Hyprland), MacOS and Windows that auto-mutes the system when detecting a Spotify ads

    Python 5

  6. sefault-dev/SkyBooker sefault-dev/SkyBooker Public

    A Java-based airline reservation system with support for multi-passenger bookings, real-time availability, dynamic pricing by class and passenger category, and administrator tools for statistics an…

    Java 7 5