Five engineering opinions I changed my mind about this year

Short ones. No diagram, no ceremony.

YYasir Arfat1 min read

In no particular order. I will probably change my mind about half of these again before the year is out — that is sort of the point.

TypeScript should be enabled by default

I used to think defaulting to TS for a small project was over-engineering. After watching three "small" projects grow into the thing the company actually depends on, I think the inverse: defaulting to JS is the over-engineering — you are betting that you can predict the future shape of the codebase. You almost never can.

Monorepos are mostly a build-tool problem

The thing people hate about monorepos is usually their tool chain (slow builds, fragile caches, mystery script orchestration). The benefits — shared types, atomic refactors, one PR for a feature — survive every tool change. Replace the tool, keep the monorepo.

Optimistic UI is overrated for low-frequency actions

For chat and reactions, yes, latency is the experience. For everything else — settings, profile edits, deletes — show a real spinner, get the real answer, and quit lying to the user. The bugs that came from "what if the server rejects this" cost more than the perceived speed bought.

Written by

Yasir Arfat

If this helped you

Send it to someone building something similar.

Read next

Tangents that earned their keep

Discussion

Be the first to reply

Sign in to reply, react, and follow the thread.

Sign in

The thread is empty — for now. Reasonable take? Pushback? Drop it here.