Data that isn't allowed to be wrong.
I’m a senior software engineer and systems architect. For nine years I’ve built data-intensive platforms in two domains where a wrong number is somebody’s real problem: finance — double-entry ledgers, reconciliation, AP automation — and medicine — AI diagnosis, claims, and lab data pipelines.
Lately a lot of my work is automating engineering itself. I founded my current team’s AI platform: agents that take a ticket to a reviewed pull request, and a fleet of independent reviewers that reads every backend PR before a human does.
I work remotely from Egypt, comfortably from Kotlin services and Postgres query plans down to Rust distributed systems.
how this page works
It’s a review queue. Every file you open gets marked off in the tree, the same way peel — a diff reviewer I wrote — stages a file once you’ve read it. Press ? for the keymap, or P to skip to the end and post your review.
whoami
I started coding at 12. It’s the thing that rearranged my life — I got my first paid job at 16, and I’ve been doing this professionally for nine years since.
I like being thrown at problems I don’t know how to solve yet. That’s most of why my work looks the way it does: a medical knowledge graph one year, a Rust sync engine the next, an agent platform after that. Throw yourself into a bit of chaos, make it out alive, and the next thing stops looking impossible.
Outside work I sing and play guitar, and I live in Egypt with my wife, Rola.
education
Kafrelsheikh University — Bachelor of Science, Computer Science, 2018–2022.
languages
English, fluent (professional working proficiency). Arabic, native.
Light
Light is an agentic accounting platform — an AI-native general ledger that closes the books for companies operating across entities, countries and currencies. I’m a backend engineer on the team that owns AP automation, procurement, the approval engine and the accounting ledger, in a Kotlin modular monolith.
ai engineering platform
I founded and led it. The core is an autonomous Claude Code agent that turns a GitHub issue or Linear ticket into a reviewed pull request — phased planning and execution workflows, MCP access to Slack, Linear and Datadog, and a migration from the Anthropic API to AWS Bedrock for compliance.
On top of that runs a multi-agent PR review fleet, now on every backend PR: independent architecture, security, product-logic and code-standards reviewers posting inline findings, rolled out from a pilot allowlist to the whole backend org.
I also wrote the tooling layer the org develops against — reusable planning, debugging and documentation skills, an automated PR-authoring and release workflow, and per-module instruction files that cut agent context overhead on a large codebase.
ledger and platform work
- Migrated the ledger’s hottest endpoints from offset to keyset pagination over multi-million-row tables — index-seekable row comparison, capped offset depth, read-replica routing and the covering indexes to match.
- Designed a durable resumable CSV export pipeline: checkpointed S3 multipart uploads with a 72-hour resume window and hybrid sync/async delivery, so multi-million-row exports stopped exhausting the connection pool.
- Built the bill-to-purchase-order matching and goods-receipt flow at the core of three-way matching — PO number extraction from invoice OCR, automatic matching with outcome metrics, and interactive Slack confirmations that let requesters confirm delivery without entering the app.
- Instrumented the domain in Datadog — orphaned-approval gauges, query-shape and pagination-depth distributions — turning silent data-correctness failures into alertable signals, and extracted a reusable idempotency module now used across four domains.
- Kotlin
- Java 17
- Gradle
- PostgreSQL
- Exposed
- Guice
- JAX-RS
- AWS
- Kubernetes
- Terraform
- Datadog
- JobRunr
- Claude Agent SDK
- MCP
Ankor.app
I led technical development of a financial reconciliation platform for e-commerce businesses, from inception to production.
- Architected a multi-tenant SaaS platform processing millions of transactions monthly at 98%+ reconciliation accuracy, integrating 5+ payment providers — Shopify, Klarna, PayPal, Plaid and Adyen.
- Built a four-tier data pipeline (raw → staging → fact → app) with dbt and Python ETL, enabling transaction matching, multi-currency support and automated double-entry journal generation.
- Delivered the full product surface: React/TypeScript frontend, GraphQL API and NestJS backend, with settlement tracking, audit trail and Excel financial reporting including an ML-based refunds accrual forecast.
- Established the engineering foundations — monorepo tooling, test framework, CI/CD to GCP, and a split transactional (PostgreSQL) / analytical (BigQuery, MotherDuck) data architecture.
We took it to production and 4 paying customers in 3 months, then wound the company down in November when the funding didn’t come together.
- TypeScript
- React
- NestJS
- GraphQL
- PostgreSQL
- BigQuery
- MotherDuck
- dbt
- Python (dlt)
- Airflow
- GCP
- Auth0
Adia Health
Formerly Flow Health. I led technical development of an AI-powered medical assistant for laboratories, physicians and insurers — AI diagnosis and test recommendation, claim filing, fee schedules, vector search, and real-time cross-database replication.
- Recovered a completely lost production database — on the order of 1.5 billion records — by replaying events reconstructed from Kafka, CloudWatch and S3.
- Migrated the primary datastore from Cassandra to DynamoDB, improving availability and performance while cutting maintenance and cost substantially.
- Integrated vector search into the medical knowledge graph using AWS OpenSearch, tuned for high-volume ETL workloads.
- Introduced a graph database for relationship-heavy queries and reworked the data services to remove race conditions and ACL overhead, cutting aggregation and read latency meaningfully in both passes.
- Built ingestion pipelines normalising unstructured medical history, and embedded software streaming results off Sysmex lab analysers.
- Set the team’s CI, code-standards and RFC practices.
- TypeScript
- React
- NestJS
- Cassandra
- DynamoDB
- AWS Neptune
- PostgreSQL
- Python
- OpenSearch
- SageMaker
- Kafka
CoatConnect
I accelerated development of a web portal connecting doctors to medical events and conferences.
- Optimised performance and bundle size down to a 1.7s Largest Contentful Paint, and added server-side rendering for SEO.
- Built the shared UI library that shortened new-view delivery, a web scraper enriching the platform with medical event data from multiple sources, and integrations for payments, analytics and marketing automation.
- TypeScript
- React
- NestJS
- Node.js
- MongoDB
- AWS
BirdCloud
My first professional role. I built software digitalising client operations across legal, medical and laundry businesses.
- Built a shared UI and utility library that cut delivery time enough to take on noticeably more clients and grow revenue, working directly with clients to scope and shape delivery.
- TypeScript
- Angular
- React Native
- MySQL
- C# .NET
peel
Every local diff-review tool is read-only, so reviewing and git add end up as two passes over
the same diff: you read it in a viewer, then walk the whole thing again in the terminal,
re-deciding what you decided five minutes ago.
peel is one pass. Read a file, press s, and it’s staged, folded away, and the next
file is in front of you — what’s left open is what’s left to review.
- Staging is the review. Whole files only, so nothing can write the wrong lines into your index.
- Notes keep up with the code. Each comment freezes the file it was written against as a git
object, so when an agent edits above it the note moves with its line instead of staying on a
number. Code rewritten out from under a note isn’t guessed at — the note says
outdatedand shows where it was. - Notes an agent can read. Comments go to JSON that Claude Code reads through a bundled skill, so “address my review comments” needs no copy-paste.
- Read-only bases.
--revreviews further back than HEAD;--prreviews a GitHub pull request from any checkout, or none at all. A PR’s notes, folds and narrative are filed under the PR rather than inside one clone, so you can pick the pass back up anywhere.
brew install ziadalzarka/tap/peel
This site borrows its interaction from peel — the tree on the left is a review queue, and
reading a file marks it off.
- Go
- Bubble Tea
- git
- Homebrew
Magmooty
An education management platform for private tutoring centres in Egypt, where the network is not a given. Everything works offline first and reconciles later.
- Sync engine in Rust on SurrealDB/RocksDB: master-replica replication over the LAN, and chunked last-write-wins batching with a hybrid logical clock for online sync — authenticated with RSA-2048/RS256 JWTs for zero data loss and MITM resistance.
- A Go-to-Rust FFI bridge, compiling a WhatsApp bot to a C static library (CGO
c-archive) that exposes an async C ABI consumed through Rust unsafe bindings. I wrote up how that works in an article. - A UDP broadcast auto-discovery protocol with subnet calculation and multi-NIC handling, plus a BLE peripheral scanner for proximity-based attendance.
- An Axum REST API with record-level permissions and time-bound 2FA, behind a Docker cross-compilation pipeline targeting 6 architectures with signed auto-updates and RTL Arabic PDF generation.
- Rust
- Axum
- Tauri
- Go
- SurrealDB
- RocksDB
- SQLite
- TypeScript
- Svelte
- Docker
iCloud Image Labeler
Generates keywords, titles, descriptions and OCR text for photos and videos, then writes the metadata back into Photos.app so the library becomes searchable. Built for a local model in LM Studio — your photos never have to leave the machine — but it speaks to Ollama, vLLM or any cloud provider on the same OpenAI-compatible API.
Photos.app ──▶ Discovery ──▶ Export ──▶ LLM ──▶ Writer ──▶ Photos.app
osxphotos Pillow API PhotoScript
Discovery queries the library for media with no keywords, filtered by date and type. Export handles JPEG with HEIC and iCloud fallbacks, and pulls frames out of video via ffmpeg. The writer goes back in through AppleScript automation. Photos process in parallel, videos sequentially.
- Python
- osxphotos
- PhotoScript
- Pillow
- ffmpeg
- LM Studio
- Ollama
Articles
I write when I hit something the internet didn’t already explain properly. Mostly that’s been low-level plumbing — the Go-to-Rust piece came straight out of building Magmooty’s WhatsApp bridge, after a week of finding nothing that covered the async case.
Videos
Occasional explainers, usually about the layer underneath the thing everyone uses.
What I take on
I take on consulting and advisory work alongside my day job. Four things I’m genuinely good at, with the evidence for each — if what you need is next to one of these rather than inside it, it’s still worth asking.
- 01
Distributed and offline-first systems
Sync engines, replication topologies, conflict resolution and clock design for products that have to work when the network doesn't. Also the recovery side: reconstructing state from event logs when a datastore is gone.
Magmooty's Rust sync engine · a ~1.5B-record production database recovered from Kafka, CloudWatch and S3
- 02
Fintech data and reconciliation
Payment-provider integrations, transaction matching, double-entry ledger design, and the pipelines underneath them. The work is usually less about the happy path than about what a reversal, a partial settlement or a re-run does to your numbers.
5+ providers at 98%+ match accuracy at Ankor · AP, procurement and ledger at Light
- 03
AI agents in the engineering loop
Agent platforms that do real engineering work rather than demos — ticket-to-pull-request workflows, multi-agent code review, MCP server access, and the skill and instruction layer that makes agents useful on a large codebase.
Founded and led my current team's AI platform, now reviewing every backend PR
- 04
Architecture review and product build
Zero-to-production product engineering, or a second opinion on a system before you commit to it. Kotlin/JVM, TypeScript, React, NestJS, Postgres, AWS and GCP.
Nine years, five companies, two of them from inception
Get in touch
Tell me what the system does, what it’s doing wrong, and when you need it — that’s usually enough for me to say whether I’m the right person.