45

Is it worth transitioning to become a Machine Learning Engineer?

Profile picture
Mid-Level Software Engineer [E4] at Meta2 years ago

Hi everyone, I have about 0 experience with machine learning and I'm thinking of ways to significantly increase my value in the future. My ideal plan is to get promoted to E5 in < 1 year and then change domains to ML (or ML Infra and work closely with ML engineers). I have almost 0 experience with ML directly, but I think they make much more money in the long run? I'm currently a backend software engineer.

Basically I want to know if it's worth investing my time & effort this or if it would be better to just eventually go for engineering management in the domain that I am already familiar with.

7.2K
7

Discussion

(7 comments)
  • 36
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    2 years ago

    First, I recommend this discussion from another Meta SWE interested in transitioning to ML: "Software Engineer interested in ML - How would a transition work?"

    While it's true that MLEs tend to get paid more than other SWEs (I recently found out that Google pays 25%+ more for MLEs compared to SWEs), my advice largely remains the same for these switching scenarios: Take it up if you're genuinely passionate about it.

    To me, it seems like your primary motivation is compensation. While money is important, I feel like most engineers I know who hyper-optimized for compensation had slower career growth than those who treated it as more of a secondary motivation/lagging indicator, which I talk about more in this video here: What's Often Overrated When Choosing Your Next Job

    If money is the main reason you want to do ML, I wouldn't switch into it, even if you have some interest for it (not super relevant if it's the secondary motivation). There's 2 other factors in play:

    • If you like back-end dev - If this is true, I definitely think you shouldn't switch.
    • If you're planning to stay at Meta/Big Tech - Given the scale of these companies, they tend to reward depth, so it's usually better to double down on something you already like and are good at (one of the E6 archetypes is literally "Specialist"). While MLE will pay more in a vacuum, the gains will probably be cancelled out by the hard pivot, especially if you're not genuinely super interested in ML.
  • 30

    In addition to the other answers, I'd add the following notes:

    Every team is different. Being an MLE in a research oriented/R&D team will involve implementing and productionizing algorithms, often directly from papers. Being an MLE in an AI inference or edge team will involve a lot of low level code and optimization. Being an MLE in a core ads team might involve a lot of testing, experimentation, and statistics to help evolve a complex system. (In fact, testing/experimentation is probably the most useful skill you can pick up if you're trying to go into an ML role at Meta!) As Rahul mentioned, sitting with an MLE is a great way to find out what their day-to-day life is like. I would also poke around their diffs, public posts, authored docs etc. to see even more specifics about what individuals are doing.

    But I wouldn't let that discourage you from learning ML or trying side projects for fun. Give it some sort of time box window - like a month - to hack on something you find meaningful. Afterwards, identify the parts of it you enjoyed doing, and the parts you didn't. (For me, the parts I enjoyed were always designing the model architecture + seeing the optimization process happen in my notebook. The parts I hated were always data cleaning :) If there's enough of it that you did enjoy, then it's probably a good bet.

    Also, it's worth mentioning that being in eng management for both an ML team and an SWE team will become more and more similar the higher you go - less about the specific technical decisions, and more and more about people, process, and culture management overall. I don't know about compensation at higher levels, but I don't think it's so different that it should really be a huge decision factor in the long term. However, MLE at Meta is good in that you are potentially more layoff proof, and can work on some high priority projects like ranking/recommendation.

  • 25
    Profile picture
    Meta, Pinterest, Kosei
    2 years ago

    If you're fairly close to getting the E5 promo, I like your plan to first secure the E5 promo. That effectively becomes a floor for future roles, effectively guaranteeing your seniority.

    I wonder if you could de-risk some of the move to MLE by:

    • doing a coffee chat with existing MLEs at Meta to understand their day to day (and also ask them about opportunities at other companies)
    • do some sort of side project in MLE. This is harder since a side project will likely not be representative of the work you'd do at a large company like Meta.

    I broadly agree that ML in general will become more and more lucrative, and there will be more opportunities in the coming years. However, you want to ensure that you'll have staying power. You can likely get a short term comp bump by switching into it at Meta, and then leveraging the "Meta AI engineer" brand for a great offer elsewhere.

    But the massive comp bumps will come from understanding the AI landscape, upcoming trends/companies, and having opinions about them. Could you develop that now as a way to ensure you'd be happy with the transition?

  • 22
    Profile picture
    2 years ago
    • You can think about roles on a spectrum -
      ML Researcher -> Applied Scientist -> ML Engineer -> ML Infrastructure Engineer
      You go in decreasing of ML knowledge and increasing order of software skills. So one consideration would be thinking about where you want to land ultimately.
    • Most ML infrastructure overlaps a lot with a typical backend role. So you would face the same set of challenges more often than not. At the same time, there will be a lot of new ML design patterns - distillation, multi-stage models, etc. But you can easily pick them up with basic ML background. So I would say the transition is possible if you are interested, as Alex said before.
    • It would be a good idea to start as an ML Infrastructure engineer and if you like the modeling parts of it, look to contribute towards that in a project working with MLEs. First, consider the problems that interest you - recommendation, ads ranking/auctions, graphs, natural language processing, computer vision, etc. Then talk with teams in those areas and see if there is a match.

    I hope this helps :)

  • 15
    Profile picture
    Robinhood, Meta, Course Hero, PayPal
    2 years ago

    I found this article about machine learning side projects, which seems decent.

    To make the side project more sharable, I'm thinking you could make some sort of API or utility tool that uses ML underneath.

    In terms of what to build with side projects, I highly recommend looking for inspiration among your interests and day-to-day life: That's when the most effective side projects arise. When it comes to ML/AI for me, a good example is Deep Leffen Bot. For context, I'm a big follower of competitive Smash Brothers Melee. These engineers trained a bot on the thousands of tweets of a prominent Melee pro and has its auto-generated tweets shared to that Twitter account (which is absolutely hilarious).

    Here's the masterclass I gave around coming up with a great side project idea where you will actually follow through.

  • 12
    Profile picture
    Mid-Level Software Engineer [E4] [OP]
    Meta
    2 years ago

    This link was super helpful, thanks Alex!

    I'm honestly not sure whether I would enjoy ML, does anyone have any recommendations on how to start on machine learning side projects?

  • 4
    Profile picture
    Guiding ML Engineers through their career journey. ex-Head of ML, ex-Meta Staff SWE, ex-Adobe
    13 days ago

    This is a great question.

    The first thing to ask yourself is why are you interested in ML? From your question it sounds like income potential is the biggest driver. In this case I would advise you not to make the switch for several reasons:

    1. ML salaries are actually not much higher than comparable backend SWE levels. There are some outliers and there are more opportunities in ML today, but your career is a 30 year proposition and most of these are temporary. Full stack SWEs make about 15% less for similar experience (I'm not sure what the delta with BE is, but it's smaller) and even then it is not worth it...
    2. As someone who is already knocking on the door of E5 promo, you built up a lot of capital in your area. Going to ML is going to be challenging and likely come with a step back in your career.
    3. ML is a very hard area to be in, especially if you are trying to be good. The main paradigm shifts, best practices are only now being written, you are in the public eye without having best practices... There is always some demo (which was likely faked) that your work (which is real) gets compared to.

    This doesn't mean that people should not be going into ML careers, I actually want to encourage more engineers to do so. I'm currently working on a course for Taro about how to make that transition that should be out in Q1 of 2025, but the reason why you are doing it is important and compensation is the least compelling one of all.