I'm relatively new to the software industry. I've worked about 1 year at the government as a programmer and about 3 months at a small eCommerce company. Both companies are fairly small and the development team consists of a (non-technical) manager, senior dev, and junior dev (me).
In both of these positions, I always find myself out of work to do.
- Most of the time I'm waiting for clarification/information/files and find myself with nothing to do until then.
- I always fix small bug fixes on time and send emails upon finishing, asking what's next.
- I'm waiting on another developer's dependency so that I can work on my part of the project.
- I've finished a project and am waiting for my next task.
Sometimes I'll be out of work for a couple hours, sometimes I'll be out of work for days. During this time, I'll run tests, clean up code, read documentation, and add small quality-of-life features to applications.
My question is: Is this normal for developers? Should I just implement a feature without asking for clarification and then present my results? Should I present a project or a feature that I could work on? What should I do during my downtime?
I find it difficult to get through the day when there's nothing on my plate.