By Roland CadavosTypeScript & engineering
TypeScript and Remote-First Engineering in 2020
When offices closed, clarity in code mattered more than ping-pong tables. Strict TypeScript and good boundaries became the glue for distributed teams.
2020 forced an overnight shift to remote work. The novelty wore off fast; what remained was whether your codebase could be understood asynchronously. TypeScript—already trending—became the default answer for teams that needed shared contracts between frontend and API layers without scheduling another Zoom. When you could not tap a teammate on the shoulder, types became the cheapest form of documentation that stayed in sync with implementation.
Strict mode was not just pedantry; it was documentation that could not drift. Combined with ESLint, Prettier, and CI that failed on type errors, teams reduced “works on my machine” incidents and made code review about design instead of syntax surprises. Reviewers could focus on architecture, edge cases, and naming because the compiler had already filtered an entire class of mistakes. That shift was especially valuable across time zones where feedback loops were measured in hours, not minutes.
Remote work also exposed collaboration debt. Repositories without consistent module boundaries became bottlenecks because ownership was fuzzy. Teams that invested in clear package boundaries—whether monorepo tooling or well-defined service contracts—had an easier time parallelizing work. TypeScript did not solve sociology, but it made integration points visible: when a function’s signature changed, consumers broke loudly instead of silently at runtime.
Communication patterns changed. Written RFCs, ADRs, and decision logs became essential—not as bureaucracy, but as load-bearing infrastructure for alignment. The best teams paired those documents with small, reviewable changes. Large, ambiguous PRs failed more often in remote settings because context had to be reconstructed from text, not shared room energy.
Operational maturity mattered as much as language choice. Staging environments, feature flags, and incremental rollouts reduced the fear of deploying on a Tuesday from home. TypeScript helped at compile time, but runtime confidence still came from tests, observability, and the discipline to roll forward with fixes instead of hiding behind long-lived branches.
Onboarding slowed for many companies, which raised the bar for internal tooling. Generators, example apps, and scripted setups became investments rather than nice-to-haves. A typed codebase lowered the cost of exploration because IDEs could guide newcomers through APIs without requiring tribal knowledge that lived only in someone’s head.
Burnout was real, and tooling could not fix unrealistic deadlines. Still, teams that automated repetitive chores—lint-staged hooks, consistent scripts, predictable CI times—protected focus time for deep work. TypeScript was one lever; predictable workflows were another. Together they reduced the cognitive tax of simply shipping.
The lesson that aged well: invest in tooling and conventions before you scale headcount. Remote teams that documented decisions in ADRs, kept PRs small, and automated checks shipped more predictably than those that relied on hallway context. In 2020, the hallway disappeared; the teams that thrived built clarity into the repository itself.