21

I am a Mechanical engineering graduate and recently joined a startup. I have a fair knowledge of Python and Machine Learning.

Right after one week, I was put on a project involving Image Processing, where I was asked to detect objects in the live video from a webcam. I was suggested to do that using TensorFlow, which I have no idea about. So I cloned a project from the Internet which was similar to the project I am working on.

I followed the instructions mentioned with the project but didn't get the expected results. Now I am unable to proceed any further, and don't know what else to do. I encountered a lot of problems, such as few errors, memory problem.

What I did was to search for the error on the Web and tried finding a solution. The project repository I cloned has a lot of interlinked files, and I don't understand any of what it says. I have nobody to guide me.

Is it the same situation in every startup, implying:

  • I lack the appropriate skills?

or

  • Is it a lack of guidance on the part of the company?

I am the lone one in the project and have no teammates at the moment.

Edit: Some clarifications I would like to do here. Yes, I am a mechanical engineer and it's not unusual here in India (especially start-ups) to hire people from other fields in the computer science domain.

And regarding my knowledge in Python and ML, I know the theory behind ML algorithms and have decent knowledge in Python as well. But Tensorflow is a deep learning library which I am not familiar with. And I did clone a repo which was done in Tensorflow, not any other library, so I did follow his recommendations.

I also tried to look at the basics of Tensorflow. But I realised it will take a lot of time. Something which I cannot do in an environment-like office. I had communicated the same to the manager and he agreed that it takes time as well. Still he comes up to me frequently and asks me whether its finished or not which makes me panic. Even then I don't have any idea how to proceed on how to learn without any guidance. Sure I can learn something but I end up with many doubts and things which are unclear.

79
  • I lack the appropriate skills?

or

  • Is it a lack of guidance on the part of the company?

Both.

  • You lack the required skills for the assignment (not your fault, but it's true). You cannot certainly gain the knowledge overnight. You need to understand the scope and ask for required training to update yourself about the domain and technology. Only then you will be able to make progress.

  • The company should have arranged for the required training / guidance, either internal or external, before assigning the work to someone with little-to-no knowledge about the domain and technology. Instead of dumping the work on someone, they should have a proper planning which includes training and induction.

Bottom line: It's not too late - inform your superiors about the roadblocks immediately and request for help / support and recommend to get trained on the technology / domain / toolset.

  • 3
    Concise and to the point advise! – Nimesh Neema Nov 21 at 10:11
  • 2
    @JoeStrazzere in that case I'd assume that the company does not have a resource pool allocated. would you randomly pull someone and stat assigning random work to them, without knowing their abilities first? also, OP said they were put on to the project, so it does not appear as a choice from OP, either. – Sourav Ghosh Nov 21 at 12:33
  • 1
    The only useful transferrable skill you learn in college is "how to learn." If the OP didn't learn that, he/she doesn't have the required skill set for any tech job. If the company wanted to hire somebody who needed hand-holding every step of the way, they might as well have taken a high-school leaver, not a university graduate. – alephzero Nov 21 at 17:19
  • 11
    In a small startup, it's likely that everyone is flying by the seat of their pants. The techies who started the company should have a good grasp of their core technology, but beyond that there's lots of improvisation and figuring it out as you go. – Barmar Nov 21 at 17:44
  • 9
    Oh no. I just realised something. The OP has a degree in mechanical engineering... The startup wanted a machine learning specialist... What do you get if you want someone to work on a machine ? Oh. Yes. Oh yes. Yes, you do... :( – Aaron F Nov 21 at 19:35
37

I see a number of red flags here.

First of all, you're a recent graduate, which means, without much experience in software development.

Second, you graduated in mechanical engineering, not software.

And they give you as your first task, to recognize objects in a video stream?

Seriously?

That's like asking someone who went through a 6-month training in boxing, to go and fight Mike Tyson.

In other words, the task they gave you is so much above what can be reasonably expected from a recent graduate, that it's not even funny. I'm not saying the task is not doable, but it's on a very senior developer level.

Yes, you do lack skills - but that's as expected for a recent graduate. You lack skills in relation to task they gave you, but they gave you something that should be given to people with 10+ years of serious professional experience.

The next red flag - they tell you to use some library/framework without giving you anything more precise, any documentation or existing working projects or anything.

And after a short look at TensorFlow - which I just did - it looks like a very general-purpose machine-learning thing, without specific examples for video signal recognition, meaning, it will probably require a lot of your code in addition to what it does.

This means two more things:

  • your bosses don't really understand it, nor do they wish to, they just want to dream up whatever they want and to offload the real work onto someone
  • they suffer from magical wand thinking - "there's this super-tool, if you just use it everything will work on its own, we can make whatever we want without real work or knowledge, just wave it and say 'Codus Writus' and it will magically become an application and do anything we wish for".

Oh, and the idea that I encountered again and again - that you can give very complex work to whoever, a student on a co-op term, a recent graduate, anything, and that it doesn't really matter, it's possible because we wish it to be...

Run away.

All this indicates the lack of basic understanding and thinking on their side, a lack of recognition of reality, and with such an attitude, it's not very likely that they will succeed.

Better to find a new job, in a normal company, while you still have this one, than to have to look for a new job from the position of not having one, when things finally fall apart.

  • I both agree and disagree with different bits of this answer. There are certain people who will pick up anything that's thrown at them. They might say "oh this looks complicated - it'll take me a few days/weeks/months to figure out" but they get right into the task and they work it out. There are other types of people who require constant guidance. And then most people in between the two extremes - once given some instructions they can do it on their own. I agree with your assessment of the bosses, though! – Aaron F Nov 21 at 19:28
  • oh, unless: the bosses could be the type of people who can pick up anything without guidance? If they are, then they could assume that everyone else is the same as they are, and are thinking: "anything is possible with a computer and an internet connection!" (I must admit, I used to be a little like that when it came to programming: I'd think "How hard can it be? It's just a list of instructions. Anyone can do it if they really want to! I remember when there wasn't even an internet to look things up on!" and so on) It could be that they don't even know OP's struggling? – Aaron F Nov 21 at 19:33
  • 1
    @AaronF : The boss might or might not be capable of picking up anything and getting it to work, but even if he is, that doesn't mean that a junior developer is equally capable. The boss must properly match the level of the task against the level of the employee. – Dragan Juric Nov 21 at 19:41
  • 4
    After more than a decade working in IT, I find that this sort of "magical wand thinking" is actually the norm, not the exception. It's a skill in and of itself -- being able to explain to your boss (or client) why the tool their golf buddy told them about isn't such a magic wand. The best developers I've met are pros at this, and I think this is a great opportunity for OP to hone that skill. (+1 for pointing that out) – Eric Seastrand Nov 21 at 21:24
  • 6
    more like fighting mike tyson after 6 months swimming practice – Aequitas Nov 22 at 1:50
20

The first thing you should do is ensure your boss has a realistic idea of your progress. Tell him "this is a lot harder than we thought", as soon as possible.

Do not fall into the trap of waiting until the deadline finally arrives to admit that you're nowhere near finished.

What you're trying to do is hard. It was impossible when many of us started work, and is still a new field. You're a junior member of the team, who hasn't done this before, so there's no shame in not being able to do it straight away.

Start-ups are often optimistic. It would have been great for them if you had been able to easily find a ready-made solution that did exactly what they wanted, but discovering that it's not easy is useful knowledge too.

google the error and find out the answer

Most of the time, that's what we all do! Most of the time, so many others have hit the same problem that the solution is easily available.

This time it's harder. You need to soak up as much knowledge as you can find in the field and become an expert. Don't fixate on the current problem, build a solid foundation. Read everything you can find. If it doesn't make a lot of sense at first, make a note and go back after looking up the bits that aren't clear. Work through tutorials, build test apps, make up your own tests.

But that takes time, so make sure you're boss is OK with it first. He may have other suggestions, or other priorities.

9

Communication is the key - Talk to your manager

It's clear that you are stuck with something and unable to make a progress. And that's a perfectly normal thing to happen.

The first line of action that you can take is to speak about it to your manager/supervisor. Share what you have done so far. Seek his inputs. Don't hesitate in mentioning that you have never worked on TensorFlow before. Also share that you have tried looking for a similar project available on the Internet, and got stuck trying to understand it.

There will always be something that we don't know about and will need to learn it or get necessary training on. Ask your supervisor/manager for getting the needed training guidance.

Importantly, your manager should be aware that you do not have knowledge about a particular tooling (and that's perfectly okay). Better not to set any incorrect expectations.

If no one else is a fluent with the needed technology, in fact, your startup may need to hire someone with the expertise. But that decision lies in the hands of the management.

However, at times it's not always feasible to have experts at hand, and startups are generally much constrained with obtaining resources. So Internet becomes your best friend here. You need to seek help on sites such as Stack Overflow. Try to break down the problem and small chunks, understand it clearly and seek answers from experts who have experience dealing with it. Sharing a clearly written query on Stack Overflow is the best, easiest and technically the cheapest way to get help.

I lack the appropriate skills?

That may be the case, but you can never know everything required to accomplish a task. Constant and on the job learning would be a recurring theme throughout your career.

Is it a lack of guidance on the part of the company?

Considering your company is a startup, it may be constrained in a lot of ways in terms of processes, personnel and training. That doesn't imply anything negative about the company, just that that's how startups are by nature.

You just need to talk things through and seek assistance. Please don't remain stuck struggling with the problem yourself, and set incorrect expectations.

Open communication is very important and I advise to do it as soon as possible.

Also note that constant learning is going to be a persistent part of your career. With time, you'll get better in where and how to do the necessary learning.

3

My advice: bail out now before its too late. Many people here will say it's a great opportunity to learn something new and expand your skill set. But you run an even greater risk (and a realistic one at that) of the startup sinking, and everyone laid off and the bosses bail out with large cash bonuses. You'd be stuck with some vague thing you do not understand. "What did you do at X?" "I made a live video AI service that identifies objects." "Wow that sounds great. What sort of technologies you used?" "Well I downloaded something random that I have no idea what it does or understand the errors I got. I just gave up until the startup went down hill." "Okay thank you we'll call you."

Think about it for a second: you have no idea what you're doing. They want you to make a key product. You don't have anyone to ask about something they should know about.That screams something is wrong. Either they think anyone can do it and looking for cheap labor. Or they are more interested in getting cash and if the product fails at least they sold it. Either way not good.

2

Is it the same situation in every startup, implying:

No but it's common enough to have startups with no real tech knowledge of how to make their lame idea work.

When a startup is unorganised technically it's often a sign of a funding mine. A working product is of lesser importance than marketing for more funding. So hiring the wrong people for a job can happen and doesn't really matter. Hiring a graduate and then tasking them with something they have no experience in unaided isn't a good sign.

  • 1
    Yup. The hiring managers had no idea that the OP's experience would not translate to other machine learning technologies / models, and the OP himself did not have enough experience to understand just how out of his depth, and unsupported he'd find himself. Sounds like a giant pile of brown stuff waiting to hit the proverbial fan. – AndreiROM Nov 21 at 14:57
  • 1
    I think this is a bit overly negative. When you're starting up like this, you often don't know the specific technologies that will be used. You hire someone you perceive as being able to figure things out. – Barmar Nov 21 at 17:47
  • 1
    @Barmar not a new graduate in another field – Kilisi Nov 21 at 17:49
  • 4
    Kilisi your answer and @AndreiROM 's comment just made me realise something: the startup owners are complete idiots and think that to do machine learning you need a mechanical engineer, because, y'know: mechanics work on machines, don't they! I really think that this is what has happened to the poor OP – Aaron F Nov 21 at 19:39
  • 3
    @AaronF who knows.... they're definitely not interested much in the product, or they'd have done the homework. Red flag on fire to me. – Kilisi Nov 21 at 19:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.