As a new manager, your changed responsibility is not to build features, but to build systems to support the people building the features. It can be a challenge to figure out how to prioritise problems alongside the day to day pastoral care of your team.
Powered by technologies such as React and GraphQL, we see frontend applications reach a level of scale and complexity that was traditionally associated with backend engineering and service architectures.
When things go wrong, we tend to focus on mistakes, miscalculations, and deficiencies in design. By limiting our investigations to the details of what went wrong, we ignore a far richer and more interesting source of learning: how things went right.
One of the major challenges faced by teams working on high growth product is of performance. Systems that are built for a given scale of users often fail to deliver the necessary throughput when run with orders of magnitude of load more than what they are built for. Software teams have historically resorted to a myriad set of ways in scaling performance.
Psychological safety is one of the leading indicators of a high performing team. Yet, forging deep human relationships and building trust can be difficult when your team is distributed or largely interacts on screens.
Being faced with an important choice that feels impossible to know the answer to is stressful! This comes up a lot when making business decisions, but also applies to technical choices (e.g. "should my company run 100% on AWS" or "is serverless a fad or a great idea?").