Skip to content

Compendium of tips to help you apply to machine learning and data science jobs.

Notifications You must be signed in to change notification settings

programmicon/hiring-tips

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

54 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

hiring-tips

Compendium of tips on how to get hired in ML / data science via your mentorship. Includes tools & links. Please keep this repo confidential.

In addition to what's below, you'll find more useful information on our blog page.

What you'll find here

Checklist: after you join

  1. If you don't have a LinkedIn account, get one. Add your mentor and every mentee you know on LinkedIn. And add us admins too!

  2. We have a deal with Paperspace to give every mentee $50 in free GPU credits. Use them! To get your credits, message an admin on Slack or post to the mentees channel.

  3. You can also get $300 in free GCP credits (any service) via their free tier.

  4. If you write a good blog post, let us know and we'll promote it. We can give you significant reach: SharpestMinds content gets over a quarter of a million monthly views across all social media platforms, and we have deals with major data science publications like KDNuggets and Towards Data Science.

Checklist: once you hit the halfway point of your mentorship

  1. Make a list of all the regular, small, technical meetups in your city. Ideally something where you discuss a paper or write actual code in a workshop. Start going, even if you sit in a corner and do nothing the first couple of times. The benefit of having industry people see your face every week compounds quickly.

  2. Check out our list of hiring partners at the bottom of this page. We can often give warm introductions to many of the companies on this list, which lets you to skip their HR screens - a big advantage. Please keep this list confidential. โœจNew: You can now request warm intros to companies directly through the SharpestMinds web app.

  3. Start applying to jobs. Here are some good places to apply for ML jobs that aren't generally known:

    ๐Ÿ‘‰ Applying through Key Values sends a good signal to hiring managers, because they tend to attract good engineers as applicants. (Applying through Indeed sends a bad signal to hiring managers, so you shouldn't do it.)

    ๐Ÿ‘‰ Y Combinator's Work At A Startup page is another great one. This lets you submit a single application to all YC companies.

    ๐Ÿ‘‰ Hacker News puts up a "Who Is Hiring?" post every month where companies post open jobs. A great hack is to look up all the past Who Is Hiring posts at this URL. Instructions on how to apply to each job are included in the comments. Check it out!

    ๐Ÿ‘‰ The Comet ML newsletter is another great place to apply for ML jobs. We highly recommend subscribing: you'll get a list of ML jobs delivered to your inbox every two weeks.

  4. If the hiring manager whose group / company you're trying to join has a Twitter account, follow it. If they have a blog, read it. Same goes for engineers in the group / company you're trying to join.

  5. Don't use Yahoo or Hotmail as your email account when applying to jobs. Instead, you should either (1) Use gmail, but only if your email address is something like [email protected]; or (2) buy your own domain name and set up a mailserver on it. For example, if your name is John Q. Smith, your email should be [email protected], [email protected] or something like that. Owning your own domain is much better than using gmail.

  6. Build a personal website for yourself. You don't need to know how to code one. The easiest way to do this is to use GitHub Pages. The slightly harder (but better) way is to host at your own domain name, and build the website with an editor like Squarespace, Weebly or Webflow. (Pro tip: add a link to your website to the bottom of your email signature.)

Checklist: at a networking event or job fair

  1. You should be mostly trying to talk to companies that you superficially fit with. i.e., there's a crude label you can give yourself in a quick conversation that makes you seem like you'd be unusually suited to work at that company. It doesn't have to be an exact fit, just something that signal-boosts you vs. all the other junior applicants who won't be using this strategy.

  2. Example: suppose you're a former controls engineer. Then you can mentally label yourself with the keywords, e.g., "controls & industrial engineering". And therefore, you should be targeting companies like Canvass (industrial IoT), Quartic.ai (smart manufacturing), and SolidState (process optimization for chip manufacturing). Everyone has at least one label they can use; many have several. If you're not sure what yours is/are, message an admin and we can help you figure it out!

  3. When talking to a company rep at a job fair, remember that you're the 50th of 100 people they'll be talking to that day. Your label / keyword is the most information you can reasonably expect them to retain about you. So make it stick!

  4. People are much more interested in their own problem than in yours. So ask them what their problems are!

  5. When you talk to someone, get their business card and add them to LinkedIn. LinkedIn is key, because otherwise they'll forget the link between your name and your face. Make sure your LinkedIn has an up to date profile photo that looks like you.

  6. Reach out to them after the event ends, and follow up. Expect to have to follow up an anomalously high number of times. Networking events always generate a ton of connections for everybody, most of which go nowhere. Personalize your follow ups. They don't remember you, but you should remember them - that's how you stand out!

Checklist: how to network on LinkedIn

  1. For most people, there isn't any value in collecting random LinkedIn connections if you don't know them and they don't know you. You should connect with someone on LinkedIn if you, at a minimum: a) have met them in person, or 2) have already had 2-way communication with them some other way (email, Twitter, etc.).

  2. If you want to follow someone's posts on LinkedIn (e.g., Andrew Ng), don't connect with them; follow them.

  3. While you should never try to connect with random people you don't know, it can be a good idea to connect with specific people you don't know. For example, if someone is a hiring manager at a company you want to work at, it can be a good idea to connect with them. The points below explain how to do that.

  4. Here's the situation. Suppose you really want to get hired at Uber Data Science in Seattle. You're being mentored by, e.g., a Senior Data Scientist at Deloitte.

  5. Start by searching for folks who work at Uber DS in Seattle on LinkedIn. Identify their Twitter accounts, Medium blogs, any online presence by any of them. Engage with them personally as much as possible - smart, positive comments on Twitter, Medium posts, etc. Do that for at least 1 week with as many of them as possible.

  6. Then, connect with as many as you can on LinkedIn with a personal, customized message ideally that references other stuff they've written online. People love it when you quote their own insights back to them.

  7. Once you're connected and you can message them without character limits, try to start a conversation. The trick is, don't ask for something - offer something. One good strategy is to combine an idea with an implied compliment. Example: I'm working on this data science project with a Senior Data Scientist at Deloitte (instant signal of high value). I had this thought / idea / insight, I've been following your work for the last little while, and been really impressed, and I'd really value your thoughts on it.

  8. This says to me: 1) A Senior Data Scientist at Deloitte thinks you're a valuable enough person to spend time working on a project with, so you must be valuable. 2) You think independently, since you've had this insight. 3) you've been following my work on the Internet and despite having access to a Senior DS at Deloitte you respect my work so much that you think I'm worth reaching out to about this.

  9. Do this with a small handful of people at first, and you're almost guaranteed to start a productive conversation with at least one of them.

  10. Important: Don't send generic messages to a ton of people. Impersonal LinkedIn spam will only damage your reputation. When in doubt, ask yourself: Does this message make it obvious that I've spent more than 5 minutes investigating this person's online presence? If the answer isn't "heck yes", then keep working on your message.

Checklist: how to apply

  1. Don't have a resume? Make one. Use this template for the format, and use this template for the content. Go through it and correct these very common resume mistakes. Then go through it again, and correct these other resume mistakes that are specific to ML and data science!

  2. It's a very good idea to add SharpestMinds to your resume. You should mention your mentor's name and company (unless your mentor asks you not to), so that their prestige will rub off on you. Keep in mind that we'll continue to support you even after your mentorship ends, so it's correct to say on your resume that you're still at SharpestMinds, even if your term has ended. Here's an example of how to include SharpestMinds on your resume:

    How to include SharpestMind on your resume

    Important: If you haven't been in the program very long (like 2 months or less), you might want to title this, e.g., "Machine Learning Engineer (Project)" instead of just "Machine Learning Engineer". If recruiters see you've only been a Data Scientist for a month, they may wonder why you're trying to switch jobs so soon!

  3. If English isn't your first language (and even if it is), consider using Grammarly for your resume, blog posts, and emails. Hiring managers will often reject you out of hand for misspellings and grammar errors, and Grammarly is an easy way to save yourself from that.

  4. If there's a specific company you're interested in working with, and that company has open source projects on GitHub, it's a very good idea to contribute to their open source codebases. For example, if you really wanted to be hired by Uber, you could contribute to this project. If you have a contribution accepted, you can and should list this on your resume under a section like "Open Source Contributions".

Checklist: how to interview

  1. To prepare for the interview, follow the advice at the end of this blog post. It's geared to software engineering, but can be easily adapted to ML / data science.

  2. To prepare for the interview, use the Briefcase Technique - described in this blog post. It's especially useful if there's one company that you really want to work at and you get an interview. (Ignore the marketing-speak in the linked blogpost, the technique works and that's what matters.)

  3. To practice interviewing, there are two resources you can use. First, you can message an admin on Slack and ask to be connected to another mentee for practice interviews. Second, you can use pramp. Pramp (short for PRActice Makes Perfect) is a free interview prep service that pairs you with interviewers to practice job interviews. Recommended by one of our mentors! ๐Ÿ‘

  4. Find out who is going to be interviewing you, then look them up on LinkedIn, Twitter, and Facebook. Most questions in interviews have many correct answers, so the more context you have on your interviewer, the better you'll be able to predict which correct answers they're looking for! Elite tip: It can be a great idea to quote some of their own insights back at them, if they've written in blogs or on Twitter.

  5. During the interview, you might get asked if you have any questions for the interviewer about the team or the organization. Here's a great list of questions you can ask; pick a few you find most interesting.

  6. Getting no follow up after an interview is not unusual - in this or in any other activity where you're selling yourself. Remember that you're playing a numbers game: each time you practice the technical interview your odds for the next time around go up.

  7. If you don't hear back from the interviewer: follow up with them 2-3 times by email (once every 2-3 days) with a simple, polite request for feedback. If you can combine that with a thought or a suggestion that would help their business (e.g., "I was thinking about the way you model sales for widgets, and it occurred to me that you might get better performance if you used model X instead of model Y because of Z"), that's ๐Ÿ’ฏ.

  8. Your frame of mind is: you are a person who can add significant value to their business. If they don't want you, no problem: you will find another business and you will add value over there instead. There's no emotional component to the decision from either side; it's just business.

  9. To keep your energy high, focus on the process, not the goal. Allow yourself to feel a sense of accomplishment when you learn things that improve your process for applying / interviewing / etc. Focus on the inputs and the output will come eventually ๐Ÿ’ช.

  10. In other words: learn as much as you can from each no, then deliberately move on. It doesn't matter how many nos you get. All that matters is that one of them is a yes. And that will happen!!!

๐ŸŒ If you are not a US or Canadian citizen or permanent resident

If you aren't a resident of either the USA or Canada, you might need a permit or a work visa to get a job in either country.

If you want to work in the USA, you'll probably need an H1B visa. Getting one is hard, and it's gotten harder recently. It also restricts your options to only applying to companies that sponsor H1B. It doesn't cost a company that much (~$5k) but not all of them sponsor H1B because it can sometimes take up to 6 months for one to get approved.

If you'd like to work in the USA eventually, you should seriously think about first working in Canada, building up a year's experience, and only then going back and applying for jobs in the USA. Not only will you be in less of a rush that way, you'll also have the leverage that comes from having 1+ years of industry experience. In fact, some employers don't sponsor visas for junior engineers, but do sponsor them for mid and senior level engineers. That means you'll have more options if you're in the latter category.

If you're trying to get a job in Canada, the visa process is a lot easier. Canada has a program called the Global Talent Stream (GTS), which is designed to bring highly skilled international talent into the country. The GTS is similar to the H1B, except that there are no quotas and you can get approved for one in 5-10 business days instead of six months. You do need to get a job that has a minimum annual salary; you can find out what that minimum is at this website.

SharpestMinds deals for international residents

If you're an international resident trying to get a job in Canada, SharpestMinds can help you in two ways:

  1. We have a deal with MaRS, a Canadian government/industry organization. Under our deal, MaRS staff will personally support any SharpestMinds student in navigating Canada's GTS visa system. But more than that: MaRS will also handle the GTS application process for any company that hires one of our grads! Make sure to mention this if you're interviewing at a Canadian company, because they need to know this before the offer stage. Having MaRS handle their application process probably saves them ~$4k in legal fees they'd otherwise have to pay if they hired you.

    How do you bring up this deal during an interview? Try saying something like: "If [company name] is open to hiring through the Global Talent Stream, I'm part of a program that covers the legal work to file an application for any company that hires me through GTS, at zero cost except the government filing fee. I can put you in touch with them if you want." If they ask for more information, you can tell them what's on this page, or even refer them to this repo if that's easier. And of course, you can connect them to an admin, who will answer their questions and connect them to the MaRS team.

  2. We also have an agreement with GlobalSkills.io, a recruiting company that places internationals at Canadian companies through GTS. If you're international, they can connect you to their hiring partners and help their partners with the GTS application process.

Both of the deals above are free for you to use, so take advantage of them! To redeem either deal, DM an admin on SharpestMinds Slack and we'll get you set up.

Random FAQ

What if I don't know what career path to follow?

Use the Waterloo strategy. Here's what that is: (1) you work at a tiny startup that can't afford anyone better; (2) you work at a BigCo or consulting firm like KPMG or Oracle; (3) you work at a startup at Series A or Series B; (4) you work at Google or Facebook; (5) you work wherever you want.

I just got a job offer. Should I negotiate the salary?

Yes!!! But before you do, you should do two things. First, tell your mentor about it so they can help you negotiate. Second, read this blog post. It'll be worth your time, I promise.

What kinds of meetups should I go to for networking?

Most meetups you go to will be a waste of time, but when you're starting you should go to all of them and figure out which ones are good and which ones are bad. The good ones will (1) be technical; (2) be small; and (3) repeat often (e.g. once a week). If you can't get all 3, then prioritize (1) and (3). A meetup that repeats often means you'll build long term relationships with the participants, many of whom will be hiring managers you want to work for.

This strategy is way more successful than going to one-off "networking" events. Real networking is more than adding someone on LinkedIn: it's about building relationships That compound over time. The sooner you start, the better.

How can I tell if a company's ML team is actually good?

Evaluating the work of a company's ML/DS team from the outside can be irreducibly hard. Usually, you can't assess the quality of their work upfront because as an outsider you can see neither the inputs nor the outputs. My best advice is: ask them during the interview. Try to figure out what goes in, what comes out, how the pipeline is organized, and then ask yourself if it all seems reasonable.

We also try to help with this problem by giving companies technical ratings in our hiring partners list, at the bottom of this page. (Note: missing ratings don't necessarily mean we thing a company is bad, just that we may lack information.)

How do I follow up on an intro email?

Here's a great phrase one of our earliest mentees used to use after getting an email intro from us to company XYZ:

Can you tell me more about what XYZ co is up to? What's the tightest bottleneck at the moment?

^ What a great line! It shows he's zeroing in right away on what's most important to them. Use it! (Adapt the wording to suit your personality. You may also have to substitute "XYZ co" for "your team at XYZ co" if XYZ co is bigger than ~20 employees.)

Here's an example of an incredibly good followup to an intro email. Your followup should probably be shorter than this, but I like this one as an example because it nails everything you might want to say in a followup.

Hi Edouard, Thanks for the intro! (moved to BCC)

Hi [name], It's great to meet you!ย 

I read a few online articles about your mission with [company name], but it was your Quora post that really helped a lot of my thoughts and ideas coalesce into more definite questions.

For example, what makes a person interesting, and how can you quantify whether someone would fit in a certain group? What are the best ways to facilitate meaningful interactions between humans and what are good metrics to quantify how successful the interaction was? How can a social network scale without diluting the essence of what makes it so fun?ย [NOTE: These questions are specific to the company, which is a special kind of social network.]

I'm pretty excited about the approach [company name] has taken to address these complicated and fascinating questions, and I would love to talk about what I can offer to help your mission.

A little more about me: I'm a painter (mostly watercolor), as well as a data scientist. Given these two interests, my specialty lies in taking numbers and functions and turning them into visually appealing images that convey complex ideas in a simple, and visually appealing manner.ย  I also have a passion for both communicating and absorbing new ideas.

If you want to learn a little more about me I have a website where you can find aย blog postย about me, as well as other posts about code I've written: [link to website]

My current project, with a SharpestMinds mentor, is taking some medium size (~7 GB, 40 columns) data and feeding it into machine learning models to predict changes in customer behavior.ย 

I'm pretty excited to take the skills and knowledge I have and apply them to helping to build a great social networking platform for [company name]. I would love to schedule a phone call to chat a bit about what I can offer to you, and to see if I would be a good fit on your team.

Best,

Is there anything different about being a data scientist at a small (~20 employee) company?

Yes. I won't be able to do any better at explaining this than to point you to this Medium post.

If I'm given a take home test with no deadline, how long should I take to submit it?

Here's some advice from our mentors:

There is always a deadline. If not mentioned, ask for it. Many peope think that if you have a FT job and turn the assignment in less than a day, you are taking time off your current job which is a red flag.

It's totally up to the employer. (...) For the problems with no deadline, spend as much time as you need to. They're more concerned about the quality and how you answer the question than handing it in as soon as possible.

In other words: it depends. When in doubt, ask your mentor or message an admin on Slack.

Do I have to apply to jobs on my own, or does SharpestMinds refer to me companies?

Both. We can (and do) refer you to companies directly, but you absolutely need to continue applying on your own - otherwise you'll miss out on a ton of opportunities that you'd otherwise get to see.

But our hiring network gives you a second advantage beyond direct referrals. When you apply to companies in our network and get turned down, it's often possible for us to discover the real reason why. In normal cases, when you apply for a position and get turned down, you'll never find out why. But when you apply to companies on our network, we're often able to use our personal relationships with them to get feedback that helps you improve your next application.

The best way to think about it is this: your job is to keep applying to positions, and our job is to increase the chances of each application leading to a high-paying job offer.

About

Compendium of tips to help you apply to machine learning and data science jobs.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published