Adapt to your environment
I recently saw a debate on whether you should start a team with 5 senior software engineers or with one senior engineer and 4 junior engineers. One of the common arguments made was how senior engineers do not write code and can only direct junior engineers.
My take is that a senior engineer who cannot write code when they need to, is a terrible one – not necessarily because of their inability to program, but more importantly because they cannot adapt to their environment.
As a senior engineer, I have to catch whatever curved balls is thrown at me – and these come with different work needed, e.g.:
- There are periods where I’ll spend most of my time gathering data by running queries, talking to other engineers or aligning with other orgs – and basically I don’t write any code
- There are times where the design/vision is known and what’s left is just to execute – in that case I’ll be churning code like a machine.
Engineers should be able to adapt works both ways, meaning that:
- A senior engineer in a large company must be able to adapt to a smaller environment (e.g. with less staffing available, less tools working out of the box etc.)
- A senior engineer in a startup must be able to adapt to a larger environment (e.g. with more engineers, with a larger code base, with more processes etc.)
Being able to adapt to your environment is key to your success and growth – this is one of the reasons so many engineers fail to grow after joining FAANG after a startup (and vice versa). This was definitely one reason why I struggled in my early days at Google (I couldn’t understand how to work across teams or through processes).
What’s your take on senior engineers and their ability to code?