2016-09-07

I'm in one of the big tech firms in Silicon Valley. I joined straight out of college(with a master's degree from a reputed US university) over an year ago into my current team, of 6 developers(including me) and 2 QE. Since then I've been given mainly maintenance tasks i.e being used as a stooge to other programmers. About an year has passed by and have nothing to add to my resume. We follow a semi agile method i.e we have daily standups where we report our progress by walking over a kanban board, have demos every 2 weeks(thats the length of our sprint), giving feedback is openly exchanged, everything gets code reviewed before merging to master branch etc

But I see some issues with our team which I don't know how to handle.

i) We are a service team i.e our product is not what the end user uses, rather we build service API's which the client apps consume(lets call them A,B and C). So when we get new feature requests from A or B or C, they don't file tickets, neither does our Program Manager / Project Manager (yes , we have both, not sure if its common) insist them that they do so. One of the developer / tech lead from team A/B/C shoots the email to any of the 2 senior developers in my team and they resolve the spec and edge cases on the email without any meeting with our team. This usually happens within a day. And one of the senior developer builds it quickly in a 4-5 days(i.e no tests, no documentation, but sometimes they do it cleanly). So new features will be code complete without them even being discussed in the sprint planning. Naturally, all the interesting work gets done by them and leave the grunt work such as writing tests, doing load testing, writing documentation to me after the work is done(I've to point out that it is time consuming, especially adding tests). If any compliance task / maintenance tasks need to be done, everyone by default asks me to volunteer for such things. Don't get me wrong here, I don't mean that I don't want to do maintenance tasks and feel its extremely important to my improvement as a programmer, but I don't want to be doing only such kind of tasks in my job. I want to write code and deliver features too. In other words, if there is any "unsexy" work, I am always expected to do it.

Naturally, my manager thinks that shipping out features is the goal of our team and I am not appreciated for my efforts even though I put in 100%. I'm unable to demo much during our demo session(because much of my time goes in doing maintenance work) and every one else will be displaying their new cool feature and I feel completely lost at that point.

ii) We don't assign points to the stories. We don't have a burn down chart and other than the manager and senior developers, I have no idea if we are lagging behind the schedule or not. Whenever something is not right i.e top priority, manager and few senior developers get in a meeting and decide what to do(again, I have no idea when these happen and neither am I told about this, I only hear about this when some action comes out of this and I am asked to do so). So when I talked to my manager about i), I was told that if I do my assigned tasks fast enough, I can do any interesting thing I like to. The problem is as soon as I finish one task in 2-3 days, I will have another maintenance task lined up without any breathing space. Also , I never get an idea if I am taking too much time since we don't have points assigned.

Few other things about me,

1) A PhD grad also joined our team on the same day I joined and even he has adopted this practice of not doing any load testing / writing docs for his features and asking me to do such work as I have "become acquainted" with it now and the team "believes that I can do it faster". Not that I am jealous of him, but sometimes I do feel bad that even though we joined at the same time, he is able to do interesting work and I've been doing mainly grunt work.

2) I'm not a US citizen, I'm here on student visa so quitting the job and searching for new one/being part of a startup is not an option for me. I've to manage finding a new job along with my current one if I have to change company. This thought has crossed my mind multiple times. I believe I can easily crack interviews as I had offer from one of the other big companies after graduating from college, pretty good at algo/ds/CS fundamentals and good at delivering features too, but taking time off for interviewing would be a problem for me. Sometimes I feel that my manager knows this problem of mine, that I can be exploited by giving any type of work and I'll put up with it. My pay is not too good, but not too bad either. I know few of my classmates getting paid lesser than I am.

EDIT : I added this info only to point out that I can't quit my job
without any backup. If you want to argue about visa status /
nationality instead of addressing my real concern, please start a
separate thread instead of hijacking this one. Also I am very happy with my pay, so don't be judgemental about it

3) I'm the youngest in my team (25 years) and other than the the guy who joined with me who is in his mid 30's, everyone else is in their 40's or older. Most people have PhD and I feel that my opinions are not being taken seriously. Also most people have PhD which makes them think that I am unable to grasp a lot of things. That is not true though, I can understand everything that is going on our team. But I'm not sure why I was hired of that is the case. I'm also not good at communicating verbally(I'm working on improving this). I'm good at written communication though.

I am not happy with my work and I am not sure what I can do to get out of doing maintenance only work mode(and for my company).

PS : posting this with a throw away account as I want to remain anonymous and can be tracked down by my stack overflow profile as my teammates know my username on stack overflow

Show more