Hi, I'm Ahmed. I have worked on networks and servers in Egypt for more than twelve years, and that is still the core of what I do. On top of it I now build the software my own businesses and my clients run on: Odoo for cafés, restaurants and gyms, tools for the 3D printers I build at DeltaFabs, and the monitoring that tells me when any of it goes wrong before a customer does.
Almost everything I ship works in Arabic as well as English, right to left, because the people using it read Arabic first.
I run seven Ubuntu servers for my businesses and my clients — about ten Odoo instances, about twenty-five web sites, automation — behind nginx, Caddy and Traefik, and I built the tooling that looks after them.
- srvmon — server monitoring: a small Python agent on every server reports each minute to an n8n workflow, which also checks every site's status and certificate, and watches the routers and lines at each shop. It keeps a dashboard, sends a daily report and a daily security digest, attaches the logs to anything that trips a threshold, and alerts on Telegram and WhatsApp.
- Cable Watch — Egypt's internet arrives on a handful of submarine cables. A page maps every cable that lands in Egypt beside IODA's outage signals for the country and seven Egyptian ISPs, and alerts when the pattern looks like a cut rather than a local fault. Probes at each site trace the path out every fifteen minutes, so a changed route or a jump in latency on our own lines is reported too.
- One mesh, separate clients — every server and every site joined over Tailscale, with access rules that keep each client's machines out of reach of every other client's.
- Printers on the network, not on a box — point-of-sale tickets go straight from Odoo to network ESC/POS printers on port 9100, with a fallback printer when one is down, so a café keeps serving when a Raspberry Pi in the middle would have been one more thing to fail.
At DeltaFabs I build 3D printers and run them as a small farm — Voron Trident, Zero-G and machines of our own design, all on Klipper.
- klipper-auto-eject — Klipper macros that clear the bed between prints: cool down, push the parts off with a blade on the toolhead, check the bed is empty with the probe, start the next job in the queue. A web page sets it up for each printer, a farm view lists every printer on the network, and the docs come in Arabic too.
- FilaMind — I contribute to this open-source, self-hosted suite for Klipper and Moonraker: most of my commits went to filamind-flow, the control panel, then to filamind-screen, filamind-3d, filamind-core and filamind-setup.
I sell and customise Odoo, ERP and point of sale, for cafés, restaurants and gyms in Egypt. Most of it is client work in private repositories; the public part:
- odoo-custom-modules — custom modules for calculations, inventory, planning and point of sale.
- filamind-iot — a self-hosted IoT gateway addon for Odoo 19, paired with the image below.
- filamind-iotbox — a patched Odoo IoT Box image that takes the server address on its own settings page, instead of going through Odoo's hosted pairing service.
- filamind-iot-proxy — the replacement for that hosted service: pairing, certificates and a reverse tunnel, on your own machine.
Around the point of sale for my clients: direct ticket and kitchen printing, and payroll built from the attendance clock — working days, earned rest days, overtime, a reminder for a forgotten punch, and the payslip pushed to the employee's phone.
Most of my software lives in private repositories, because it belongs to the businesses that run on it:
- a mobile-first, Arabic field-operations app for merchandisers and in-store promoters — check-in by location and photo, shifts, leave and daily sales, with nearly four hundred merged changes so far;
- a SaaS for sellers on Amazon.eg, .sa and .ae;
- a restaurant web site with ordering, integrated with Odoo 19;
- attendance and operations for a security-guard workforce.
Ask if that is the part you need.
Networks and servers first: Ubuntu, Docker, nginx, Caddy, Coolify and Traefik, Cloudflare Tunnel, Tailscale, Suricata, mtr and traceroute. n8n for automation and alerting. Python for Odoo and back ends, TypeScript for web apps and PWAs, JavaScript and Klipper macros on the printers. ESC/POS printers, Raspberry Pi and Klipper/Moonraker at the hardware end. GitHub Actions for CI and releases.
- Switched off, no dialog for a print that ended without an eject — klipper-auto-eject, 28 Oct
- A switch to turn auto-eject off (enabled) — klipper-auto-eject, 28 Oct
- Updates page: an Update the boards button — klipper-auto-eject, 26 Oct
- install.sh --firmware: bring every board's firmware to Klipper's version — klipper-auto-eject, 26 Oct
- Tests: write the fake whiptail on Python 3.9 too — klipper-auto-eject, 25 Oct
- install.sh asks on one screen of tick boxes — klipper-auto-eject, 25 Oct
Happy to talk about networks and servers, monitoring, Odoo for cafés and restaurants, or running a farm of Klipper printers.



