Hacker News new | ask | show | jobs
by apohn 1313 days ago
>I’d rather work on a project that builds something and the effort accumulates into something more tangible than an analysis report.

Before deciding to become a Software Engineer I'd recommend you think about what that "something" is that you want to build.

There's a really broad range of jobs that require you to build ML based things that are deployed in a production environment, meaning your output is mostly code. In one type of job you are really more of an infrastructure building person. From what I've seen at some well known tech companies, a lot of ML Engineers are taking models built by other people and finding a way to run them at scale. So what they need more than modeling skills is the knowledge of building a scalable data and scoring pipeline that can meet a certain SLA and cost.

If you want to be more of an ML Infrastructure or ML Engineer (as defined by a company like Facebook), you'll probably want to focus on learning traditional software engineering, just with a focus on the parts of the stack relevant to data. You'll get asked algorithm and system design questions in interviews so probably it's good to focus on that.

There's another type of role where you build things. I work as a Data Scientist at a large non-software company that builds complex pieces of machinery that are sold to other businesses. The machine collect a lot of data and the team I'm on builds models to detect issues with those machines. Our team also builds the infrastructure to run those models. Every single person on my team is expected to be able to go from a conversation with an SME (e.g. a mechanical engineer) to python code that is running in our prod environment. My deliverable is code, but I certainly do a lot of analysis to get to the point where I'm ready to build the model and code.

I've done similar roles in Medical devices, Pharmaceutical Manufacturing, Oil & Gas, and Industrial Manufacturing (e.g. car part factories). IMO what you need is a broad exposure to ML models, the ability to write Python/R scripts that won't break when they run on a schedule (e.g. every hour), and the ability to demonstrate that you have the communication and thinking skills to take a vague problem statement from a business person and turn it into a production model. I've interviewed for a lot of jobs in this area and I've never gotten any system design or algorithm questions. Usually it's ML based questions (e.g. what metric would you use to evaluate a clustering algorithm) and questions that try to see how you think about business problems.

1 comments

Thanks for the detailed response! As in the ‘about’ section of your profile, I’d like to do more coding than PowerPoint too, so it’s great to know other data scientist are already doing that kind of work. It’s interesting that within each of the MLE and DS roles there can be so much variety and overlap, depending on team and company. Hopefully this makes the transition a little easier/smoother.