3

I started a new job 3 months ago. During the interview process, I was told I could pick whatever language I want to use to do the project. A couple of weeks ago we started the project, and I was told I must use Node.js, typescript,event driven programming, and express, none of which are things I know.

I have never extensively worked in any flavor of javascript before, but I have many years (>5) of python/java experience as well as a little flask experience. Since I have a variety of programming experience, I assumed I could just learn as I go.

The project has only one other developer, and he has used these technologies extensively. How can I contribute to this project effectively? I don't want to "make him" do everything, but that is sort of what is happening - I try to help in small ways and often struggle to produce anything useful. I explained to him the situation, and he sort of avoids me now and just kind of does everything on his own. I have tried to do "catch ups" with him, short little chats to talk about the project progress, but it sort of feels like I'm forcing him to explain everything he's done to me. Probably, it is annoying to him.

We have a full agile team of 11 people which includes 2 software engineers (including myself) and a tech lead. My boss (who I interviewed with and knows what I know/don't know) is not on the agile team.

Only the other software engineer knows that I don't know the underlying technologies (the tech lead does not know what I know or don't know). I did not intentionally omit this to anyone - I genuinely thought up until today that I could learn the tech very quickly and it wouldn't matter (I have learned other techs quickly before - c# was very easy for me since I knew java).

On the one hand, the simplest approach is: "just learn javascript, typescript, express, and event driven programming". Optimistically, this would take at least a few months. The project is due 3 months from now though. Really dunno how realistic this approach is.

A second approach is: just ask the other dev how best to help him, do what he says, stay out of his way, and don't annoy him. This might include devops stuff, quality assurance, code refactors/removing code smells, whatever else I can do. Well, if I do this approach, then I may be perceived as contributing minimally to the project, and I may end up getting a bad performance review or maybe even fired.

A third approach is: tell the tech lead that I don't know the underlying technologies. Best case scenario is that he adjusts his expectations downward and gives me more leeway to contribute what I can as I learn, or I could get placed onto another team/project. Worst case scenario - I get kicked off the team or even fired.

At the moment, I am trying a combination of the first two approaches. Is this my best route? Is there an approach I'm not aware of? Which approach should I take here?

I am aware I can't "hide", since anyone who looks at the code repository (such as the tech lead) could see that I am not really contributing. And it will be obvious based on what I say I accomplished or did not accomplish during daily scrums and other catch ups. On the other hand, it seems counter productive to "loudly announce to everyone that I don't know any of this stuff".

  • " During the interview process, I was told I could pick whatever language I want to use to do the project" Is the person that told you this involved in the current project in any way? – sf02 Sep 23 '20 at 20:38
  • 1
    @sf02, That person is my boss, and he is not involved in the current project. – TheComeBackKid Sep 23 '20 at 20:40
  • Maybe you should speak to him and remind him about your knowledge and what was conveyed to you in the interview. – sf02 Sep 23 '20 at 20:41
  • 1
    Lot of silent downvotes on this one - anyone care to explain why the downvotes? Is this a bad question about the workplace? – TheComeBackKid Sep 24 '20 at 3:44
10

You forgot the fourth approach which is all 3. First you talk to your tech lead and tell them about your deficiencies. You make them understand you know you aren't ideal on the project and you're ready to do whatever you need to do to contribute and make the project a success. Second, you talk to the other dev and go straight for the honesty. Accept the "crap" parts of the project wherever you can, and free them up to do max contribution. Get both of their opinions and advice during code review and always be receptive to feedback on it. Third, get cracking and start learning. JavaScript is (IMO) a pretty simple language and with a programming background you should be able to accomplish most tasks once you have the basics down.

Honesty and a positive attitude are your friends here. Admit to your shortcomings in this area, and do everything you can to account for them either by learning to turn them into strengths or taking the banal tasks away from the other devs and making them more productive. A positive attitude is a bigger help on most teams than highly advanced skills. Show up, contribute wherever you can, and be ready to accept feedback and learn.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .