Hacker News new | ask | show | jobs
Math PhD to ML Engineer
7 points by varane 1061 days ago
Hi, I'm stuck in a weird career-life situation, hoping someone can give me insights on what to do.

Question:

How do I best prepare for getting an ML engineer role after a math PhD? Kaggle, open-source, something else? Should I become proficient in PyTorch? Just implement a bunch of ML papers in my personal github?

Context:

I'm considering transitioning into tech industry after I complete my math PhD in 18 months. I have done enough research already to get a PhD so I'm just waiting until my advisor's funding runs out and also hopefully, the tech industry starts hiring well again. I have done ICPC in college and can solve leetcode mediums reasonably fast, but I don't have ML engineering experience. My advisor doesn't allow internships so that's not feasible (not great, but that's life).

Why career change?

I'm not interested to go the professor route, tenure track jobs in math are incredibly hard to get, plus I have a family to take care of, so I desperately want some certainty/money in life. I have taken a few grad-level ML classes in university and they're a lot of fun, also there's a lot of VC interest in ML now so seems like a safe bet. I also have a couple of first-author ML papers in top conferences but they're very theoretical - convergence bounds and such, so I don't think employers would be impressed.

4 comments

By having a math degree you could possibly leverage your knowledge to get into some niche ML areas which still hire well and might turn out to be more interesting.

I'd consider physics-informed ML, and time-series modeling. Julia has a good ecosystem for the first one, PyTorch + Pyro are great for the second one.

I'm an ML Engineer who's really closer to an MLOps role. I'm weak on ML and strong on data, scaling, cloud stuff, infra as code, making processes not suck, kinda everything _but_ the ML. So take my opinions for what they are worth, and keep in mind that the role of ML Engineering at company A != ML Engineering at company B.

I've described ML Engineering as putting the "science" in Data Science because we help introduce reproducibility. For example, I can take your model training and make it a robust process that happens over a huge amount of data on a daily basis with all the monitoring, logging, and reliability stuff surrounding that.

Some topics I would personally want to see for an ML Engineer on my team (and again, "ML Engineer" has less of a solid definition across the industry than "frontend engineer" or other roles that have been around longer) - Docker: can you containerize your code? Can you interact with a local container? - Model serving: at a basic level, can you wrap an API around a model? There's lots more systems design stuff here if you want to go deeper on model serving platforms. - CI/CD: do you know what Jenkins does? (Or equivalent) Can you talk about a coherent code testing strategy for ML code? How would you deploy a model service using a system like Jenkins? - Cloud stuff: you don't need to be an expert, but can you interact with cloud APIs directly or through Terraform, spin up instances, know the difference between object storage and databases, and do you have some Kubernetes experience (run a pod, get the logs, take some debugging steps when something's wrong). - Modern MLOps: model registry systems like MLFlow, feature stores (DIY preferred but vendors ok) - Scheduling and Pipelining: Airflow, Vertex Pipelines, lots of options here but those are the biggies. Know how to use these for basic data pipelines, model training, service deployment, and why and how you can deploy these via CD - Monitoring: know the difference and have strategies around monitoring systems metrics (cpu usage, etc) and model metrics (data drift, etc)

A lot of this stuff is harder to learn on your own because it often comes up in the context of larger teams and enterprise scale, where monitoring and reliability turn into KPIs that execs look at, but this is, to me, the stuff that defines the difference between a Data Scientists and an ML Engineer.

Thanks, this is useful information (and also fairly overwhelming). I have a basic idea of some of these because of having taken CS courses but no hardcore experience in any of them. Even though I'd like to work on these, it does sound like I need to get into a tech company that does this in the first place. Having had a life revolve around university for a while, looks like I have a hill to climb.
You need something that demonstrates that you can code - not just PyTorch and ML-specific code but general software development - creating and deploying an API, using a database, being comfortable with cloud tools etc.

That + having a math PhD is enough to get interviews, the rest is interview prep which can be company dependent but it's usually basic ML knowledge + a coding test.

Thanks for the comment. I've done these things in certain classes - cloud computing, networks, etc, but always disregarded them as not worth highlighting. It's after all just reading documentation carefully, implementing parts of a system and debugging. Although I'd love to do more of these, it seems hard without being part of a software team.
Hi varane do you have an email address?

You can put it onto your profile page