Opportunities-are-everywhere
One of the most common “complaints” I hear from engineers is the lack of scope or opportunities. In growing companies, my 2 cents is that the problem isn’t the lack of opportunities, but whether you are able to recognize and grasp them.
It’s a bit hard to provide an exhaustive list of where the opportunities might be for you, but in general if you look back at what you have worked on and try to make it your space – e.g. develop a strong ownership on that domain, you will find impactful work. Here are some examples that may help:
- If you worked on making the release process better and are now able to release once a week, the question would be “why not every day?” What’s missing to be able such cadence – this is where you will find tons of opportunities, maybe you lack regression testing, a read only environment where you can tee traffic, more detailed monitoring (e.g. can you automatically find new error messages in STDERR? Can you classify every error in your servers?
- If you worked on a legacy server to fix some issues, what would it take to either delete it or make it a first class citizen? Can the new server even properly handle the old traffic? If you are stuck with old clients, can you build a shim to forward traffic to the new server?
- If you worked on a new product feature, what prevented shipping it a few X times faster? What infrastructure was missing? Was the review process too slow? Was the release too infrequent? Was the code too tricky that required multiple rounds of fix?
The TL;DR is that if your company is growing, there are things to do – in many large tech companies, staffing is the bottleneck. For what it’s worth, staff software engineers are supposed to own their space and be able to figure out what to work on – if this is your goal, this is a skill you have to develop