Starting a new job is hard. It might take 6+ months to really hit one's stride.
Depending on the organization, pockets of legacy tech, turnover, culture of technical excellence (or not) and a hundred other reasons, the state of tech could be anywhere on a spectrum of terrible to amazing. And most likely it leans a little more toward terrible.
There are many things competing for an IC's time:
- Interviewing
- Reviewing PRs
- Meetings
- Eng allhands
- Team standups
- Org standups
- Company days
- Demo days
- and on and on and on
Internal projects tend to have a perpetually-alpha quality. I've seen it at every company I've worked for. It's rare to escape the sticky gravity well of perma-alpha. (One trick for doing it is to open source your thing, when appropriate).
To combat this, as software engineers we should leave things in a better state every time we interact with them, even if we don't technically own the thing.
For example, if I need to make a change to an existing codebase, I hope and pray that I can clone the repo and very quickly find:
- links to the environments it's running in
- how to build (this should be 1 command that works on everyone's machine)
- docs (even some basic pointers)
- specs for expected shapes of data - hopefully you use a typed language
- how to run the tests
- a link to the project's CI/CD
- etc...
As an engineer, I want to interact with well-defined black boxes. Until I have a reason to understand the internals and turn the black box into a white box by consuming available materials, including the code itself, which is the ultimate source of truth, as well as the other hooks the authors have given me.
A system is a composition of black boxes, each with its own unique characteristics.
A great engineer should be taking the apps and services they work on beyond alpha.
A great SRE or platform architect should be applying the same holistic excellence to the collection of apps they care for. How are you exposing a consistent interface into the system? Is it a GraphQL BFF? A consistent adherence to gRPC with well-defined Protobufs?
Leave it better.