Skip to content
Rafay Memon

Process

Before I build it, I draw it.

I don't start by opening an editor. I start by understanding the system. This is the eight-stage process I follow, and how the drawing changes along the way.

The eight stages

How I build systems

01 / 08

Understand

Understand the task, business problem, constraints, users, and the outcome that is actually wanted.

who is it for?what breaks?what does success look like?constraints?IntakeWebhookOrchestratorn8nAI stepClaudeCRMGoHighLevelBackendNode.jsHumanHandoffRetry queuefound in testingrough on purpose, nothing decided yetthe right tool, not the familiar onereviewed before any code existsimplementing the approved drawingreality ≠ the drawingfirst design is rarely the final oneAPPROVEDedge casesdata flowreliabilitybusiness behaviorDELIVERED
  1. Understand: Understand the task, business problem, constraints, users, and the outcome that is actually wanted.
  2. Plan: Draw the proposed system visually, usually in Excalidraw or another architecture tool.
  3. Choose: Select the stack that fits the problem, instead of forcing the problem into a familiar tool.
  4. Approve: Review the proposed architecture before any implementation begins.
  5. Build: Implement the approved system.
  6. Verify & Iterate: Compare the real implementation against the original drawing. The first design is rarely the final one, so both the build and the architecture get updated.
  7. Review: Functionality, workflows, edge cases, data flow, business behavior, reliability, and production readiness.
  8. Deliver: Hand over the completed and reviewed system.

Then and now

The first drawing is rarely the final one.

The same system at the planning stage and at delivery. Real systems expose edge cases that cannot be predicted beforehand, so the architecture is updated together with the implementation.

Planned

who is it for?what breaks?what does success look like?constraints?IntakeWebhookOrchestratorn8nAI stepClaudeCRMGoHighLevelBackendNode.jsHumanHandoffRetry queuefound in testingrough on purpose, nothing decided yetthe right tool, not the familiar onereviewed before any code existsimplementing the approved drawingreality ≠ the drawingfirst design is rarely the final oneAPPROVEDedge casesdata flowreliabilitybusiness behaviorDELIVERED
Fig. 03 — the first sketch

Delivered

who is it for?what breaks?what does success look like?constraints?IntakeWebhookOrchestratorn8nAI stepClaudeCRMGoHighLevelBackendNode.jsHumanHandoffRetry queuefound in testingrough on purpose, nothing decided yetthe right tool, not the familiar onereviewed before any code existsimplementing the approved drawingreality ≠ the drawingfirst design is rarely the final oneAPPROVEDedge casesdata flowreliabilitybusiness behaviorDELIVERED
Fig. 04 — after verification and review

Contact

Have something interesting to build?