ENGINEERING NOTES

Notes on building real systems

Plain, practical writing on websites, platforms, and automation for businesses in Saudi Arabia.

Projects

Erasing customer data under the Saudi PDPL, in practice

Everything written in Arabic about the Saudi PDPL is a legal guide. This is what erasure means inside an actual database: which tables, what remains, and why.

14 October 2026
Notes

The device fleet: encryption, key escrow, and a handover record

Three steps separate a company device from a personal one used for work. The cheapest is encryption, the most important is the record, and the most forgotten is key escrow.

11 October 2026
Projects

Building a Microsoft 365 environment from zero for a Saudi SME

The correct order for standing up a corporate environment, and the decisions that are hard to reverse later, from an actual implementation rather than a vendor guide.

8 October 2026
Projects

SharePoint as systems, not folders

Most organisations use SharePoint as a filing cabinet on the internet. The difference between that and working systems is the metadata model, and this is what that means in practice.

5 October 2026
Projects

Computational design: outputs regenerated by a command, not by hand

I made every visual output in a design project reproducible by one command instead of by hand. The reason was not speed, it was that a client's last-minute change should not mean redoing everything.

1 October 2026
Projects

A 3D element in the hero without destroying performance

3D in the first screen looks impressive and kills performance and accessibility if built wrong. These are the four constraints I kept, so the scene stayed and so did the speed.

28 September 2026
Notes

Extracting structured data from PDF contracts

A contract is a file humans read and systems cannot. This is how to turn it into rows, where it fails, and why it must fail loudly.

25 September 2026
Notes

Portal automation that resumes after a stop, and hands over to a non-programmer

Entering hundreds of records into an official portal is repetitive work that collapses at the first interruption. These two properties turn a script into a tool you can hand over.

22 September 2026
Notes

Approvals inside Teams with item-level permissions

An employee request system succeeds or fails on one detail: can an employee see other people's requests? Here is how it is set, and why you should not break permissions across thousands of items.

19 September 2026
Notes

Send-on-behalf from a shared mailbox: the setup that works

Having staff send from the company's official address rather than their own is a recurring requirement. This is the correct setup, and the permission distinction that trips people up.

16 September 2026
Projects

When to choose edge computing and when not to

The edge is not a faster server, it is a different execution model with different constraints. These are the constraints I actually hit, and when they work in your favour.

13 September 2026
Projects

Do not marry your architecture to one model provider

I ran the same agent system on two different model families. The goal was not saving cost, it was proving the design does not collapse if the provider changes.

10 September 2026
Projects

Human approval before anything reaches the customer

The decision that most affected client trust in an automated system was not technical: everything going out passes a person first. This is how I built it so it does not become a bottleneck.

7 September 2026
Projects

A circuit breaker for the AI gateway

When the model gateway stops responding, a naive system keeps retrying, slowing everything and burning quota. A breaker stops early and recovers gradually.

4 September 2026
Projects

A validator that rejects any output without a source

The only approach that worked for me against hallucination in a production system was not prompt engineering. It was a layer that rejects any item without a traceable source.

1 September 2026
Projects

Multi-agent systems in production: split by responsibility, not by task

Most agent systems are split by task, which produces a layer of complexity with no benefit. The split that worked for me was by responsibility: who owns the decision, and who owns the channel.

29 August 2026
Projects

A private offer page instead of an attachment: what you gain

A private link tells you what an attachment cannot: whether it was opened, when, and how often. That turns your follow-up from a guess into a decision.

26 August 2026
Projects

Turning a vague client request into an executable scope

"I want a website" is not a plan. This is how I turn an open request into a written scope the client approves and the system records, so the argument ends before it starts.

23 August 2026
Notes

Why is hreflang missing from a Next.js site when it is actually there?

I nearly reported a fault that did not exist. Searching a built page for hreflang finds nothing, because React writes the attribute with a capital letter in the source.

20 August 2026
Notes

Why does GA4 return 403, and what separates disabled from denied?

Two completely different situations return the same status code and need two different fixes in two different places. The difference is in the message body, not the code.

17 August 2026
Projects

Visual testing that measures the DOM instead of comparing screenshots

Every guide suggests comparing screenshots. I tried it and left it, and built a check that measures the elements instead. The result: no baseline images to maintain, no flaky tests, and it catches failures screenshots cannot.

14 August 2026
Projects

A signed contract locks, and editing it returns it to draft

The most dangerous state in any contract system is not forgery. It is the text changing after the client agreed to it, without the client knowing. This is the rule that prevents it.

11 August 2026
Projects

An audit trail the application cannot rewrite

An audit log protected by application code falls with the first bug. Moving the protection into the database took three lines, and the guarantee now survives the application being entirely wrong.

8 August 2026
Projects

A complete business system on Cloudflare D1: five services, one database

From a visitor opening a page to a signed contract and a scheduled instalment, across five services sharing one SQLite database at the edge. The architecture, what I chose, what I rejected, and what it cost.

5 August 2026
Notes

The Systems Engineer Mindset: Understand the Real Problem Before You Build

Before you build any solution, ask yourself: did you understand the real problem, or did you build on assumptions? A real story that changed how I approach understanding and solving problems.

19 July 2026