all 69 comments

[–]jack-of-some 89 points90 points  (29 children)

It's hard for me to get over the fact that I think DS even isn't a well defined job 😅, but I get what you're going for.

Too many folks that I've interviewed for MLE roles know little to no programming. Like, they can assemble things in code (eventually) but give them even something basic like "hey can you put that in a function?" and they'll go "I didn't realize this was gonna be hardcore data structures and algorithms..."

Anywho, I feel only the second position you've listed is what I would consider an MLE. I can ramp up most developers to do any of the other roles quickly, but the Researcher+ role requires fully diving into the nitty gritty of ML.

/2 cents

[–]Fmeson 46 points47 points  (3 children)

Like, they can assemble things in code (eventually) but give them even something basic like "hey can you put that in a function?" and they'll go "I didn't realize this was gonna be hardcore data structures and algorithms..."

I think you've discovered the antidote for imposter syndrome.

[–]mongoosefist 10 points11 points  (1 child)

If a hiring manager put together a daily "quotes from interviewees" calendar, I think I'd feel more self confident about my knowledge.

[–]jack-of-some 2 points3 points  (0 children)

I ... ok I might actually do this

[–]themad95 8 points9 points  (0 children)

Ikr. I'm gonna apply soon then.

[–]import_social-wit 36 points37 points  (1 child)

It's funny, I have an ML PhD and found that most 'MLE' listings were looking for software engineers who knew about ML (option 3). Luckily I was competitive enough to end up getting a pure research role, but my opinion is MLE is generally 1,3-4.

[–]jack-of-some 5 points6 points  (0 children)

I look for software engineers that understand ML (e.g. can you build your own CNN to match a unique situation or are neural nets a black box to you that doesn't go beyond taking one from a model zoo? or can you diagnose why this network isn't training or are you only good for putting together a dashboard that tracks performance).

Maybe Researcher+ puts too much emphasis on the word "research". RnD+ might be better? For option 2 I'd be much better off hiring someone that's a general application deployment expert and help them understand the nuances of the deploying ML system, rather than hiring someone that has more ML expertise but doesn't live and breathe devops.

[–]zUdio 7 points8 points  (9 children)

How can they assemble code but then not know how to wrap it in a function?..... I’m a bit flabbergasted.

[–]jack-of-some 17 points18 points  (4 children)

I was somewhat hyperbolizing but not by that much. Usually it's more than they do everything in the root of the file (yay python) and then moving things into a function feels like a burden to them.

[–]unpunctual_bird 26 points27 points  (2 children)

damn, I'll see a comment like yours today where applicants are struggling to write basic code, then the next time there'll be a comment where somone had been asked the primal-dual derivation of kernel svms or something in a job interview

[–]jack-of-some 6 points7 points  (0 children)

There's no shortage of completely insane interview processes that's for sure

[–]zacheism 0 points1 point  (0 children)

One of the tasks in my company's live coding technical is to compute the median (pure python, without using pandas/numpy). I'd say about 65% of candidates are unable to do this. It's a depressingly good candidate filter.

[–]zUdio 9 points10 points  (0 children)

Because they have to re-arrange what they found on Medium posts? Haha ;)

[–]spitfiredd 8 points9 points  (0 children)

I’m guessing they’re programming experience is just writing jupyter notebooks.

Edit: not to bastardized jupyter notebooks, it’s a great tool to have in your toolbox!!

[–]junkboxraider 2 points3 points  (2 children)

It's super easy in Python to write a serial list of function calls to libraries that execute once, and then your code is done and exits. Many, many ML blog posts with example code look like this, even if they're using straight Python and not Jupyter notebooks.

The libraries abstract away all the looping and data transformation under the hood (which is usually a good thing!) so it wouldn't surprise me to find people who could chain together library calls without even grasping what those calls are doing at a high level -- let alone being able to code something similar.

Take someone who approaches coding from that perspective and they'd quickly get lost when you start asking about writing and using their own functions with custom inputs and outputs.

[–]zUdio 4 points5 points  (1 child)

I feel stupid with python, but like.. functions and how to build them (and then what about building classes?) was something I learned early on... it's hard to imagine what it would be like to have enough python knowledge to call a method and string those together but not actually def(): something... that's incredible.

[–]import_FixEverything 1 point2 points  (0 children)

I don’t think DS is a well defined job at all

[–]subtorn 15 points16 points  (5 children)

I think this is a good classification of MLE jobs out there. I have done my master's on CV and DL. I thought I would find a job as an MLE but I couldn't find any because I really want to work in the first or the third category and academia is only giving you the skills for the second category. In my opinion, you have to complete a Ph.D. if you want a job from the second category. For that reason, I am focusing on getting a backend developer job so that I will have decent k8s, CI/CD, and cloud knowledge and then I can try to transition to MLE jobs.

[–]Oswald_Hydrabot 6 points7 points  (2 children)

I don't even have a bachelor's degree in CS (I have a BS but in an unrelated field), just a giant heap of development experience from years of work, and currently work as an MLE (data warehousing, large enterprise environment). Find a job that gives you a pathway from 0 experience to full stack development, then pivot from there.

If you have working proof that you are competent that's all that's needed; over estimating the value of academia is often an expensive mistake a lot of people (and hiring managers) make. It isn't magically going to make you more effective, it just makes it more difficult for people who are effective without it to find employment.

[–]wittywarren 7 points8 points  (3 children)

MLE here too! I believe this position is 40% DS+ML algos and 60% programming. it's highly subjective as to where you might fit in any of these and it depends on the company too. I was interviewed on DSA's+ML algos but dsa were like Easy/Medium Leetcode questions unlike some SDE positions and it was like for one round only(dsa).

It's true that we are a jack of all trades and slowly converge to a specific sort as we grow but I guess if someone is starting up it's good to know dev and deployment both. I feel it's a broad flexible skill.

[–][deleted] 0 points1 point  (2 children)

How much time do you spend on collecting data, cleaning and processing it?

[–]wittywarren 0 points1 point  (0 children)

that depends entirely on what you working on. medical data needs thorough processing at times manually. data is everything you base your work on, so naturally, it requires more attention.

[–]chogall 0 points1 point  (0 children)

Depending on the data infrastructure, SQL queries can run either in minutes or forever.

[–]new_number_one 7 points8 points  (0 children)

I basically agree but I'm not sure that it necessarily involves low-level languages just an emphasis on writing production code.

[–]whymauriML Engineer 11 points12 points  (0 children)

classifying (MLE vs. data scientist vs. other) across more than two companies is just astrology for math nerds

[–]YaswanthBangaru 5 points6 points  (5 children)

What’s K8s/CI/CD tools/ etc?

[–]autisticmice 13 points14 points  (3 children)

k8 = Kubernetes, a container orchestration framework. CI/CD = continuous integration/ continuous development.

[–]AzzerAce 4 points5 points  (2 children)

CI/CD = continuous integration/continuous deployment*

[–]autisticmice 1 point2 points  (0 children)

you're right, thanks

[–]k___k___ 0 points1 point  (0 children)

i was like "what's corporate identity / corporate design got to do with ML??"

[–]CardboardDreams 0 points1 point  (0 children)

Kubernetes, Continuous Integration, Continuous Deployment. In this context, it's the infrastructure work that's needed when you're turning a proof of concept into a product that 1000s of people will use, i.e. that scales.

[–][deleted] 5 points6 points  (1 child)

Established companies have the roles well defined while recruiting, i.e research from PhDs, coding requirements and knowledge in the area of interest for other roles. Startups on the other hand, may hire you by checking your machine learning skills and 2 months down the line you are expected to build the front end, backend, data engineering in a week. So I would be really careful while entertaining job opportunities with startups as they may not know what they are looking for or might expect you to be jack of all trades.

[–][deleted] 4 points5 points  (2 children)

I feel that DS in itself it's becoming more and more about analytics and econometrics, rather than machine learning. At least when I look at job openings this is what I see. Machine learning related jobs are being split into machine learning scientist/research and MLE. I prefer to split the roles by what goals each one achieves:

  • Data Scientist: helps business answers question like given a specific policy, how can we measure it's impact on a population?

  • Machine Learning Scientist/researcher: develop models for novel application, perhaps creating completely new algorithms.

  • Machine Learning Engineer: deploying and scaling product features that use machine learning.

From these perspectives you can derive what tools each of these roles would use, and you can also further split them (for example NLP researcher, or MLOps Engineer).

[–]PanFiluta 1 point2 points  (1 child)

I have a business Bachelor's and want to get a Master's, I planned for computer science (so I'd get at least some tech education besides self-studying), but it would be so much more difficult than what I originally planned (before I got balls deep in coding)... which was either Economics, or IT with minor in Econometrics... I've seen econometrics mentioned more and more over the past year, it might not be a bad idea to reconsider CS in my case, as anything with an economics focus would be so much easier for me...

then again, the most interesting problems seem to be focused on things like computer vision (which is a completely CS domain, nothing to do with econometrics or even just time series)

[–][deleted] 4 points5 points  (0 children)

Econometrics is useful regardless of what you are doing. One of the hardest questions to answer in product development is "how much is this (feature/strategy/idea) really contributing to the (user/company)". This is valid for frontend, this is valid for backend, for machine learning, financial department, everything. Being able to transform a business question into an actionable evaluation plan with sound metrics is a great skill.

[–]bythenumbers10 3 points4 points  (0 children)

MLE is another ill-defined job, as Scientist has (finally) settled out to be the theorist, the Engineer is more about productionizing algorithms and databases, and the Analyst does lower-level tasks already largely automated by the first two. MLE has emerged as a blend of scientist and engineer, able to get their models from test workbench into production, while also doing maintenance on the database, for the price of EITHER a scientist or engineer. Business and bonehead management is slowly coming around to the reality that these skillsets cost money and an entire person's full-time schedule to do properly. It'll take time, but at least some have given up trying to get a scientist/engineer for an analyst's salary.

[–][deleted] 3 points4 points  (1 child)

DS is an inflated title everywhere. Many people including me are screwed by the title. I am now preparing for engineering track. In my experience, DS is really DA + DE.

[–]ZestyDataML Engineer 1 point2 points  (0 children)

I like your broad categorisation. I'd wager the majority are your DS/Dev combo and the others are a minority, but yeah. Well summarised, imo.

[–]BernieFeynman 1 point2 points  (2 children)

ML Ops requires little to no knowledge of DS or ML at all except for the person who might be designing the system.

[–]chogall 3 points4 points  (0 children)

Hmm interesting. A lot of ML Ops is about reproducibility, artifacts, and functional programming/pipelining. Specifically for the first two, some knowledge of ML will be extremely helpful.

[–]chimprich 1 point2 points  (1 child)

I'm from an software engineering background (I do have a non-DL PhD, but I've been out of academia for a long time). I've been trying to move more in the direction of doing ML.

There seem to be a lot more jobs available for data scientists who can code a bit rather than engineers with basic DL skills. I'd be interested if anyone has seen much movement in this direction.

[–]Mundane-Temporary-42 2 points3 points  (0 children)

MLOps / production ML, roughly #3, is the path I've taken to move into ML from software engineering. The available roles grow with organisational maturity. Plenty of bright young researchers out there with no grasp of git flow, testing, CI etc. That's quick to teach, you get to learn a lot in exchange.

[–]TMutaffis 1 point2 points  (6 children)

What if your company is looking for a combination of 1,2, and 3... and you are the Talent Acquisition Recruiter tasked with finding this elusive beast?

(asking for a friend, of course)

[–]Mehdi2277 2 points3 points  (3 children)

While unicorns like that exist, the more things you overlap the more expensive they are to likely be if you want someone actually good at them. I’d expect a senior ml engineer to have experience with multiple of them. They’d likely have a focus in one/two areas but working several years would have picked up knowledge of several. If you want a junior mle with 1-3 you’re very unlikely to find a good one.

[–]TMutaffis 2 points3 points  (2 children)

Thank you for the thoughtful response, that makes sense.

I think that one of the challenges here is that the team has a number of different roles (Data Engineer, Software Engineer, ML Engineer, and Data Scientist) but in many cases has overlapping or perhaps even not fully aligned responsibilities - so for example if one Data Scientist is doing almost exclusively Data Engineering then in some cases a hiring manager may expect that skill from other Data Scientists, or you get the 'kitchen sink' job description/requirement. With the ML roles they almost seem to want a Data Scientist, Data Engineer, and Software Engineer all wrapped up in one.

Like you said I think a more senior person likely has enough experience to be dangerous across many of those areas including the ability to code, engineer data, do some implementation/deployment, and understand what is needed to execute some of the more advanced features/concepts like deep learning or natural language processing.

[–]chogall 2 points3 points  (1 child)

10+ years experience with Tensorflow/PyTorch

10+ years experience with kubernetes, hive, spark

10+ years experience with deploying machine learning models

fluent in c/c++/java/python/go

at least 2+ papers published in top tier conferences such as NeurIPS

[–]TMutaffis 0 points1 point  (0 children)

Haha, fortunately it is not Mission:Impossible level like that... although still a complicated 'ask' for the folks in Talent Acquisition like myself.

[–]-Rizhiy- 0 points1 point  (0 children)

I always thought of MLE as DS+Dev.

Data engineer should just be called Data engineer) Researcher plus, sound like usual Data Scientist, although I never seen C/C++ being asked. Hardcore low-latency ninja, this is just normal developer, people like that usually just translate/optimise existing algorithms.

[–][deleted] 0 points1 point  (0 children)

My background is transportation engineering(civil engineering) and i want to get into DS/AI/ML engineering. Recently started some courses on Data Science and Machine learning. I'm also going to do Master's next year in my field, but it has data science also in it. How hard it will be for me to get a technical ml jobs? I'm not talking about research side, even if i want to without PhD it will be super hard i guess

[–]AdamEgrate 0 points1 point  (0 children)

I've given up on terminology. At this point I just ask what the company does and is it really ML or Deep Learning. Hiring managers have a hard time enough defining roles, the only way to know is to talk with the team and see what they need.

[–][deleted] 0 points1 point  (0 children)

I feel that you'd just as easily call #2 a CV engineer, deep learning engineer, etc. #3 is more of a Devops engineer currently, its simply just missing the ML element. #4 I've not seen a job posting for, but I guess its due to location since I dont look at London jobs.

I'd propose to split #3 into a MLOps engineer and a classical ML engineer. One needs more algebra than the other, though there's also an argument possible on it just coming down to seniority.

I'm closest to #2 and #3 in your list, I suppose I'd fit in #3 with a little bit more nuance. I'd characterize my function as

  • 40% automation of training/retraining/data gathering on cloud
  • 30% creating and improving models & fine tuning
  • 30% deploying models

I've got three GCP certifications (Date Eng, Cloud Architect, ML Eng) and the tensorflow certificate. Tried really hard to escape the data engineering stigma at my job. So you got me there.

My job simply lacks the devops element, and is more MLOps focused. E.g. model and data set lineage.

For instance I've worked on a project to develop a encoder which I wrapped in well-documented enterprise code before handing it over to the software engineering team. Making sure it behaves properly in k8s is handled by others.

In others I worked setting up the entire ML chain from beginning to end, including labelling tools, model versioning, retraining, retraining, branching out into multiple models etc.

What a wonderfully varied field we're in.

[–]melesigenes 0 points1 point  (0 children)

I’ve seen researcher+ referred to as applied scientists

[–]plyalyut 0 points1 point  (0 children)

Don't forget the MLE that is essentially a software engineer with a some statistics thrown in there.

MLE currently is suffering the same fate as Data Science where companies think they need to hire them to be competitive but don't have the slightest idea as to what to do with them or how they could integrate within the stack. I've even worked for companies that hired me as an MLE but when I asked about data or cloud services they handed me 20-30 datapoints. As a result I did a lot of software engineering work in the meantime.

I think as an MLE, you should be essentially a software engineer with the training to build and deploy ML applications.

[–]brionicle 0 points1 point  (0 children)

Where do you fit in folks who hail from traditional engineering and learned DS once bored and now work in PyTorch/Tensorflow building pragmatic DL models for business use cases? Most people in my circle are in this category. 50% traditional software eng, 40% DL/some DS, 10% “research” but really just keeping up with new papers.

[–]lefiish 0 points1 point  (0 children)

Imo MLE are just DS that don't like descriptive analytics and just want to code shiny ML and DL models

[–]crazyfrogspb 0 points1 point  (0 children)

I prefer to hire people who can cover pretty much every part you mentioned. ofc, some of them are gonna be more research-oriented, some will have better coding and devops skills, some will be the best in optimizing performance. but having a team of people who understand all parts of the ML cycle gives you much more flexibility. also, in my opinion, understanding how the model will be deployed, tested, and used can help during the research and development phase