Process

How I run projects

The sequence I follow from idea to release, and the rules I keep on every production change. Working software every two weeks is the best defence against a plan quietly slipping.

From idea to release

The 90-day plan

Read the full playbook →
  1. Weeks 1 to 2

    Discovery

    Pin down the one core loop that has to work for the product to exist, plus the target user and the single metric that proves it.

  2. End of week 2

    Scope cut

    Every idea goes into one of two lists: needed for the core loop, or parked for version two. If it does not serve the loop, it does not ship first.

  3. Weeks 2 to 3

    Architecture

    Project structure, data model, API contract, auth, environments and CI/CD in the first sprint, not the last. A few days now save months later.

  4. Weeks 3 to 11

    Build in sprints

    Four two-week sprints, each shipping a working, testable slice of the core loop, with a demo at the end of every one.

  5. Weeks 11 to 13

    Launch and harden

    Store submission, analytics and crash reporting, a real onboarding flow and load tests on the busiest paths. Then, and only then, the version-two list.

On every release

My production rules

I learned these by running my own SaaS, where a bad deploy is my problem at 2am.

Back up first

No production write happens without a backup taken minutes before it.

Keep a way back

Every deploy has a tested rollback. If I cannot undo it, I do not ship it that way.

One change at a time

Small releases mean that when something moves, you know exactly why.

Run the database first

Schema changes go in by hand, are checked, and only then does the code that needs them deploy.

Verify on live

A real request and a real screenshot on the live system. A green pipeline is not proof.

Keep secrets secret

Credentials stay out of code, logs and chat.

Measure, then claim

Numbers before opinions

Before and after

I measure first, change one thing, and measure again the same way. If the number did not move, the fix did not work.

This website is an example

I rebuilt it after measuring a real problem: at a slow moment on a Karachi connection, the old pages froze their video for up to 1.9 seconds. I found the cause, fixed it properly and proved it with frame-time measurements on the live site.

Want your project run this way?

Tell me where things stand and I will tell you what I would do first.