I have recently joined a 15 people startup as a Junior Software Developer. It's my first permanent position. I works under CTO who is also co-founder of the company.

He usually create one task for me (generally takes me few days to finish), explain it to me, and then I start working on it. One one of the important thing is he is not at office a lot.

Two things generally happens with me:

I finished the task but he is not here anymore. So I have nobody to ask for another task

I am stuck in middle of a task (need some credentials, or want to discuss something). Problem with this is I cannot predict this in advance. I am working on the task while figuring out everything at the same time. And suddenly I get stuck and need immediate advice before I can make any further progress. He kind of feels annoyed when I ask for his advice even if I happily wait for more than half hour for it.

Note:

Since we are <1 year old startup, we don't have old legacy code that I can refactor in free time.

I still don't have full understanding of the complete system. So it's bit difficult to take initiative. I have even tried creating some minor feature in free time, but they never got merged. Most likely he didn't found them useful. It's very discouraging for me at least.

I have not that problem being out of tasks. I understand it happens a lot with junior employees. But I feel like guilty when I am not doing nothing. They are paying me to work, and I am not working.

Also what I am supposed to do in such cases. I find it very difficult to pretend to be working (I feel I am trying to cheat them by pretending to be working). Should I play games, visit Facebook, watch YouTube, or what?

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

3

Two words, self learning! Take the time to learn the software, other languages, things that might be useful in the future
– DrakenJan 20 '17 at 9:36

- Self learning as Draken proposed is a good avenue - Asking to pair programming to develop a relation with your coworkers and get a better understanding of the system - Asking to give a hand or take a task, do not be afraid to go from one coworker to another - Uncovering a technical uncertainty like rendering PDF from the current system if there is no PDF rendering - Trying to prototype ideas that evolve the current plateform, like if the UI is slow, check if it is possible to make it faster, you will gain something by just finding the why the current system is in this state
– Sebastien DErricoJan 20 '17 at 14:59