The world’s leading publication for data science, AI, and ML professionals.

How I Went From Being a Sales Engineer to Deep Learning / Computer Vision Research Engineer

Guidance, tips and suggestions that I would have loved to receive when I was in the process of my career change to DL/ML/CV.

Photo by Alex Knight on Unsplash
Photo by Alex Knight on Unsplash

With the current boom in Deep Learning / Machine Learning, more and more people want to change their domain and enter this exciting field. However, it can be daunting for anyone who isn’t from the field to take their first step. That is why I want to share my journey from being a Key Accounts Manager at Siemens Healthineers to becoming a part of the global Innovation Team at Fugro as a Deep Learning / Computer Vision Research Engineer. I’ll start with a brief background of myself, followed by the steps I took to get here. Below is the table of contents if you want to scroll and skip to sections that interest you.

  • Introduction
  • My Top 5 Learnings From My Technical Sales Role
  • Masters Degree as a Stepping Stone for a Career Change
  • Coding/Programming Proficiency
  • Learn to Touch Type [Optional but Recommended]
  • Online University Courses or MOOCs to Gain Knowledge
  • Kaggle to Gain Some Hands-On Experience
  • Google Colab for Training Your Models
  • Few Libraries for Deep Learning (Computer Vision)
  • Job Search Tips ◦ Resume ◦ LinkedIn ◦ Bridging the lack of experience gap ◦ Job portals ◦ Applying directly on the company website

  • Conclusion

Introduction

I did my Bachelors from the University of Mumbai in Electronics and Telecommunication Engineering. I am a tech-savvy person and love technology. During those days, I was passionate about embedded systems and worked a lot with microcontrollers, sensors and actuators to build stuff. Creating my own PCBs, soldering components, programming controllers, interfacing with Computers etc. was super exciting for me. I had created a blog on Microcontrollers and Electronics and loved writing technical articles about concepts and projects.

I really wanted to join as a technical professional in the industry after graduation and do research and development. However, I didn’t search for Jobs outside of the campus placement. I had gotten an offer from TCS but got an opportunity to sit for pool campus recruitment of Siemens as a dream company. I managed to pull through the interviews. Although I had indicated I wanted to do R&D, they weren’t recruiting for that profile. I got an offer for a Graduate Trainee Engineer position which I accepted. It stated that the final posting would be based on the business requirement.

The role was a Technical Sales role and I was totally shocked since I wasn’t expecting this even in my wildest of dreams. I still had the offer from TCS and was considering switching. However, I ended up joining Siemens anyway. And I must say that it turned out to be a good decision. I grew both professionally and personally with that experience. I think everyone should focus on these five points in their career.

My Top 5 Learnings From My Technical Sales Role

  1. Soft skills are more important than you think. Both verbal and written communication skills are equally important. You may be a genius, but unless you convey your thoughts coherently to people, becoming successful would be extremely challenging. (This is the reality.)
  2. Become an expert in whichever field you are. It doesn’t matter in which vertical you belong, be it commercial or engineering or research or any other, being proficient and knowledgeable about your work will differentiate you. Having a passion for what you do shines here because it lets you upskill yourself while enjoying the journey.
  3. Don’t be afraid to speak what you think. If you have ideas just let it out there.
  4. Be punctual, respectful, professional and courteous.
  5. Make connections and grow your network. This is quintessential for growing as a professional.

Despite being in a good MNC with a stable job, I still longed for being in a technical role. I was fascinated by Machine Learning and was doing Andrew Ng’s ML course on Coursera along with learning about how Diagnostic Imaging technology works as part of my job! I saw masters as the logical path for a carrier change.

Masters Degree as a Stepping Stone for a Career Change

This is a very popular option that people around the globe take (and I also took) to make a career change and also shift to a new country where there are more opportunities for their domain. However, be very careful while doing this. If you just completed your undergrad program, I would recommend you gain 1 or 2-year software dev experience before pursuing masters since that makes the job hunt phase a bit easier. And software developer experience would help you understand how the industry works. I did my MASc from the University of Waterloo because of its innovation, research and entrepreneurial spirit. Few things that you should keep in your mind are as follow.

  • Don’t assume that because you will have a MASc or MS degree, companies will come flocking to get you.
  • Try to do a thesis based masters over a normal program/course-based masters at least for the DL/CV/ML field, since this will allow you to work on a large project. The experience that you’ll gain over the duration of your thesis work is far superior to any course project (in almost all cases). And the university will pay you to study. If you are shifting to a new country, chances are that currency conversion might diminish your savings and you might not have sufficient funds, thesis-based masters is your paid studying opportunity. To the best of my knowledge, all MASc programs are funded in Canada. Here is a list of few labs/profs in Canada (in no particular order) that you can look at while deciding for your masters. ◦ https://uwaterloo.ca/vision-image-processing-lab/https://mila.quebec/en/https://www.trailab.utias.utoronto.ca/https://uwaterloo.ca/autonomous-vehicle-research-intelligence-lab/https://kimialab.uwaterloo.ca/kimia/https://www.cs.utoronto.ca/~fidler/https://www.gwtaylor.ca/https://uwaterloo.ca/scholar/mcrowley/lab

  • When you are doing your masters, please ensure that you make one project for every course that you take. And ensure that you properly document it and put it on your GitHub profile along with the code. If you do not have a GitHub account, please create it today. This is what companies look for. Because it is a good indicator of your programming capabilities before meeting you or before giving you an online test. And these projects with corresponding GitHub repositories will fit nicely into your resume and make it impressive.
  • Don’t just take easy courses because you want good grades. Take the courses that you feel are relevant to the kind of work you would like to do after graduation. Challenging courses will give you the opportunity to grow and learn a lot in the limited time that we get while doing masters. Nothing useful will grow in the comfort zone.
  • Publish papers about your work in conferences or journals. (Not required, but if you can please do it.) You can start by publishing it on arXiv first. Because if your work is good, people will start citing you and you’ll utilize the period till publication. (Note: Some conferences/journals do not accept papers published in arXiv, so please ensure that you know beforehand about your target publication.)

Coding/Programming Proficiency

If you want to enter the software world, programming skills are paramount. You need to be proficient in solving coding challenges because every company will throw you one. You need to have your data structures and algorithms sorted one term before you graduate in case you are a student. Start solving daily problems on competitive coding sites (a few are listed below).

It is what it is. You need to be able to solve coding challenges, on windows notepad or google docs, on a whiteboard and be able to think out loud throughout the interview and communicate effectively. Well this step itself has books written for it. So I’m not going to cover how to do it in this article because that is beyond its scope.

Usually, programming language would be of your choice, but if your role requires that you must be proficient in a certain language such as C++, you will be asked to program in that.

This step takes time, patience, dedication, commitment, perseverance and motivation. Please give yourself a head start by beginning today.

Following are a few resources that you can use for your preparation.

  1. Cracking the Coding Interview Book
  2. https://www.hackerrank.com/ – This is beginner-friendly.
  3. https://leetcode.com/ – mandatory for FAANG (Facebook, Amazon, Apple, Netflix and Google)
  4. GeeksforGeeks | A computer science portal for geeks
  5. Coding Tests and Assessments for Technical Hiring | CodeSignal
  6. https://www.coursera.org/specializations/data-structures-algorithms
  7. https://www.codechef.com/
  8. https://github.com/qiyuangong/leetcode [LeetCode Python solutions]
  9. https://github.com/haoel/leetcode [Leetcode C++ solutions]
  10. https://github.com/keon/algorithms [Python implementation of various algos]

Learn to Touch Type [Optional but Recommended]

If you are working with a laptop or computer, you will have to use the keyboard. And this skill will make your life easier by allowing you to focus on the content and not on pecking the keys. You will be able to code faster if you don’t have to look for keys while you type. There are several sites for this, but I’ll share a few that I have used myself.

  1. https://www.typingclub.com/ – Excellent to learn touch typing.
  2. https://10fastfingers.com/typing-test/english – To gain speed
  3. http://keybr.com/ – To learn touch typing
  4. http://typeracer.com/ – To gain speed

Online University Courses or MOOCs to Gain Knowledge

With countless courses being available online, you might get baffled while making a choice. However, remember that one good project is worth a lot more than online courses. But, in order to start, you need the initial knowledge. I’m suggesting the following resources, but there are a ton of more. Feel free to explore the internet. (In no particular order.)

  1. https://www.coursera.org/specializations/deep-learning – I would recommend this specialization for anyone who wants to start their career in Deep Learning. It is by Andrew Ng he explains things nicely.
  2. https://www.coursera.org/learn/machine-learning – If you want to learn about Machine Learning.
  3. https://www.youtube.com/playlist?list=PL3FW7Lu3i5JvHM8ljYj-zLfQRF3EO8sYv – If you want to break into Computer Vision using Deep Learning.
  4. https://atcold.github.io/pytorch-Deep-Learning/ – Deep Learning NYU course (LeCun)
  5. https://www.youtube.com/playlist?list=PLoROMvodv4rOhcuXMZkNm7j3fVwBBY42z – If you want to learn about NLP
  6. https://keras.io/examples/ – If you want to start with Keras, direct examples. Quickly prototype and learn about different algorithms. However, beware that it was frowned upon in the industry (tf1 era) because of its level of abstraction. Be sure to be comfortable with at least TensorFlow or PyTorch.
  7. https://pytorch.org/tutorials/beginner/pytorch_with_examples.html – Awesome tutorial for PyTorch, there are plenty more on their official website.

This list can go on forever, there would be a ton of lists available on GitHub, this is just to give you some initial direction. Please remember to always build some project or work on some dataset on your own once you finish a course. That is the only effective way to actively learn.

Kaggle to Gain Some Hands-On Experience

https://www.kaggle.com/ is a great platform to apply your newly gained deep learning skills on actual datasets. There are several challenges available that you can try and get hands-on experience. Kernels are available for you to run code on so that you are not limited by your hardware limitations.

Google Colab for Training Your Models

Training deep learning models requires GPUs and https://colab.research.google.com/notebooks/intro.ipynb is a very good place to get free compute resources. You get access to GPU and TPU kernels for free.

Few Libraries for Deep Learning (Computer Vision)

These are the typical libraries that you need to be proficient with if you want to work in this domain.

  1. https://pytorch.org/ – For deep learning
  2. https://www.tensorflow.org/ – For deep learning
  3. https://numpy.org/ – Numeric computations using matrices
  4. https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html – Image Processing and Computer Vision
  5. https://pandas.pydata.org/ – Handling tabular data
  6. https://matplotlib.org/ – Making plots and graphs
  7. https://scikit-learn.org/stable/ – Machine learning algorithms

Now let’s assume that you’ve done all of the above steps and are ready to go to the market. The next step is job hunt and it can be daunting. Since I switched from a sales role to a research engineer role, I think I should share some tips with you.

Job Search Tips

If you are a new graduate this step can feel a bit strange since you might not be aware of how it works. Broadly speaking it will be something on the following lines.

  1. Gain knowledge, make projects, coding practice, gain experience via internships, hackathons, freelancing, contributing to open source projects.
  2. Build your resume
  3. Start searching for jobs via online portals like LinkedIn and apply online
  4. Once you get a call there are a few steps: (For in-depth explanation I encourage you to read up Cracking the Coding Interview book.) • Introduction/Screening call – This will be by the HR to get to know about you. After this step, you will likely get a coding challenge. • Technical screening- Usually a coding challenge. Can be offline, online, on-call with a team member. • Technical Interview – Interview with the tech team. Can be multiple rounds. • HR Interview – Final interview with HR. Nothing technical, just conversation. Salary negotiation is done here. • Signing the offer and joining! 🙂

Let us look at a few points that I want you to focus on.

Resume

I can’t emphasize enough the importance of your resume. This is what will get you interview calls. Please spend some time building a quality resume. Few things to consider while building a resume. (Again there are a ton of articles online that show you how. I’m just giving the initial guidance)

  1. Ensure that you absolutely do not create a job description resume by merely stating what was the role description in your experience section.
  2. Use action words, metrics, results in your experience description. Something like "I did this in project X that resulted in a direct improvement of y% with respect to metric z." Mention what you did. Don’t write we did this, write about your contribution.
  3. Please ensure that there are no typos in your resume (sometimes we tend to forget the basics), it is properly formatted, and that the font size is readable.
  4. I’m not sure what the industry agrees on for the length of resume, but I followed the 1-page limit, with the two-column format.
  5. Clearly explain your projects. Keep it brief enough to spark interest. A detailed explanation can be done once you get talking with the company.
  6. Provide a link to your LinkedIn, GitHub profile and any other portfolio, blog or website that you have.

I had used this LaTeX template: https://www.overleaf.com/latex/templates/deedy-cv/bjryvfsjdyxz. Feel free to use Word or whatever you feel comfortable with.

I’m sharing my resume for reference, that got me calls from Qualcomm, AMD, Huawei, and several others. (I’m not saying this is a model resume.)

Source: By the author
Source: By the author

LinkedIn

Please create a https://www.linkedin.com/ profile today, if you haven’t already. This is a very important step. Complete your profile properly. Search for how to make an impressive LinkedIn profile and make yours awesome. And start connecting to people from your industry. For jobs, I used LinkedIn heavily. Perhaps I can be your first connection? (My LinkedIn Profile)

You can reach out to HRs, hiring managers or team leads directly on LinkedIn. Not everyone will respond, but those who find your profile interesting will definitely respond. Do not underestimate the power of this step. If you find a posting, look up the company, find out the potential hiring manager and talk. It is a great way to get your profile noticed. It shows that you are interested and have gone the extra mile to reach out.

Don’t be afraid of rejection, because success lies beyond that. I had given close to 15 interviews (and that many rejections) to find the right job for me. So keep on pushing forward! You’ve got this!

Bridging the lack of experience gap

You might be wondering well how do I start if I don’t have any experience? You can take the following steps to gain experience.

  1. Internships: Paid (by you to do the internship [I guess this is in India] or to you for doing the internship) or unpaid, can help you to gain industry experience. Following is a list where you might be able to find one. • https://github.com/pittcsc/Summer2021-Internshipshttps://www.forbes.com/sites/susanadams/2015/01/30/the-10-best-websites-for-finding-an-internship/?sh=25e96e8d1b44

  2. Participate in hackathons: This is a great way to gain experience, work on a project and potentially win prize money. Chances are you might meet someone from the sponsors and land an interview. • https://mlh.io/seasons/na-2020/events

  3. Contributing to open-source projects: • https://github.com/freeCodeCamp/how-to-contribute-to-open-source

  4. Freelance: • https://www.upwork.com/

  5. Look for roles that say fresher/beginner. If you have experience in another field, for a switch it is highly likely that you need to start over.

Job portals

Here is a list of few portals that can be useful to you in addition to LinkedIn for finding job postings.

  1. https://angel.co/jobs [Startups]
  2. http://indeed.com/
  3. https://www.glassdoor.com/index.htm
  4. https://www.monster.com/
  5. https://www.meetup.com/topics/job-search/

Applying directly on the company website

All companies have a careers page. You can apply directly on their websites for any openings that you may find interesting. For example https://www.fugro.com/careers, https://careers.google.com/d/, https://www.amazon.jobs/en/, etc.

Conclusion

We’ve broadly seen the steps that you can take to make a career change to the Deep Learning / Machine Learning domain. The most important point to remember here is that no matter what you want to do, always "Believe in yourself and in your ability to succeed come what may". Keep on working towards your goals and take daily steps towards it. You will get there! If you need guidance, feel free to reach out on LinkedIn, I’ll be happy to chat.


Related Articles