I am 2 months into a 6-month co-op (extended internship for those unfamiliar) centered around machine learning. Thus far I have been assigned to work on a couple of projects, all of which have been very educational and informative - and I enjoy every project save for one.

The one project I do not enjoy working on is with the company's full stack team developing an API for a database other teams rely on for storage. The full stack team did have another intern working on the API, but when he left they asked for my help in helping finish the work he left undone. That was about a month ago, since then I have been refactoring and documenting the his code, learning a slew of libraries the API depends on, trying to get up to speed with the project as a whole, etc.

The work on the project has been informative, I've learned a good deal about containization and web development libraries among other things, but am continually bothered because I am working on tasks that do not line up with what my co-op is suppose to be centered on.

I would greatly prefer to be working on machine learning centered projects, but do not want to raise a fuss since I am only an intern, and I know my involvement with the project likely won't last for the duration of the whole project (1-2 more months I am guessing). Should I just gut this out, or would it be appropriate to bring my feelings up with my direct supervisor or the full-stack team lead (who originally wrangled me into this)?

  • 3
    Just as a short remark: Being able to write APIs or UIs can help a lot when working in machine learning, because the fanciest and best learners are not worth much if you can't give your client a tool to, for example, train them. You might find a job where you have a big team and you do only machine learning, while others handle UI, backend coding, etc., but if you learn some of these things, you will also be able to work in small teams or on your own when needed. So I would not neglect the experience you get here simply because it doesn't 100% align with what you expected.
    – Dirk
    Sep 11, 2019 at 9:39

4 Answers 4


Being rigid in what you want to learn vs not learn and what you want to work upon vs not work upon will not help you as an Intern to gather practical learning and work experience.

Life doesn't always go the way we want it to. Even during regular job, you will many times end up getting (grunt) work/projects/assignments that you will not enjoy.

Since you know your involvement in this one is for 1-2 months - I would suggest to take this as an opportunity to learn how to keep yourself motivated while doing grunt work, and how to do it faster so that you can move back quickly to what you really enjoy doing.

  • 2
    This. Real-world machine learning projects require a huge amount of grunt work, which is not fun or interesting to most (my experience is that ~60-70% of work on a ML project falls into this category). The OP is an intern, not a research director, and is handling the parts of the ML project that that position suggests. You won't always have to do it, but you will always have to understand it and be capable of doing it. Plus, as a short-term intern, the OP won't be shouldering the core of a major project anyhow.
    – Upper_Case
    Sep 11, 2019 at 18:24
  • @mu I accepted your answer because I do think it is the most broadly applicable input here, and is likely the route I will take. Your comment does make me think though that I don't mind doing grunt work so long as the broad project is of worthwhile interest to me. I don't like project I mentioned not so much because it is grunt work, but because it is full stack software development - something not really in my interest lane. I am learning however, and it is temporary, so I will "gut it out" for now.
    – J. Auon
    Sep 12, 2019 at 2:27

I wouldn't bring it up.

To me, as a co-op or intern, that fact that you say that you are learning is a good thing. The purpose of such work experiences is to learn and, well, get experience. It seems like you're being asked to do things within the realm of your education and competence and are getting the appropriate support from your company and colleagues to complete the work asked of you.

When you're at work, whether it's a co-op or internship or full-time, you're typically expected to do the work that you're qualified to do. There are reasons to bring up concerns with your lead or manager, such as if you're being asked to do work that you don't feel qualified to do or you aren't getting the support that you need. But working on a project that doesn't interest you isn't one of them. Sometimes, you need to work on projects that aren't interesting, but they need to be done to meet company objectives.

If you're asked, you can express a stronger interest in machine learning. But I would be careful with the wording and it would depend greatly on your relationship with your colleagues.

  • I upvoted this answer. You can learn about ML or any other subject in a classroom. The internship is when you want to focus on dealing with the real world in terms of communication, handling deadlines, knowing when to ask questions, learning how to deal with someone else's code or work product, learning how to decipher incomplete documentation, learning how to integrate into a team, and so on. You can learn those skills regardless of the subject matter you're working on.
    – dwizum
    Sep 11, 2019 at 16:24

I'm going to disagree with the other answers telling you to not raise the issue and to stick it out.

You have a field of interest, which is machine learning. You were brought into this company to work on a machine learning project. Your boss, who is on the machine learning team, is not your supervisor, who is the project lead for this other project you're now on, and that's a problem (it's always a problem when your boss and your supervisor are not the same person).

To me, it sounds like your job description has changed without your knowledge or approval, and that's a problem. What I would do is the following:

1) Raise this issue with your boss (not your supervisor, he doesn't care). Explain, politely but strongly, that you were hired as a machine learning intern, and you really want to work on a machine learning project. Explain that you know business needs change and so on, but emphasize this is what was advertised and you'd really like to do that.

2) Ask your boss how long you are expected to be "on loan" for this other project. He should have an understanding of your responsibilities and should have planned for your work over your internship, so he should be able to tell you if this is a temporary thing or if your internship as you believed it is over. Once again, emphasize that you want to work on machine learning stuff and that is your primary focus.

3) Once this is done, then you go along with whatever your boss decides. He has been made aware of the issue; you want to do this one thing and you're not doing that thing, so you're less than happy. His goal should be to make you happy (as long as it aligns with business objectives), so he should be preparing to bring you off that other project and back to your main focus as soon as possible. Trust him to make you happy, if not now, then in the near future.

A side note to all of this is that companies like interns. Basically, you're cheap labour. Even if you're making the same salary as a regular employee, the company is likely getting some form of kickback from the government, your school, or whatever, for hiring you instead of a regular employee. They like that kickback. They don't want you to go back to school and tell all your friends that this company sucks and the work is boring and they don't care about the interns, etc, because then they lose the cheap labour. So they want to make you happy. If you let them know they are not happy, they will do their best to make you happy (modulo business concerns) because they want you to be happy. So stick it out, but also make it known that you are not happy; if you don't say you're not happy then they won't know you're not happy and nothing will be done.

Side note about machine learning: ML is hard. Even the so-called "experts" in ML more or less have no idea how it works under the hood. The field is really in its infancy right now, and anyone who tells you they're doing something big and fancy with ML is really probably just using a third-party big data NLP analyzer to do some mundane task with a best-case 40% correctness ratio, unless we're talking about a Google-level scale. It's unlikely your company is really doing something cool with ML unless they are Google-level, because really nobody knows how to do anything cool with ML right now, and doing something cool with ML requires at least postgrad, and sometimes post-doctoral, levels of expertise in the field. I presume you're an undergrad right now, and based on that, there are a couple explanations for what you're going through:

1) ML is too hard for you, where you are right now. If they were to truly bring you into an ML project, you would be lost in the weeds within an hour. It's not worth the effort it would take to train an undergrad on the finer details of ML, so instead they're putting you where you can actually make an impact. Be thankful for this.

2) The company really isn't doing anything cool with ML; they're doing a bunch of small investigations into various tools and approaches, but that work is short and sporadic, and right now there isn't anything to be done that the company needs. So rather than saddling you with "busy work" in ML, they're putting you on something meaningful. Be thankful for this.

So make it known that you want to learn about ML, and doing ML work would make you happy. But realistically there are probably 2 blockers here, both your experience level and also your company's expertise, which are blocking you from doing what you really want to do, and there's not a ton you can do about either of those.

  • I appreicate your perspective, I will likely talk to the team lead to get a better idea of how long they need me. If it is for any period longer than a few weeks, only then will I raise my "concerns". I don't think it is worth rocking the boat right now, but it might be in the future.
    – J. Auon
    Sep 12, 2019 at 2:29

I pretty much agree with the other answers about sticking it out. I bet if you paid attention to those around you, you would see that they are not spending all their time on their favorite tasks. Also, for me at least, those infrastructure-type projects have become more important to me as I've gained experience. They make my "main" tasks much more pleasant, and if people like me don't work on them, they don't often get done, or done correctly.

You also mention being "asked" and "wrangled" into this project, rather than "assigned." I don't know if that was just imprecise polite phrasing, but I strive very hard to give the co-op I mentor a lot of choice in his assignments. It's really difficult for me to discern if he takes an assignment because it interests him, or out of deference to me because I brought it up and tried to sell him on it.

Perhaps it's difficult for you to discern if you are being offered a task or assigned it. At any rate, that is the time to raise your objections. Say something like, "That project sounds interesting, but I have limited time and was really hoping to focus on machine learning." They might drop it, they might try to sell you further, or they might insist. Once you commit, commit.

Also consider that your mentors know what will be valuable to your career. I haven't done any machine learning professionally, but I've been to several talks on it, and my understanding is the vast majority of your time isn't typically spent directly on machine learning activities, but in supporting activities like data preparation, cleaning, storage, transfer, and presentation. Any head start you can gain in those areas is going to be valuable.

You must log in to answer this question.

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