Live data from Hacker News

We don't need data scientists, we need data engineers

mihaileric.com

341–350 of 367 posts

Re: We don't need data scientists, we need data engineers

#341

Earlier quoted context omitted.

> Particularly if you have a strategist who thinks his job is just to dream up profitable models, he ends up carving that role out in a way that's detrimental to the rest of the team. My god, this. These people make me bonkers. Especially because I feel like I have a bit of this tendency myself, the desire just to think big thoughts and do no actual work. Happily, I long ago learned that ideas were approximately wort…

"I'm the idea guy" out of someone's mouth is the stark red-flag warning that their net contribution is 0.

It's very prevalent in amateur gamedev communities. Every day there's someone who played some game, and has some ideas how to make it better. All he needs is a few programmers and artists to make his vision in reality. Usually the kind of projects he wants to make are big AAA games in whatever is the trending genre at the moment (used to be MMORPG, now it's about battle royale). When confronted they often get defensive and don't want to accept the reality that such big projects are made by hundreds of people with multimillion budgets, not by few guys working in a basement, no matter how dedicated they are).

Re: We don't need data scientists, we need data engineers

#342
post #293

Earlier quoted context omitted.

> Ideas are so cheap and easy. I doubt this.

"Pure" ideas are cheap and easy; good ideas require a very thorough knowledge of implementation which is usually achieved through experience

http://www.lizengland.com/blog/2014/04/the-door-problem/

Re: We don't need data scientists, we need data engineers

#343

Earlier quoted context omitted.

This is 100% my experience as a data scientist. The engineering support we get is restricted to submitting a ticket for database access or moving data from one system to another. Wouldn't dream of involving an engineer in a data science project team, because I have no evidence that they have any experience or expertise in anything other than tickets to move data around.

That's first line support not engineering

>> moving data from one system to another > That's first line support not engineering

Assuming the OP meant "setting up a pipeline for moving data from one system to another" and not a one-time copy, it is definitely engineering.

Re: We don't need data scientists, we need data engineers

#344
post #13

Earlier quoted context omitted.

It's not a straw man, I've seen it clear as day in several companies. When it comes to data science, it's "garbage in, garbage out". I've seen companies do lots of "data science" with a bunch of data scientists skilled in python and jupyter notebooks, only to discover a ton of work was useless because the incoming event data was tagged incorrectly due to a bug. The actual process of collecting, aggregating, cleaning…

I have experienced the same thing...but I just don't think it has anything to do with whether the positions are labeled data scientist or data engineer. And I would warn you from my experience teaching statistics to undergraduate engineers...they are not going to be much better. Regularly get 'hey we have this data what test can we run?' 'what are you trying to show?' 'we don't care we just need to run a statistical…

To be clear, I totally agree with you. I wasn't just arguing for changing labels, I was arguing that there is one set of "engineering" focused skills (e.g. building data pipelines, data warehouses, tagging events, etc.) and a different set of analysis skills (e.g. machine learning, statistical tests, etc.) and you shouldn't over-index on the latter without having enough of the former.

Re: We don't need data scientists, we need data engineers

#345
post #328
post #280

Earlier quoted context omitted.

The way the evolution in software went, platforms became more capable and allowed individuals to automate more common tasks. QA/DevOps/SRE teams were consolidated and replaced with smaller platform teams which empowered internal engineers to quickly write scalable and well tested services. If data management, instrumentation, and ML tooling become sufficient then perhaps the data engineers will be replaced by a scien…

I think this model (an integrated team) is what I see, there is a huge benefit in terms of short decision loops from having one team - but data engineering skills are really important in enabling it. Also if the people doing the data engineering are close to the data science then there's much more likelihood that they will produce effective solutions for the backend of the project.

aye - this pattern often trends towards the roles merging over time. The counter example to the platform team approach from the software side is Software Engineers owning the full infra and ops that their services need.

There's a big incentive for companies that need to hire more people to give the "better" title out for the same kind of work. If managers do maintain a gold/silver role on their team all of the folks in the silver role will look at the gold role as their next move. Worse there is a net-negative productivity drag where the gold/silver role constantly debate what's in-scope vs. out of scope for their work.

I once saw a team where the scientists were meant to be equivalent to SDEs in coding skill, but the scientists could only in practice do some light python/bash scripting. They tried to make the SDEs responsible for "productionalizing" the projects which meant adding tests/etc. The engineers who could all left the team in 6 months, the ones who remained were also unable to perform more than light bash scripting/python work.

Re: We don't need data scientists, we need data engineers

#346

Earlier quoted context omitted.

That's first line support not engineering

>> moving data from one system to another > That's first line support not engineering Assuming the OP meant "setting up a pipeline for moving data from one system to another" and not a one-time copy, it is definitely engineering.

Yeah, it's usually a pipeline

Re: We don't need data scientists, we need data engineers

#347
post #316

Earlier quoted context omitted.

I'm confused, do you want to become a data engineer or a data scientist? A data scientist is a type of senior data analyst. Data engineering is farther away to a data scientist than a data analyst is. I'm going to answer both questions just in case: To become a data engineer / infrastructure engineer, there are multiple paths forward. I recommend doing BI work aka Business Intelligence Analyst Engineer. It's typicall…

Thank you for the detailed response. It makes things a lot clearer. I notice that you mention "Machine Learning Engineer" as a separate role. If in the idealized world, data scientists do analytics and train models, and data engineers take care of data, then what do Machine Leaning Engineers do? Are they, basically, software engineers who specialize in putting other peoples' models into production? And you are right…

>Are they, basically, software engineers who specialize in putting other peoples' models into production?

It depends on the company. Traditionally, yes, but deployment into production can be automated, so typically today it is something different.

An MLE is someone who specializes in Tensorflow or PyTorch. They write deep neural networks, reinforcement learning, and more. Often times the data scientist will make a model, specializing in feature engineering and domain experience, and use a generic ML like a generic DNN or xgboost or whatever it may be. It then gets handed off to an MLE who writes ML specific for the problem to get every last drop of accuracy out of the model. They then hand it off to prod. I don't think they're on call (I could be wrong on this.) so today they're not really deploying models much. They're more an inbetween.

I work at small companies and startups so I've never worked with an MLE, but I do have friends who are managers at Google who told me about it, so that's where this information is coming from, telephone game. In other words, I'd take this with a grain of salt. ymmv.

Starting in 2018 big name companies couldn't get enough MLEs and they pay higher than DS', but many bootcamps and universities center around ML skills, so companies started renaming MLE positions to DS positions. This way they get more applicants and they pay them lower. Win-win for them. Too bad it messes up the industry. Today about 1 in 3 data science jobs are ML heavy. They may be MLE exclusive or a hybrid wearing multiple hats light DS to light MLE type jobs.

You can identify which is which if they give you a white board coding problem. Traditional data science work will never have a white board problem.

>So thank you again for your responses, they are very helpful.

You're very welcome. I hope it helps.

Re: We don't need data scientists, we need data engineers

#348
What about empowering the magician to handle some of the blacksmith's work?

We need to start glorifying the more mundane tasks (data quality management, fixing broken ETLs, aggregating data)and tying them to the bottomline. This comes up a lot at fintech companies, as lordnacho mentions: data science makes the data look pretty for your CEO, but the data wouldn't even be there if it wasn't for the data engineer.

We need self-service data platforms that hold magicians accountable. I'm seeing this more and more, but there's still a lot of work that needs to be done in this arena: https://towardsdatascience.com/how-to-build-your-data-platfo...

Re: We don't need data scientists, we need data engineers

#349
post #56

Agreed. In my decently long career the types of data problems I've seen be most impactful on the business are not head-in-the-clouds ML issues, but more mundane yet more far-reaching: 1. Appropriately identifying what data needs to be captured from a product to correctly operationalize it. 2. Understanding and modeling data structures in internal applications to identify and tune backend data storage mechanisms (incl…

Couldn't agree more. Found this article that aptly sums up the issue: "hiring a data analyst won't solve your business problem" rofl https://medium.com/swlh/why-hiring-a-data-analyst-wont-solve...

Re: We don't need data scientists, we need data engineers

#350
post #334

Earlier quoted context omitted.

Most libraries load entire notebooks from top to bottom when executing, and I believe papermill does too. (Please correct me if I'm wrong, as I've not used papermill.) This is great for making a dashboard, a report, or some other kind of analytics, but when it comes to a service the customer uses, you typically never want to load the whole notebook. This is where the industry standard way of loading the whole noteboo…

Is rewriting your functions from notebook to a py file really something a research scientist can not do? Or is it infeasible for some other reason? I'd imagine many data scientists want to publish their work as python packages or libraries during their PhD, so they should be familiar with writing classes or functions that work at a bare minimum.

>Or is it infeasible for some other reason?

I've had projects where the model doesn't perform as intended. Because one person was making the model and another productionizing it, it was hard to identify where the performance difference was coming from. Was the bug in the model itself or in the productionization process itself? It took longer to figure it out than writing the model or productionizing it the first time.

It takes so long to deal with these bugs because the model gets changed, so then prod gets changed to match it. Changing prod (rewriting functions) has the potential to create a new bug, so you solved one but added another, and still can't identify if it is in the initial model or from prod. This continues over and over again, problem after problem.

It's noteworthy to mention if one person is doing both the model building and converting to production this problem is significantly reduced, but is still a problem. The problem is exasperated from the lack of domain knowledge, being that both people are in the dark from the other person's process.

Furthermore, what if you need to update the model? Do you rewrite prod doubling or tripling your work? Do you take that risk to introduce another potential hard to diagnose bug, even if you're the one doing both roles?

Or do you automate the process, so the same code being developed on is the same code running on the server at the end of the day? No more bugs, half to 1/3rd the amount of the work. Why not do it this way? It's soo much easier to debug a problem in prod this way. You can take the log data and spit it into the local machine and know what you're seeing is what the user saw. No more guessing where the problem is.

One way to think of it is software engineers would think it is absurd to write their code, then hand it off to someone who doesn't completely understand it, to rewrite it in another language and put it up on a server. "Why would you ever want to do that?" they would think, and I agree with this sentiment. It is absurd to have someone (even you) rewrite your work unless you have no other option, and you do have other options. Transpilers are a thing if prod needs to be in another language. I've written models that have to go onto embedded environments. I know these challenges all too well.

>I'd imagine many data scientists want to publish their work as python packages or libraries during their PhD, so they should be familiar with writing classes or functions that work at a bare minimum.

It depends if you're writing a library, like doing ML / machine learning engineer type work, or you're solving a domain challenge and writing an end to end solution for that problem, and are using standard cookie cutter ML for your phd, aka data science type work.

One leads to an engineering role, and not surprisingly writing a library for it is ideal, so other people can use it. Another leads to a data science type role and not surprisingly showing code snippets in your paper with plots / EDA and all, the same way you'd write a notebook at work, is ideal.

I'm a data scientist, not an ML specialist (though I have invented a new form of ML for work once, but that was just once and not my primary thing). I specialize in end-to-end domain problems I'm solving. I'll write a notebook to solve it, not that I have to. I've been in the industry longer than notebooks were a thing, so I'm fine doing it the old fashioned way. What I am not is an MLE. I don't need to write libraries for other users to use. I don't need to write custom ML. I don't need to do that engineering bit. To be fair, I have, and I know when it's the right tool for the job. On stackoverflow all of my points come from helping people with the glue parts between C++ and R, so they too can write libraries for R. I'm proficient in modern C++ too. I can do the library ML type work, and I have enjoyed it, but I really do enjoy solving domain problems more, so it's what I'm doing, and it's what the previous comments in this chain you're responding to are all about.

Post reply on HN