Ask HN: Engineers from non-CS background, how did you pivot into ML/AI?

390 points by ultrasounder ↗ HN
I am a EE, hardware engineer with about a decade of experience in PCB electronics and systems engineering experience which includes a brief stint at a FAANG that also happens to be an E-tailer. I have been "dabbling" in Python for about a year now and just recently started with DL using PyTorch and find it quite interesting. To be clear I don't write code at work, atleast not until now. I intend to utilize any free resources (MOOCs) to teach myself the latest techniques in DL for CV. What I am not clear is the next logical step.A part of me wants to Boostrap a SAAS using Python stack to build something that I can market using the traditional channels(PH,Show HN,Reddit,answer SO questions) and show it to potential employers but am not sure if I will even get to the interview stage with a resume but that doesn't look anything like a programmer with a tradional CS background and work experience to boot. Sorry about the long and winding question, but what should I do to get noticed by recruiters at FAANG and non-FAANG to stand apart from the CS crowd?

141 comments

[ 2.9 ms ] story [ 211 ms ] thread
> what should I do to get noticed by recruiters at FAANG and non-FAANG to stand apart from the CS crowd?

The usual answer here is look for suitable business / r&d cases within your own EE industrial domain and use ML/AI as any other tool instead of as a black box or a magic wand. Good luck.

This. I pivoted by finding applications of ML in my day-to-day engineering role, until I got enough internal traction to justify a title change from "____ Engineer" to "Data Scientist." About a year later, I jumped ship to a startup applying ML to my domain, and I am contemplating making the move to FAANG next.
This is the kind of success story that I hope to emulate. Good luck with Your FAANG quest. That definitely will open more doors for you!
I'm just trying to get my first programming job.

I cant seem to get past HR. My resume has that I'm a Chem Engineer BS, Industrial MS, 7 years in engineering, 2 years of Electrical Engineering.

The first page of my resume is my 10 years of non-career programming experience. Built a Dishwasher(embedded C++), full stack app(RN JS, Mysql PHP laravel), and smaller projects.

I cannot get past HR.

Every real life programmer I show my work to, knows I'm capable. Heck even some got me in touch with HR. Nothing came of it.

Hi, Loved your Dishwasher robot post the other day. IMHO, see if you can gang up with your co-conspirator and raise seed money. Heck, if you can afford it, consider moving to the valley and try to get in the next YC cohort. These days they seem to have a predilection towards funding HW ventures. If all else fails, you will still have all the experience of an entrepreneur which will carry you places. AS an aside, Have you considered "Industrial Automation" jobs. Companies like Tesla might be interested in your profile.
Off topic, but wanted to reply regarding "The first page of my resume is my 10 years of non-career programming experience."

This must be part or most of the problem. Cut your resume down to 1 page, if possible. Include a meaningful cover letter catered to the opportunity and specific company youre applying to. Shove the last ten years stuff into the very end, and start that first page with your software knowledge and related projects. Ping me someday here if this ends up getting your foot in the door.

Why not use a pitch or capability cv? and ditch the traditional cv format
Have you tried cutting down on experience? With age discrimination in hiring you might be better off including 7 years as opposed to 10. Just my two cents.
And don't forget to stock up on Just for Men for the in-person interview. You want to look like a seasoned 32, not a past-his-prime 40-something.
Not sure if this is sarcasm, but people aren’t machines. My reply rate rose considerably by changing from my first(unique) name, to my middle(common) name. People judge, if you’re going for a new job why give them any chances to ding you?
So, should black candidates bleach their skin because "people are not machines"? Making excuses for wrongful prejudice only perpetuates the prejudice.
Depends on how badly that black candidate wants the job. I’m not making excuses for anyone, I’m just giving advice if your goal is to get the job. If your goal is to stop wrongful prejudice ignore my advice. Though one could argue the best way to stop this kind of prejudice is from the inside.
Hi. Why are you looking for your “first programming job” with your different background and mature resume? You are at great disadvantage against tons of CS naturals in the usual recruiting and interview routine. Also, your programmers network thinks you are good enough which is encouraging, so why do they not refer you internally or through their own network? Ask them for sincere feedback, they are not helping you enough. Happy New Year and good luck!
But...but Hackernews keeps telling me any halfway decent programmer should have FAANG-tier companies begging them to work for them!
I'd say pivoting to ML/AI is much easier for Math/Physics folks compared to pure CS ones.
(comment deleted)
I've hired about half a dozen ML engineers/architects in the past six months. Several of them have EE backgrounds. There's a good bit of ML that touches on hardware (think integrated cameras and similar) so it can be really helpful.

You're mostly on track with your plan to build something. You do need to demonstrate that you have the skill set, but building one giant thing isn't the answer. There's so much that goes into building a giant thing, that I can't accurately access your ML skills.

Ideally I like to see a lot of small things over a reasonable amount of time. Someone with a solid GitHub showing 6-12 months of paper implementations, weekend geez-wiz hacks and various other projects would go right to the top of my call back list.

Hope that helps, good luck with the job search.

Your work looks interesting, would you mind if I sent you an email via the Contact Us page on your website? I'd love a chance to try to get on that call back list.
I am also an EE and have been able to apply ML to my field, wireless comms. It turns out people skilled in the intersection of two fields are very rare indeed.

I'd suggest you look for an opportunity to apply ML/CV/AI in your industry (deep learning for PCB inspection maybe?). Show the possibilities, get some research funding, do a pilot program or similar. Lead and drag your company (kicking and screaming if need be) into the 21st century.

Then you will have ML/AI on your resume, and recruiters will come looking for you.

Thanks for the response.Wireless comms seems like ripe for ML enhancement. PCB inspection is something that has crossed my mind indeed but it is quiet involved due to the sheer number of features ( traces, components, vias, connectors) none of which has pretrained models. Having said that Automation esp FAI( First article inspection) is quiet possible as demonstarted by landing.ai(Andrew NGs) company.Being employee at a publicly trading company, not sure how I can secure funding. Perhaps my focus should be to apply ML directly to something that I do day-day at work.
Would you like to write an auto router for PCB design using ML? A smart one that can indentify components, their properties and choose right connections between them? Have a fast signal going directly and some shitty LED with 10 vias. Or placing power parts with wide tracks and using thin ones for digital signals.
Auto routers already exist and I always route my own PCBs. I am pretty sure the tool vendors are considering or already building up AI expertise to level up their Auto routers. I keep hearing at least in Altium they have come a long way. Gotto try it one of these days.
Wireline EE here. ML in the context of wireline communications has been widely studied (grant money works that way). However, at least in wireline communications there isn’t a lot of gain to be had. This is because we have good physical models of underlying impairments and our ASICS are optimized using those physical models, so ML isn’t able to improve upon that much. Where it can help is where we don’t have good data on underlying physical parameters of the channel. So in this case, you can get a bit more capacity than you would otherwise. So for wireless where you have signal fading and huge variation in multi path interference, maybe there would be benefit as these phenomena are hard to model.

Also, you may not realize but we’ve been using ML techniques for decades in communications. Gradient descent is used to optimize equalizers; maximum likelihood estimation(and equalizer optimization) used for phase estimation in high order QAM. Plenty of other examples. So you probably are already familiar with much of the basic tool kit. I had a wannabe startup founder in ML tell me that there’s no way I could possibly understand the stuff if I didn’t have PhD in that area in CS (I am physics). I just smiled and nodded.

Are you looking to do your own startup or just find a job someplace? The deal with most ML type jobs is that you have to be working at a company that has a need for that sort of thing then pivot into that role because you understand the data really well already. You're not going to find much success any other way.
Not sure it' the best path for you (it could be though!) I'm an EE and applied for PhD programs in control theory (robotics specifically). Now my research focuses on applying deep learning to control under-actuated robotic systems.

Although I went right after my undergrad, there are several in my cohort who were in industry for as long (or in one case much much longer) than you have before starting their PhD.

There are certainly ways to merge your hardware experience with learning. Either applying AI to hardware design, or applying hardware design to speed up or otherwise improve learning, lots of research going on in both areas.

I'm a fellow EE grad, that has been doing software for the past 20 years or so. I started studing ML a couple years ago. I started with a couple of Andrew Ng's courses on Coursera. I found it was a good mix of theory and practice. It's a really exciting field right now (a bit over-hyped, but still lots of room for growth).

BTW, I think the you may have a bit of an advantage because of the math background you presumably have with a BSEE (linear algerbra & differential equations).

Maybe someone who actually works at FAANG can weigh in, but I would think that one of your best bets would be getting into one as a general SWE and then transitioning to AI/ML internally after a year. I recall Google even having some sort of internal program that encouraged this. Getting into Google is a moonshot, but it's possible to do so with no prior professional programming experience if you put in a ton of effort AND get lucky. Amazon seems willing to train too, based on the following experience I had:

I'm an iOS engineer without a STEM background, and I've been contacted by Amazon recruiters for entry-level ML/AI positions. I thought it was weird, but they said they've hired a few people with iOS backgrounds and no prior ML/AI experience who are now excellent ML engineers. I backed out because I knew I would fail the interview process at this point, but it's something for me to think about for the future.

Yes. I have been contacted by Google recruiters multiple times for SWE role(though my resume has no programming experience at work). Apparently, their entry ticket involves reading up Skiena cover to cover and Leetcoding your way through their interview process, which I am absolutely open to.
This is the most direct and predictable path forward, _if_ that is something you are up for, I certainly recommend that route.

There are tons of youtube videos and books (Cracking, Dynamic Programming for Interviews, etc). Definitely do research into questions that will be asked.

Internal transition is always easier, I have several colleagues went from SWE to ML related roles this year. One thing worth noting is that most of them work on building ML infra/platform rather than direct user facing ML features, so it is not drastically different from what they did previously.
this. if you get in as a SWE, you'll end up doing infra or data management/cleaning stuff imho
Random side note, but when is the 'FAANG' acronym going to die? MSFT is killing it, prob the top tech company around these days. Needs to be included in that list.
I agree, Microsoft is probably the #2 top company in AI after Alphabet, should be included
Microsoft Research does a lot in AI but don't forget FAIR, Nvidia, Baidu, and Amazon. Smaller companies like OpenAI are making strides too.
How may I ask is MSFT a number 2 company in AI?
I'd replace Netflix with Microsoft.
FAANGMUA is the latest I've seen...Microsoft Uber AirBnB, I believe.
FAANGMUALCRQRASD

Linkedin, Cloudera, Redhat, Quora, Robinhood, Asana, Salesforce, Dropbox

Not a full answer, just an observation: most ML people I come across don't have CS backgrounds. Many have backgrounds in physics, math and other STEM fields that have a strong computational component (my own background is in control systems, math modeling and numerical computation).

From your question, it sounds like you want to be a software engineer rather than an ML/AI engineer -- is that a fair assessment?

Its certainly good to know that ML doesn't require a CS background. In my own case, My thinking was that because ML/AI has a strong programming component in addition to Math&Stats, my strong Hardware background might work against me. In an ideal scenario, i would like to develop AI/ML applications and wouldn't mind morphing into a SW engineer if the role requires me to. THough SWE by itself would be another steep hill to climb.
I can't help but read the title as something akin to "musicians, how did you become comfortable painting with watercolors?"

I know ML/AI is all the rage. I just feel that targeting it so heavily is a bit shortsighted.

I read somewhere that learning ML/AI isn't the hard part. It is having enough data science background to be able to tell tell what problems fit ML. ML isn't the hard part, finding a problem ML can approximate is.

Maybe that is too simplistic but I can't help after my 1 semester ML course think that most of the ML problems people are solving aren't really suited at all. Like SWE see this cool hammer and now everything is a nail. Maybe I should read up on startups using it successfully for anything but I haven't seen many of those on the frontpage.

https://aws.amazon.com/training/learning-paths/machine-learn...

Patience. Spending that extra time (it helps if you really enjoy it or can program yourself to really enjoy it).

https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_6700... for inspiration.

To answer the question though: I'm not sure what you produce other than maybe blog or publish some analysis using your data skills. And maybe: https://github.com/MaximAbramchuck/awesome-interview-questio...

(source: non-CS engineer at amazon who watched the amazon videos internally before they were made public. I'm not a data scientist yet but sometimes, esp. when people talk about the challenges of AGI, I think about transitioning.)

Thanks for the links to AWS videos. These were posted here on HN sometime back. Will definitely bookmark them and come back to them. At the moment(literally)i am still finishing up Udacity PyTorch and hope to continue wit the venerable DL4Coders part1 and part2. As someone else had posted, coming up with useful implementations of popular ArXIV papers seems to be one sure shot way of building up a personal brand on Github.
Cool yeah! I listened to the first three courses (Math for ML / Linear and Logistic Regression / Elements of Data Science) on my commute, and even though I thought I knew things, just persisting in "re-learning" the material helped a lot to fill in the gaps for me. I was just browsing the links again too, there's a whole lot of other courses/specialities after that too (if not posted there, maybe elsewhere).

I am not an expert, but from what I've heard/seen, being really solid on the fundamentals of regression and feature modeling (and not being afraid to read and apply ArXiv papers) are all key. And eagerness and statistics go a long way and are valuable to companies.

Andrew Ng's courses on Coursera (Machine Learning) are the best ones IMO. Gives you the introductions to the math behind and some practice.
Speaking from experience, almost all FAANG positions I've seen require a degree for ML/AI, and even require a degree for less research-oriented positions like a Data Analyst/Scientist.

Non-FAANGs may be less picky but the competition in the field is too great at the moment (due to MOOCs/Bootcamps increasing supply), and even with an excellent portfolio it may be impossible to stand out. (in my case, despite my data science "fame" most recruiters tossed my resume out immediately during my job hunt a year ago; the only interviews I got were by going above the recruiters. And that was for data science, not even ML/AI)

Even after working as a Data Scientist for over a year, I've received practically no recruiter spam.

I built ML application in my domain which helped demonstrate my capabilities.Networked a fair bit within my company and then got the chance to lead a ML team. Whole process took about 2 years.meanwhile self educated myself continuously over last 3 years. Spent min 20 hours a week coding, reading, learning and discussing ML. Joined ML learning groups helped other folks and learned through their journeys as well.

ML is unfortunately better done in a big company due to data but also a b*Ch due to tremendous friction within org to get things done.

Another key strategy is to commit yourself to build an end 2end ML application, structure your learning around it. I found this a tremendous technique to turbo charge my learning.

Become strong in the background of ML/AI and then learn a language where you can use it. Demonstrate your achievements in it. Help with projects associated with it. Participate in the community.
After reading most of the comments I can try to provide a different perspective.

I am a Director of Data Science and Software Engineering for a mid sized firm (~1000 employees and $150-200MM revenue). I started with a Finance degree then shifted into an analysis position at a FAANG (lots of excel, SQL, learning how to query big data). This eventually led to learning more about tech (python, AWS cloud stack, messaging queues) and after 8 years in the industry giving me enough experience to manage teams of data scientists, software engineers and data analysts.

Although it is so important to know all the software engineering stack, many companies will benefit from simple business intelligence and data analyst roles. I guess my recommendation is to also keep an open mind in looking for these types of roles in the market (data analyst, business intelligence engineer), because given your desire to learn and existing background, its clear you can make a big impact in those companies as well. And it will be much less competitive than traditional CS crowd.

Some food for thought

We gotta stop saying 'FAANG' when MSFT is the arguably the top tech company around these days.
(comment deleted)
Not disagreeing with you (not informed enough to), but top tech company by what measure? Market valuation? Impact of products/services in 2018/2019? Workplace rating?
I’ve always felt that Microsoft fits in with GFAA much better than Netflix.
It seems FAANG has transcended its original meaning from being an acronym to becoming a generalized word for "any highly traded growth tech stock"
Yeah FAANG definitely has that connotation in finance rather than being an acronym suggesting the top tech companies
Amazing that this has-been company is so desperate to inflate its reputation that it posts such laughable conjecture on Hacker News.
Okay, but repeatedly making this point in this thread is derailing conversation. Does it really matter that much? Were you unaware of the parent comment's point being made because MSFT isn't represented?
Can’t forget Oracle either!
GANMAF
...or GANFAM to better emphasize a more healthy spirit of competition and collaboration.
I think this is great advice but there’s an important caveat which is career goals in AI / ML.

A lot of companies that say “data scientist” when they really mean “spreadsheet analyst” are places to avoid if you have career aspirations in ML. In the worst cases it can be a bait and switch (very common) to get overqualified people to babysit rudimentary analytics. Especially avoid places that might do this to pad their staff for any type of acqui-hire or investor signalling reasons, because your career goals will not be acknowledged.

In the best cases, it can be some befuddled IT manager who vaguely thinks they need “AI” but really they don’t have projects that would actually benefit from it. They might be sympathetic to your dissatisfaction in the reality of the job, but will have little power to do anything about it.

Somewhere inbetween is another very frustrating case: situations where the business or product clearly can materially benefit from “real” machine learning, and from the perspective of making customers happy & making money it’s a no brainer to invest time to research implementations, but risk averse management, often with no ability to gain an understanding of the benefits of investing in machine learning, or who want to act as credit / politics gate-keepers for an existing system, puts the brakes on it and retasks you on things that just waste your talent.

EE -> embedded programming -> programming -> financial software -> predictive modeling -> ML.
Wow!. That's got to be the most scenic route to ML, though one might actually get exposed to a lot of Core technologies on the way.
By the time the OP gets there along this path the new hype will be on GQ/JP already.
It's not like I planned that route. Each step in isolation looked reasonable at the time.
Industrial engineer by training here, I honed my chops on Kaggle competitions, eventually winning one. I was recently brought into a FAANG in a ML/AI engineering capacity.

I can’t reccomend Kaggle enough for those who are looking to prove their abilities in the field.

Nice! Another pivot story. How did you make it past the Recruiters and their filters? Just with your kaggle portfolio? Any chance you can post a link to your kaggle profile. Congrats on winning Kaggle and that's no mean feat, considering the competition(pun intended).
It is extremely tough. I left my Civil Engineering career path in 2015 in search of a career in tech. I then applied to graduate school at SMU for an online masters in data science. I am still struggling to find meaningful work, but currently mentoring a data science bootcamp.

This is a very tough track but uf you have software development experience it should be easier to get a role in ML or Data Science.

How did you find that SMU program? I was debating that and a similar program at UC Berkeley.
The overarching theme of that thread reflects Max Woolf's comments: Companies(FANGMA)place a lot of importance on Accreditation and that is pushing a lot of capable folks out of ML/AI applied roles(not talking about inventing the next capsule network that requires a P.hD).
So basically a Luddite?
I'd strongly recommend considering hardware companies in the ML space. They are trying to acquire ML talent but will also value your EE background. This is probably best approached at the usual big ML hardware vendors (NVDA, INTC and AMD) but there are also numerous start ups in the space that may be credible.

Lots of good advice about acquiring skills, I don't have much to add beyond that. I'll just mention that before you jump into the advanced stuff, please understand the terminology and basics very strongly. I've interviewed over twenty people for roles in ML the last year and many (despite having ML on their resume or even some experience in it) could not even explain the difference between training/inference, the meaning of validation, etc. The field is so hot right now that many unqualified folks are trying to get in, often by faking more experience than they really have. In response, I've created a simple 'fizzbuzz' test just so I can quickly screen people.

Naive question. Is ML/AI the "real deal" and here to stay, or is it still kind of just the hype du jour?

Or put another way: are there plenty of problems where ML/AI are valid tools or are they largely cool tech looking for problems to fit into?

ML/AI is here to stay, but currently the marketing and potential impact of ML/AI is a bit exaggerated.
My background is that of an econometrician (ie quantitative economist), and I now work as a Research Engineer at one of the FAANG research divisions.

I think the advice about getting in as a hardware engineer is solid. At my workplace, there's a ton of need for people working on specialized hardware for DL, and for people working on the software that works with it (optimizing compilers, etc).

If you are looking to break into the software side of DL, the first two thirds of the Deep Learning book [1] contains all the math you need to know to pass the interviews. Then, it's just a matter of getting interviews; I found that I needed professional experience deploying DL/ML to do that. I got that by doing side projects at work. For instance, we had a long standing operations research problem, and I spent some free time at work implementing a RL algorithm to solve it. I didn't get too far, but I was able to talk coherently about the papers involved and about how I planned to conduct the project, which went a long way.

[1]: https://www.deeplearningbook.org/

Thanks and I just subscribed to your Byte-sized videos at aiworkbox.com.
Thanks! Let me know if anything's unclear :)
> Then, it's just a matter of getting interviews

Are you implying that, once prepared well enough, the contents of the interviews are simpler than getting actually noticed in the pile of applicants ?

You need to think like an interviewer - what can you reasonably make someone do in half an hour (plus time for chat and questions after)? Apart from being able to parrot deep learning theory, implementing things is tricky. Do you learn anything from making someone implement VGG in their pet framework? Training models also takes more time than you have to spare.

Much easier to quiz the applicant how they would solve a problem, or to discuss a previous project or paper they've published (or are interested in). Some people will find that much easier than whiteboard coding, others will hate it.

It really depends where you apply and if you want an applied or research role. Some places won't touch you unless you've got a publication in somewhere like CVPR. Others will go _hard_ on the stats questions. Other places want to see a strong Kaggle rank or some personal projects. It's really useful to have a portfolio here.

Performing well on the interviews is a skill that you can acquire through practice. If you do 100 Leetcode questions, read through all of Cracking the Coding Interview, and suffer through 30 phone screens, by the end of it, you'll be a hardened interviewee capable of passing an interview anywhere in tech (you can probably get by with much less practice; I'm being purposefully hyperbolic).

Does this mean you'll be good at the job? No. Is this very wasteful? Yes.

Getting interviews, on the other hand, requires you to read the recruiter's mind, and can vary depending on what the recruiter had for breakfast, or if they fought with their significant other that morning. It's much less formulaic.

This is my issue with the phrase "AI/ML" as a catch all. You have an excellent general skillset, but "AI/ML" encapsulates a wide spectrum of jobs.

ML-SWE: SWE with ML focus - building architecture around models, feature engineering, distributed training, etc. Relatively limited ML knowledge needed (IMO). The math won't be helpful for this role. Much more important to have SWE background. If you want this, keep building your programming knowledge (Python) and read books. Would focus on understanding the popular frameworks PyTorch and TensorFlow b/c your work will likely interface with those.

Research engineer: Mostly for MS/PHD background. Farther away from the product and closer to actual research. This doesn't sound like what you want to do.

Data Scientist: ML is a subset of the knowledge needed. Applied statistics as important, if not more so. Doesn't sound like you want this.

A path forward:

(1) Program a lot. On what? Anything at all, b/c you need programming skill to work as a SWE.

(2) If you want to do ML-SWE, program with an eye towards ML applications. Maybe do a simple cloud project that leverages ML - Google Cloud makes this particularly easy for classification tasks. Focus on breadth here, not depth. No sane person outside of academia can keep up with state-of-the-art and truly understand it. Far too much material, so focus on fundamentals.

(3) Work towards your strengths. You aren't some hotshot kid out of college proclaiming to be an AI guru. That would be silly and no competent recruiter would believe it. You know hardware - and AI (neural networks) leverages a lot of hardware. Why not focus on the hardware side of AI? Demonstrate your knowledge of how/why TensorFlow is so effective across distributed hardware, or how CUDA accelerates NN computation, or why TPU claims vs. Nvidia may be up to interpretation, etc. This should be a natural transition given your background.

TLDR; Know what you really want to do. Your background is valuable. Play to your strengths. Don't ring the bell.

Can you let me know a bit more about the SWE-focused ML path? While I'm interested in ML, I'm slightly more interested in the systems that are built around it. In particular, are there resources that can help me get up to speed in designing (distributed and HW-accelerated) ML systems.
If you can run tb workloads across a gpu cluster at 90% saturation you can work in ML.