The first thing to recognize about coding is that there are different kinds of coding.
Personally to me, the most important to trade off when writing code is to find the write balance between:
How long the code will live
How fast do you need to write the code
Different kinds of coding (but not limited to):
Serverless / faas / functions as a service
Full Stack Engineer
Properties you should balance when writing code:
Time to write code
Short term vs long term
Short lived code can be more inconsistent.
Fast to write
Generally "throw away" code
The longer a code is supposed to live the more readable and maintainable it should be
Better for long term
Speed can be improved with proper testing
Reusing abstractions or existing frameworks
Easy to read code
Stylized with a prettier
Design documentation, why certain design decisions were made
Refactoring, or rebuilding as needed
"full stack" focuses on an engineer's pure execution capability across the stack
"product engineering" focuses on an engineer's capability to deliver the end goal: a product.
Needed for an early stage startup.
Delivers "good enough" solutions
Less focused on technical numbers questions:
For example: Design a cache that can support 10TB.
How many machines?
How many queries can each machine handle?
Continually starts projects from scratch
May have surface level experience with lots of different technologies
Most likely to have breadth over depth
Most likely not used to firefighting in a product company
Because they always start on new code, they dont have the ability to inherit code from others, and thus dont know how to share code to be handed over
No experience with dealing with technical debt, or reducing it
No experience with scaling