(Redacted from a conversation between me and Gautam.)
Q: "Guys, what is the difference between ML engineer and a data scientist? How they work together? How their work activity differ? Can you walk through with an use case example?"
A: (From Arthur)
"Generally, it is hard to decide what a title means unless you know a bit about the nature of the job, usually it is described in the job description.
But then you can asked what are these terms usually imply. So here is my take:
ML vs data: Usually there is the part of testing/integrating an algorithm and the part of analyzing the data. It's hard to say how much the proportion on both sides. But high dimensional data is more refrained form simple exploratory analysis. So usually people would use the term "ML" more, which means "your job is to run/tune algorithms for us, fun for you right?" But if you are looking at table-based data, then it's like to be "data" type of job.
Engineer vs scientist: In large organization, there is usually a difference between the one who come up with the mathematical model (scientist) vs the one who control the production platform (engineer). e.g. If you are solving a prediction problem, usually "scientist" is the one who come up with a model, but the "engineer" is the guy who create the production system. So you can think of them as the "R" and the "D" in the organization.
IMO, healthy companies usually balance R&D. So you would find a lot of companies would have "junior", "senior", "principal", "director", "VP" prefixed the both track of the titles.
You will sometimes see terms such as "Programmer" or "Architect" replacing "engineer"/"scientist". "Programmer" implies their job is more coding-related, i.e. the one who actual write code. "Architect" is rare, they usually oversee big picture issues among programmers, or act as a balance between R&D organizations."