ENGINEERING NOTES

Notes on building real systems

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

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
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
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
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