AHH Ali Hajj Hassan
Contact

Engineering notes

How the systems were designed

Technical decisions, architecture patterns and lessons from systems I've built. The case studies show what was built; these notes explain why it was designed that way — constraints, tradeoffs and what went wrong included.

Featured note

Thera Architecture · Backend · Reliability

Designing multi-store checkout as a saga

How Thera turns one purchase across several independent stores into per-store orders — a preflight, idempotency at two levels, compensation and careful locking instead of one giant database transaction.

6 min read

In this note

  1. 01 The problem
  2. 02 Constraints
  3. 03 Why not one transaction?
  4. 04 Preflight
  5. 05 Idempotency
  6. 06 Compensation
  7. 07 Concurrency
  8. 08 Tradeoffs
  9. 09 Lessons
  10. 10 What I’d change next

More notes

  1. Brainex Thera Argus Security · Backend

    Role-aware UI is not authorization

    Hiding a page from a role is good UX and no protection at all. Where the real checks live in a multi-tenant system, why they should fail closed, and how to test the boundaries rather than the buttons.

    4 min

  2. Thera Brainex BYC Internationalization · Frontend

    One interface for English and Arabic

    Translation is the easy part of a bilingual product; direction is what breaks layouts. Five practices for English/Arabic interfaces with right-to-left layouts, and the checks that keep them from regressing.

    3 min

Notes × systems

Which systems each engineering note draws on
System 01 Designing multi-store checkout as a saga 02 Role-aware UI is not authorization 03 One interface for English and Arabic
Thera Yes Yes Yes
Brainex No Yes Yes
Argus No Yes No
BYC No No Yes
  1. 01 Designing multi-store checkout as a saga
  2. 02 Role-aware UI is not authorization
  3. 03 One interface for English and Arabic

Details from employer and client systems are generalized; examples from Thera, my own product, go deeper. Code samples are simplified illustrations, not production source.