opening the notebook…
00/00PG
A. ALZAEEM — FIELD NOTEBOOK VOL. 01 · KEPT SINCE 2023

Field Notebook

This is the notebook I actually kept, no cover story and no filter — the room in Gaza, the war, the border, starting over twice, and what I've built since. Every page below is true.

هاد الدفتر يلي فعلاً كنت بكتبه، بلا قصة غلاف وبلا تلميع — الغرفة بغزة، الحرب، المعبر، وبديت من الأول مرتين، وشو بنيته من هيك. كل صفحة قدامك، صحيحة مية بالمية.

GAZA, 2023 — NOW start reading ↓

What's inside

Eight acts, kept roughly in order. Jump to any of them, or just keep scrolling.

The room

I was in a room full of people learning to build things that hadn't existed yet.

كنت بغرفة مليانة ناس بيتعلّموا كيف يبنوا أشياء ما كانتش موجودة قبل هيك.

01desk A — laptop, open editor
02desk B — laptop, open editor
03desk C — laptop, open editor
04whiteboard — UI wireframes
the room, roughly sketched from memory

Past midnight

1class CounterState {
2  int count = 0;
3  // first widget that ever actually rebuilt
4  void increment() {
5    setState(() => count++);
6  }
printed it out just to believe it ran

I kept the docs open past midnight most nights. None of it came easy. I think that was the point.

كنت خلّي الدوكس مفتوحة بعد نص الليل أغلب الليالي. ولا شي إجا سهل. وبعتقد هاد كان المغزى.

Show, not tell

Demo day. I was learning to explain not just what the app did, but why I'd built it that way.

يوم العرض. كنت بتعلّم كيف أشرح مش بس شو البرنامج بيسوي، لأ كمان ليش بنيته هيك بالذات.

the gate, training center — walked out this way

Something real

...The start of something real, I remember thinking.

...بداية إشي حقيقي، هيك فكّرت بهداك الوقت.

GAZA SKY GEEKSJUL — SEP 2023

Then the war reached Gaza. Everything after this page happened to a version of me I don't fully recognize anymore, and none of it was easy to write down.

بعدين الحرب وصلت غزة. كل يلي بعد هاي الصفحة صار لنسخة مني مش عارف أتعرّف عليها هلقيت مية بالمية، ومكانش سهل عليّ إني أكتبه.

the room, days after — الغرفة، بعد كم يوم

Days later it was just a room again. I don't know where everyone went, and I've noticed I stopped letting myself wonder.

بعد كم يوم رجعت غرفة عادية بس. مش عارف وين راحوا الناس، ولاحظت إني بطلت أسمح لحالي أفكر بهيك سؤال.

waiting for one bar — مستني إشارة

The only work that mattered was refreshing a thread until it loaded. I'd stop breathing without noticing, then notice, then do it again.

الشغلة الوحيدة يلي كانت مهمة كانت إني أعمل refresh للصفحة لحد ما تفتح. كنت بوقف عن التنفس من غير ما أحس، وبعدين ألاحظ، وبعدين أرجع أعمل نفس الشي.

what fit by the door — يلي لحق ينحط عند الباب

Some things I carried. Most things I left, and I still catch myself doing inventory of a room that isn't there anymore.

أشياء قليلة أخدتها معي. وأشياء كتير أكتر تركتها وورا ضهري، ولسا لهلقيت بلاقي حالي بعد أغراض غرفة مش موجودة هلقيت.

The waiting

the crossing, as I remember the shape of it

Rafah. Waiting for permission to keep going was its own kind of exhausting — the specific fatigue of being able to do nothing to speed it up.

رفح. الا أستنى الإذن إني أكمل طريقي كان نوع تاني من التعب — تعب معيّن، إنك ما تقدرش تسوي ولا إشي حتى يسرع الوقت.

Then — somehow — the door at the top of the stairs was still there.

وبعدين — مش عارف كيف — الباب فوق الدرج كان لسا موجود.

Starting over

Egypt, February 2024. I was safe, and starting over with less than I'd had before. No plan yet. Just a decision: start again.

مصر، شباط 2024. كنت آمن، وبديت من جديد بأقل بكثير مما كان عندي قبل. ولا خطة لسا. بس قرار واحد: ابدأ من تاني.

Cairo, first night, from a rooftop I didn't know yet
a borrowed laptop, that first week

Unfamiliar

The hardest part wasn't finding a new laptop. It was that my own code didn't feel familiar anymore — like some of what the war took wasn't a place, but a few years of muscle memory. Somewhere in that first week, before there was any plan, there was just a decision: start again.

أصعب شي مش كان إني ألاقي لابتوب جديد. كان إن الكود يلي كتبته بإيدي اختلف علي — كأنه الشي الي الحرب اخدته مش مكان بس، لأ كمان كم سنة من الحرفة الي اتقنتها. بأول أسبوع، قبل ما يصير عندي أي خطة، كان بس في قرار واحد: ابدأ من جديد.

II
ACT II
First Light

Relearning Flutter from the ground up, slower this time. Then PITS — a team willing to bet on someone rebuilding from zero.

رجعت أتعلّم Flutter من الصفر، بس هالمرة أبطأ. وبعدين PITS — فريق قبل يراهن على واحد بيبني حاله من الصفر.

First light

I relearned Flutter from the ground up — slower this time, but it came back. Then PITS: a team willing to bet on someone rebuilding from zero. The first assignment was small. It still felt like the biggest thing that had happened to me in months. I'm still there — production UIs, intricate API integrations, legacy systems sustained in production — going on two years now.

رجعت أتعلّم Flutter من الأول — أبطأ هالمرة، بس رجعت لعندي. وبعدين PITS: فريق قبل يراهن على واحد بيبني حاله من الصفر. أول مهمة كانت صغيرة. بس حسيتها أكبر إشي صار معي بشهور. لسا معهم لهلقيت — واجهات إنتاج، تكاملات API معقدة، أنظمة قديمة بضل صاينها شغالة بالإنتاج — قربت سنتين هلقيت.

FLUTTER DEVELOPER · CONTRACTPITS, MAY 2024 —
III
ACT III
The Gap in the Library

A client needed a horizontal weekly calendar. pub.dev didn't have one.

زبون كان محتاج تقويم أسبوعي أفقي. مكتبة pub.dev ما كان فيها ولا وحدة.

The gap

I sketched it by hand first — grid math, edge cases, what happens at a year boundary — before a line of Dart.

رسمتها بإيدي الأول — حسابات الشبكة، الحالات الصعبة، شو بيصير عند حدود السنة — قبل ما أكتب ولا سطر Dart.

YEAR BOUNDARY
grid math, pencil first

Ten time zones

1class CalendarEngine {
2  final tz.Location zone;
3  // handles the 2011 date-line shift
4  DateTime resolve(int y, int d) {
5    if (zone.name == 'Pacific/Apia') {
6      // Samoa skipped Dec 30, 2011 entirely
7    }
8  }
9}
$ pub publish
✓ 160/160 pub.dev score
✓ 10 time zones, 1900–2100
253 tests passed · 7 ★

horizontal_weekly_calendar. Published — not just for one client anymore, but for anyone who needed it.

horizontal_weekly_calendar. نشرتها — مش بس لزبون واحد كمان، لأ لأي حدا محتاجها.

"this saved me a week."

a stranger's issue comment, months later

That's the part no metric captures.

هاد الجزء يلي ولا رقم بيقدر يوصفه.

IV
ACT IV
The Call

The calendar got noticed. Dawerha's CEO, Safaa Ayad, called about leading their technical team. The app underneath was in worse shape than the pitch admitted.

التقويم لفت النظر. مديرة Dawerha، صفاء عياد، اتصلت تحكي معي عن قيادة الفريق التقني عندهم. البرنامج من جوا كان أسوأ بكثير مما قالوا لي.

ui legacy db core cache auth utils api
the dependency mess, as I found it

The tangle

Weeks of just reading code before I wrote any. Untangling inherited complexity is a discipline of its own.

أسابيع كتير أقرأ كود بس، قبل ما أكتب ولا سطر. تفكيك تعقيد ورثته عن غيرك، هاي بحالها مهارة قائمة بذاتها.

Leading meant explaining the plan as often as executing it. The team needed to trust the direction, not just the code.

القيادة كانت تعني إني اشرح الخطة قبل ما انفذها. الفريق كان محتاج يوثق بالاتجاه، مش بس بالكود.

No downtime

I replaced it in pieces, with no freeze and no downtime, while it kept running underneath me — the strangler-fig approach, mid-transformation.

بدّلته قطعة قطعة، من غير ما يوقف ولا ثانية، وهو شغال بشكل طبيعي طول الوقت — نفس أسلوب "strangler-fig"، بنص التحول.

LEGACY CLEAN ARCH.
strangler-fig, mid-migration

Up 60%+

Render performance up 60%+ — the product of systematic profiling and a disciplined rebuild, not a patch. The team, and the app, in far better shape than either began.

أداء الرندر طلع فوق 60%+ — نتيجة تحليل منهجي وإعادة بناء منضبطة، مش مجرد ترقيع. الفريق، والبرنامج، صاروا بحالة أحسن بكثير من يوم ما بدينا.

DEV TEAM LEAD · CONTRACTDAWERHA
FRAME RENDER, MS (LOWER IS BETTER) BEFORE · 38MS AFTER · 15MS
clean architecture, benchmarked
V
ACT V
Building the Thing Itself

Somewhere in the migration, a side project — different energy than the office pages before it.

بنص الترحيل، طلع مشروع جانبي — طاقة مختلفة تماماً عن صفحات الشغل يلي قبله.

ops-ronin

$ ops-ronin ps
CONTAINER   STATUS    IMAGE
a3f9c1      running   distroless:4.1mb
$ ops-ronin logs a3f9c1 --tail 3
talks to the docker api directly.
no shell-outs. no injection risk
by design.
ops-ronin, as I actually run it

A command-line tool engineered to abstract away Docker's sprawling flag surface. Watching someone else's terminal execute it months later was a specific, quiet kind of pride.

أداة سطر أوامر مصمّمة لتختصر تعقيد Docker الكبير بأمر واحد بسيط. لما شفت حدا تاني بيشغّلها من ال terminal تبعه هو بعد أشهر، حسيت نوع هادي من الفخر.

1,153 DOCKER HUB PULLS4.1MB DISTROLESS IMAGE

velocli

A backend and an IDE plugin, built together. The plugin talks to the backend over SSE, every payload sealed with AES-GCM before it leaves the machine. It's live on the JetBrains Marketplace now.

باك إند وإضافة IDE، بنيتهم مع بعض. الإضافة بتحكي مع الباك إند عن طريق SSE، وكل حزمة بيانات متشفّرة بـ AES-GCM قبل ما تطلع من الجهاز. هلق موجودة عالـ JetBrains Marketplace.

$ velocli auth status
SESSION     CIPHER      CHANNEL
9f2c-4a1   aes-256-gcm   sse://active
$ velocli push --plugin
uploading patch, sealed client-side.
0 plaintext bytes on the wire.
velocli-backend + velocli-android-plugin — الباك إند والإضافة

The shelf

Seven things I've actually shipped, kept together on one shelf instead of scattered through the pages above. Every repo is real and public.

سبعة أشيا فعلاً بنيتها ونشرتها، محطوطين مع بعض على رف واحد بدل ما يضلوا مبعثرين بالصفحات يلي فوق. كل مستودع حقيقي ومتاح للعامة.

↗ horizontal_weekly_calendar 160/160 pub.dev · 253 tests · 7 ★ Open-source Flutter calendar kit, 13 calendar surface types. Rebuilt the date engine after finding real-world edge cases like Samoa's 2011 date-line shift. حزمة تقويمات مفتوحة المصدر بـFlutter، بـ13 نوعاً من واجهات التقويم — أعاد بناء محرك التواريخ بعد اكتشاف حالات استثنائية مثل تحوّل خط التاريخ في ساموا 2011. ↗ ops-ronin 1,153 Docker Hub pulls · 4.1MB Terminal UI for Docker built on Bubble Tea (Go). Talks to the Docker API directly — no shell-outs, no injection risk by design. واجهة طرفية لإدارة Docker بلغة Go عبر Bubble Tea — تتواصل مباشرة مع Docker API دون استدعاء الصدفة، فتُزال مخاطر الحقن بحكم التصميم. ↗ velocli-backend Go · AES-GCM · SSE Catalog and distribution service behind VeloCLI, a Flutter project-scaffolding tool. AES-GCM package integrity, REST + Server-Sent Events. خدمة الفهرسة والتوزيع خلف VeloCLI — تشفير AES-GCM لسلامة الحزم، مع REST وأحداث SSE للتحديثات الفورية. ↗ velocli-android-plugin JetBrains Marketplace Companion Android Studio / IntelliJ plugin for VeloCLI, published on the JetBrains Marketplace. إضافة مرافقة لـAndroid Studio / IntelliJ لأداة VeloCLI، منشورة على متجر JetBrains. ↗ wadood_api Go · Gin · Twilio · EN/AR i18n REST API for pet-ownership records. Per-device JWT sessions, Twilio SMS/OTP verification, and bilingual English/Arabic support — the same instinct this site now uses. واجهة REST لسجلات ملكية الحيوانات الأليفة — جلسات JWT لكل جهاز، تحقق عبر Twilio، ودعم ثنائي اللغة إنجليزي/عربي. ↗ NotSoSecuredAuth OWASP M2 Deliberately vulnerable demo app illustrating OWASP Mobile Top 10 risk M2 — plaintext storage side-by-side with the correct keystore-encrypted approach. تطبيق توضيحي غير آمن بقصد، يشرح الخطر M2 من قائمة OWASP — تخزين نص صريح جنباً إلى جنب مع الأسلوب الصحيح المشفّر عبر Keystore. ↗ cicdapp 4-stage CI · 3 Android versions Jetpack Compose Android app carrying a full four-stage CI pipeline — lint, Detekt, JaCoCo, Espresso — on every push, across 3 Android versions. تطبيق أندرويد بواجهة Jetpack Compose يحمل خط تكامل مستمر من أربع مراحل عند كل رفع كود، عبر 3 إصدارات أندرويد.
VI
ACT VI
Proof

This time, building something of my own — from a real problem worth solving.

هالمرة، ببني الشي إلي أنا — من مشكلة حقيقية تستاهل الحل.

Proof

RecallEdu. Sole technical foundation of a learning platform — systems architecture, product strategy, the parts no one else sees — built from a whiteboard sketch of how students actually study and remember. Flow accelerators saw it and put $5,000 behind the idea — the first outside capital on it, validation the direction was real, with plenty of road still ahead.

RecallEdu. الأساس التقني الوحيد لمنصة تعليمية — بنية الأنظمة، استراتيجية المنتج، الأجزاء يلي محدش بيشوفها — بنيتها من رسمة عالسبورة عن كيف الطلاب فعلاً بيذاكروا وبيتذكروا. مسرّعة Flow شافت الفكرة وحطت وراها 5,000 دولار — أول رأس مال من برا، دليل إن الاتجاه صح، ولسا في طريق طويل قدامنا.

FOUNDING ENGINEER · OWN PROJECTRECALLEDU, SEP 2025 —
recalledu.net see it running → recalledu.net
✓RecallEdu — founding engineer, Sep 2025
✓Flow accelerators — $5,000 pre-seed
·Orange Corners — nominated
·Nowa, by Flat6Labs — nominated
proof points, as I filed them
VII
ACT VII
Now

December 2025. Same room this started in, in spirit — further along now.

كانون الأول 2025. نفس الغرفة يلي بديت فيها، بالروح — بس هلق أبعد بكثير.

Taught forward

TRAE, ByteDance — MENA Fellow. I'm teaching the workflows that got me here — same instinct as that first demo day in Gaza: show the room exactly how it works, not just that it works.

TRAE، ByteDance — MENA Fellow. بعلّم نفس الطرق يلي وصلتني لهون — نفس الإحساس يوم أول عرض بغزة: فرجي الغرفة بالظبط كيف الشغلة بتشتغل، مش بس إنها شغالة.

MENA FELLOW · FELLOWSHIPTRAE, BYTEDANCE

Further along

The room this started in, in spirit — same discipline, further along. Not four jobs at once — a track record, one engagement closed or handed off before the next began, plus the one I've stayed with the whole time.

نفس الغرفة يلي بديت فيها، بالروح — نفس الانضباط، بس أبعد بكثير. مش أربع وظايف بنفس الوقت — سجل شغل، كل مشروع بيخلص أو بسلّمه قبل ما يبدأ التاني، وواحد ضل معي طول الوقت.

01Dawerha — dev team lead, contract, closed
02RecallEdu — sole technical founder, ongoing project
03TRAE MENA — fellowship, community lead, term-limited
04PITS — contract role, since 2024, still active
contracts & projects, present day — not four jobs at once

What I actually do

Outside the day jobs, I take on independent Flutter and Go engagements directly: full applications architected end to end with BLoC or Riverpod atop Clean Architecture, shipped natively to iOS and Android alike; REST APIs in Go with Gin, MySQL, and production-grade authentication; architecture migrations for teams outgrowing a codebase that can no longer keep pace; and custom Flutter packages — engineered, tested, and published to pub.dev, not handed over and forgotten.

برا شغل الدوام، بآخد مشاريع Flutter وGo مستقلة مباشرة: تطبيقات كاملة مبنية من الفكرة لحد النشر بـ BLoC أو Riverpod فوق Clean Architecture، عالـ iOS والأندرويد سوا؛ REST APIs بلغة Go مع Gin وMySQL ومصادقة بمستوى بيئة الإنتاج؛ ترحيل معماري لفرق كبرت على كود ما عاد قادر يواكبها؛ ومكتبات Flutter مخصّصة — مهندسة ومختبرة ومنشورة عالـ pub.dev، مش بس مسلّمة ومنسية.

01Flutter apps — BLoC/Riverpod, Clean Architecture, iOS + Android
02Go REST APIs — Gin, MySQL, JWT auth
03Architecture migrations — zero-downtime, strangler-fig
04Custom Flutter packages — tested, published, maintained
the gig-work page, if this notebook had one

Why Canonical

If I'm honest about where I want this to go: Canonical. Not as a name to drop — because of what they actually build. Ubuntu, and the infrastructure under it, is the kind of software most people never think about — the same way nobody thinks about a power grid until it's gone. I've spent two years engineering systems in that same register — a calendar library, a CLI, a set of devtools — meant to disappear into someone else's workflow and just work. Watching a stranger's terminal run a command I wrote is still the best feeling I know.

إذا رح كون صريح لوين حابب هاد يوصل: Canonical. مش حتى أرمي الاسم — لأ بسبب شو يلي هني فعلاً بيبنوه. Ubuntu، والبنية التحتية يلي تحته، هاد نوع البرامج يلي معظم الناس ما بيفكروش فيه — نفس ما محدش بيفكر بشبكة الكهربا لحد ما تقطع. أنا قضيت سنتين بهندس أنظمة بنفس النغمة — مكتبة تقويم، CLI، أدوات مطورين — المفروض تختفي جوا شغل حدا تاني وبس تشتغل تمام. إني أشوف في ال terminal تبع حدا غريب عني بتشغّل أمر أنا كتبته، لسا أحلى إحساس بعرفه.

Canonical does that at a scale I can't fully picture yet — security patching, cloud infrastructure, the plumbing an enormous amount of the internet quietly depends on. I have Flutter and Go now, and I'm putting in the hours toward cybersecurity next — on purpose, the same way I put in the hours toward everything on the page before this one. I'd like to spend the next stretch of this notebook helping build software people never have to think about — because it's just working, for someone, somewhere — the way a working door at the top of a staircase once mattered more than anything I'd built.

Canonical بيسووها على مستوى لسا ما بقدرش أتخيله مية بالمية: أمان وتحديثات، بنية سحابية، العدة يلي كمية ضخمة من الإنترنت متكلة عليها من غير ما تحس. هلقيت عندي Flutter وGo، وبحط الساعات نحو الأمن السيبراني هلق — بقصد، نفس الطريقة يلي حطيت فيها الساعات على كل إشي بالصفحة يلي قبل هاي. حابب أصرف المرحلة الجاية من هاد الدفتر بساعد ابني برامج الناس ما بتضطرش تفكر فيها — لأنها بس شغالة، لحدا، بمكان ما — متل ما باب شغال فوق درج مرة كان أهم إشي بنيته.

AIMED ATCANONICAL — FLUTTER · GO · CYBERSECURITY, NEXT

The reference pages

Everything above was the story. Here's the equipment list I keep at the back of every notebook — what it was actually built with.

كل يلي فوق كان القصة. هاي قائمة العدة يلي بخليها آخر كل دفتر — الي استخدمته فعلاً حتى أبني كل هاد.

LANGUAGESDart · Go · Kotlin · Java · C# · SQL
MOBILEFlutter · BLoC · Riverpod · Clean Architecture · Android (Kotlin, Compose)
BACKEND & SYSTEMSGo · Gin · gRPC · MySQL · Docker · Kubernetes · REST · SSE
SECURITYAES-GCM · JWT · OWASP Mobile Top 10
CI / DEVOPSGitHub Actions · Detekt · JaCoCo · Espresso
ALSO SHIPPEDvelocli-backend (Go, AES-GCM, SSE) · velocli-android-plugin (JetBrains Marketplace) · wadood_api (Go/Gin/Twilio, EN/AR) · NotSoSecuredAuth (OWASP M2 demo) · cicdapp (4-stage CI, 3 Android versions)
EDUCATIONMobile Apps Developer, UCAS (2026, in progress) · Diploma of Education in IT, AL Hams (2023) · Android Development w/ Kotlin, Suad Sabah Technical School (2021)
CERTIFICATIONSFlutter Bootcamp Diploma — Palestinian Ministry of Education · Backend Engineering with Go · Data Structures & Algorithms, Zero To Mastery (2026) · Technical Training Certificate, Gaza Sky Geeks
LEARNING NEXTCybersecurity — next skill, on purpose, same as every one before it
kept up to date — mostly
VIII
ACT VIII
The Signal

Everything converging into a signal reaching outward.

كل شي بيتجمع بإشارة وحدة، طالعة برا.

I used to think the hardest part would be the technical stuff — the architecture, the edge cases, the things that break at 2 a.m. It turned out to be a floor, in a room that wasn't mine yet, looking at code I'd written a hundred times before and not recognizing it. For a while, a car door closing outside could stop a sentence mid-thought. Nobody warns you that fear has a memory of its own, longer than yours.

كنت مفكر إن أصعب شي رح يكون التقنيات — البنية، الحالات الصعبة، الأشياء الي بتنكسر الساعة 2 بالليل. طلع أرض غرفة، بغرفة مش إلي لسا، بحدّق بكود كتبته مية مرة قبل هيك، ومعرفتهوش. لفترة، صوت باب سيارة بسكر برا كان يقدر يوقف جملة بنص تفكيري. محدش بيحكيلك إن الخوف إله ذاكرة لحاله، أطول من ذاكرتك.

I'm not writing this page for sympathy. I'm writing it because the version of this notebook that skips it wouldn't be honest. PITS, the calendar nobody else had built, Dawerha, RecallEdu, a room full of people I get to teach now — all of it traces back to that floor, and to learning that starting over is a decision you make on purpose, then keep making, for as long as it takes. I'm still making it, on purpose, most days now without having to think about it — which might be the actual proof it worked.

ما بكتب هاي الصفحة حتى حدا يتعاطف معي. بكتبها لأنه أي نسخة من هاد الدفتر بتقفز عنها مش رح تكون صادقة. PITS، التقويم يلي محدش بناه، Dawerha، RecallEdu، غرفة مليانة ناس بعلّمهم هلقيت — كل هاد يرجع لهداك الأرض، واني اتعلم من جديد قرار بتاخده بقصد، وبتضل تاخده، طول ما بدها. لسا بآخده، بقصد، أغلب الأيام هلقيت من غير ما أحتاج حتى أفكر فيه — يمكن هاد أكبر دليل إنه نجح.

— Ahmed

— أحمد

If found, please return

The rest — commit history, the pages that don't fit in a notebook — is one message away.

الباقي — تاريخ الكوميتات، الصفحات يلي ما بتلاقي مكانها بدفتر — على بعد رسالة وحدة بس.

EMAILahmed@recalledu.net
LOCATIONCairo, Egypt — remote-ready
GITHUBgithub.com/AhmedZaeem LINKEDINin/ahmedalzaeem
AIMED ATCanonical — Flutter · Go · learning security