Niraj ChaurasiyaBuilding systems under uncertainty

The App Started Building Me

I thought I was building a software product. Somewhere between the bugs, failed assumptions, and rewritten systems, the product began changing the builder.

For more than a year, I thought the goal was simple: build the app. Write the code, fix the bugs, improve the system, and eventually arrive at the product I had imagined.

I wrote code, fixed bugs, tested ideas, and rebuilt entire systems. Each version appeared to move the product forward. But the most important changes were not happening only inside the repository.

Every bug exposed an assumption

A bug was rarely just a broken line of code. It often revealed something I had assumed about users, data, timing, architecture, or the behavior of the system.

The code made those assumptions visible because reality refused to behave exactly as the model in my head expected.

I thought I was building the app. The app was also building me.

Failure changed meaning

A failed version stopped feeling like wasted effort. It became evidence about what I did not yet understand.

  • Bugs taught patience.
  • Failed ideas taught humility.
  • Rebuilding taught that attachment to a version can obstruct the system.
  • Uncertainty taught me to separate confidence from truth.

The product is not the only output

A project produces code, interfaces, users, and documentation. It also produces judgment, habits, scars, questions, and a changed understanding of what building requires.

Connected work

This writing belongs to a larger system.