Growing engineering teams is a challenging task that requires a mix of technical and organizational skills. As an engineer working in fast-growing startups, I've had the opportunity to scale engineering teams from a handful of people to dozens of engineers. Here are some of the best practices and solutions I've encountered along the way.
Derisking Product Rollouts with Feature Flags
Why Documentation Matters
Making Architects work in Software Teams
Steady State means Continuous Rewriting
Choosing an Implementation for Unique Identifiers
Reducing SaaS Complexity
Preview Environments for every Pull Request with Pulumi and Vercel
Product Versioning for Fast-Moving Teams
Versioning Features for Sustainable Product Evolution
Improving observability with annotated build information
Improving releases with service-splitting
Running a commit-based release infrastructure
Preventing Increasing Fragmentation
Boring Technologies, Reliable Foundations
Reaching Remote Acceptance
Rapid TypeScript Development with esbuild and Estrella
Fundamental Design Decisions for Scalable Systems
Documenting Design Decisions using RFCs and ADRs
Scaling Release Systems
Building a Testing Culture
Boost Your Team's DX By Formatting All Git Commits