Skip to content
journey

Try Oz

By Over Alternative

12 Decisions that shaped, 4 Problems faced,
3 Alternatives considered

23 development events captured

OverviewDecisionsProblem Solving

How they built

Started by defining the core data model and backend before moving into the interface.

The initial approach changed after encountering performance issues in the processing flow.

Most implementation choices prioritized simplicity and correctness over premature scalability.

Decisions that shaped the build

12 total

01 PostgreSQL over MongoDB

Needed strong relationships between users, projects and development events.

MongoDB was considered, but the relational model better matched the data being built.

View reasoning →

02 Moved processing to a background worker

The first implementation handled processing inside the request cycle.

After response times increased, the candidate moved the work outside the request.

View reasoning →

03 Kept authentication server-side

Chose server-managed sessions instead of storing authentication state entirely in the browser.

This kept revocation and access control close to the application data.

View reasoning →

Problems they worked through

4 total

01 Processing slowed as event volume grew

Synchronous work made requests increasingly expensive. Moving enrichment to a worker restored predictable response times.

02 Session tests were hard to reproduce

A controlled clock made expiry behavior deterministic and removed timing-dependent failures from the suite.

Captured with Journey · Decisions between the commits.