Personal Experience: Software Engineer Job Search in Canada during COVID-19: Apr 9th - June 1st(53 days)
Published: 2020-05-31 19:26:43

This article was originally posted at `https://blog.rajivabraham.com/posts/job-search-2020`
# Purpose.
This article is about sharing my job search experience in case it's interesting or useful to anyone. 
# About me
I had decided to come back to a full time job after more than a year at my startup 15Rock. I have been developing professionally for 12 years now. Though twelve years is a big number, opportunities and circumstances, made me a generalist instead of a specialist i.e. I had maximum two years experience in any technology that I had worked on. So, I never fully fit the `Senior/Architect Java/Ruby/Python` profiles where companies expected in depth knowledge of technologies.

Also, in my free time, I like exploring concepts(Functional Programming, Logic Programming) which I believe are significant levers of productivity and developing my own libraries([Mercylog](https://github.com/RAbraham/mercylog), [Thampi](https://thampi.readthedocs.io/en/latest/), [Jaya](https://github.com/RAbraham/jaya)) when I could have spent that time, perhaps, learning current industry standards like Apache Spark, Deep Learning, Tensorflow or explored SQL in depth. 
# Job Search Strategy
I was applying for Machine Learning and Data Engineer roles as that was my recent experience and I'm really excited to apply all the software engineering processes that I obsess about(Yes, TDD ;) ) to the field of machine learning and data engineering. I had around 6 months of machine learning engineering knowledge and 2.5 years in data engineering in Python.
# Hiring Environment
I was having lunch with an ex co-worker who was working in an interesting company, I wanted to apply to. When I broached the topic, he said, "Just to let you know, I got laid off last week". Companies had hiring freezes and were laying off people as well. This led to increased competition for the few companies that were actually hiring. My friend in Shopify, mentioned that they were seeing 10-20 times the normal volume of job applications. I did panic a bit and applied for 1-2 jobs though I didn't necessarily feel drawn to them. 
# Data
Since LinkedIn, where I post too, has a minimal blogging interface, I have my raw data in this [Google Sheet](https://docs.google.com/spreadsheets/d/1uPzfNybOdnfBantfdpDK_J_VtvQfM-FcSBNC3jxCSWc/edit?usp=sharing) and will use a textual format below.

* Job Search Period: Apr 9th - June 1st(53 days)
* Over all, I had applied to about 22-25 companies and 11 responded. In the Google Sheet above, you can see the first response in days. Most companies did not send a response after the first automated reply.    
* I got one offer from Bear Health Technologies


# Companies
Here I'll try to list my experiences for select companies.

## BenchSci
BenchSci is a startup in the pre-clinical R&D space. They were very quick to move with the interview process which I liked. I had 4 technical rounds. I liked talking to all of them. They were smart, friendly and it felt like a high quality team. If you are interviewing with them, they like to give you simpler variants of problems they see in their day to day work. Prepare yourself to get work assignments in an email and quickly import them to your laptop. So, before the interview, prepare:
* Be quickly able to create a Python project, setup virtual environment and run unit tests(pytest).
* Setup an existing postgres database and query editor(e.g. Postico for Mac). You may be given a CSV file so prepare in advance on how to import CSV files into a database.  

## Shopify
Shopify, according to Glassdoor, had a hiring surge during COVID-19. What I liked best about the interview process was the detailed feedback I got which I really valued. Also, since I had another offer in hand while I was interviewing with Shopify, the coordination team worked hard to accommodate my request to expedite the process. I'm thankful as I know they were getting a lot of applicants. All the interviewers were very friendly as well. 

## Amazon
* They have a pre-screening programming interview to the normal pre-screening recruiter call :). 
* During the online pre-screening programming interview, I mistakenly pressed Escape and then the back button and it logged me out. There is a two minute wait period before you try again :). It's a small thing but I thought you should know.

## Zapier
Zapier has been a remote first company even before the pandemic. I found it on a niche job site which promoted companies with better work life balance.  I suspended the process after I got an offer but I really liked my conversation with the recruiter(Stephanie McDonald). She mentioned a phrase which really stuck: "Small Ego, Big Empathy". She used it to describe the kind of people they were looking for.
# Finally..
I accepted an offer as a Machine Learning Engineer with Bear Health Technologies, a startup making a digital operations software that automatically indexes and summarizes large amounts of medical information reducing the time and cost to prepare and assess a medical brief. Subsequently, I had to suspend my interview process with Keebo, RelationalAI and Zapier. 
# Lessons(and Advice?)
Since the middle of May, I have noticed more activity as companies seem to be ready to open up hiring gradually in the next months. Hopefully these experiences below will still be of use to you.

* Public Announcement on LinkedIn: I publicly announced on a LinkedIn post that I'm looking for a role. This prompted my ex manager at theScore to reach out to me and ask if I was interested in working again at theScore. Though theScore had a hiring freeze at the time, it was reassuring to know that maybe in a few months time, something could work out with a team I loved and enjoyed working with. This made me more choosy with the roles I was applying to. Another contact connected me to someone who helped me out with other companies and recruiters. A third contact reached out to me to apply to his own startup. Another contact offered to refer me to his company.
* LinkedIn: If there was a company I liked, I would check if there was anyone in my network related to that company. Apart from direct contacts, I got my interview call for Ecobee because I knew someone who knew someone at Ecobee i.e 2nd degree contact. So don't hesitate to reach out to your network to help you to connect with others.
* Building a Network: Out of the 11 companies that responded, 5 were referrals and 2 reached out from my network. Though I'm uncomfortable with the word 'networking', I love connecting :). I realized very early in my career that I must make friends outside my immediate team within the company and outside. Though people think I'm extroverted, I find it uncomfortable to go to new meetups especially when I'm tired in the evening after work. But I kept at it, often, telling myself to meet one new person and then I could go back home. Just one new person, that's it. And this habit has helped me immensely. When I moved to Toronto, I made new connections, found mentors who reignited my drive to go deeper into programming and found all my jobs in Toronto through meetup connections. I even met my co-founder! My job offer at Bear Health came from a contact I have met often at meetups for the past eight years. It takes time to do this but it's never too late. Go for meetups(also virtual) just because they excite you and it's inevitable you'll make friends. We in the tech community are very lucky that there are SO MANY of them. 
* Side Projects: As software programmers, we have the wonderful opportunity to try out and work in technologies that we want to get into in the future. I was interested in Julia, did one project on GitHub. RelationalAI was working with Julia and my Julia project stood out when they checked my Github info. Please do consider doing that side project in the technology you want a job in and beef up your resume. 
* Update LinkedIn: Amazon reached out because of my LinkedIn Profile.
* Blog: Bear Health Technologies liked my profile because they read my [blog](https://blog.rajivabraham.com/). Blogging also ignited my desire to try out LinkedIn for my technical posts. This is an experiment as LinkedIn has minimal support for blogging(IMHO) and programmers generally don't blog on LinkedIn as it heavily seen as a venue for recruiters/job postings etc. But I realized that my entire network is here and 99% of them will never come to my blog :). I see 10-20 views per post but right now I'm still fine with that. If I can pass some of my knowledge to others, though few, I'm happy. Why don't you try it out too and let me know how it goes?
* Cold Calls: No one likes to be cold called. What about warm calls? I sent my resume via LinkedIn to a few people who I had met once or twice. I was totally prepared for them to come back and say that they don't know me enough and don't feel comfortable to send my resume across or some white lie. What I felt bad a bit about was no replies at all. I guess it's hard to say no to people :). And I may one day be in the same position. So if someone can let us know, how to politely decline referral requests, that would be a valuable conversation. 
* Unit Tests: Write Unit Tests in interview questions. They seem to help immensely.
* Salary Expectations: Since I was out of the job market for a while due to my startup, I just straight up said that I don't know what to ask and requested the recruiter to tell me what the salary ranges are. External recruiters gave me a good idea about the market while an internal recruiter mentioned their salary range for that role. In this way, I knew where to place myself.
* On Hiring Freezes: I realized that hiring freezes were not absolute. One of my friends approached his manager at a company which had a hiring freeze and the hiring manager said that he would consider making an exception for the right candidate :). I wasn't that candidate but it's good to know that there is some wiggle room.
* Life Project: Consider having a side project which excites you. I have a side project([Mercylog](https://github.com/RAbraham/mercylog)) which I call my `life project` :). I would work on it after an interview if I thought it didn't go well. When I started waking up later and later as I wasn't working, I decided on working on my side project first thing in the morning or not at all. That made me wake up early :).
* On Connecting: Every interview is an opportunity to meet someone for an hour. Even for jobs that I didn't get, I connected with any interviewer that I liked. In fact, one interviewer, who I thought wasn't impressed with me, invited me to go out for coffee after the pandemic. This just shows me that interviews come and go but I should still take the opportunity to connect with people I like even if their company didn't consider me qualified at that point of time.
* Misc: RelationalAI reached out to me when I posted a few questions on a sleepy google group(`datalog-cafe`)
# Resources/Practice
These are the resources I used during my interview prep:

* [Interview Cake](https://www.interviewcake.com/upgrade): I was apprehensive about coding interviews and finishing in time. I decided to embrace the process and get into the minds of experienced programmers. I chose to buy Interview Cake as it was on a steep discount for the pandemic. I liked it as it gave explanations and gave the thought process. I have heard of [Cracking the Coding Interview](http://www.crackingthecodinginterview.com) as well. If you don't want to pay, I'll recommend trying out [Codewars](https://www.codewars.com), LeetCode, HackerRank etc. They are community driven interview question banks with points and skill levels. I have only used Codewars and it was nice.
* For the System Design Interview, I recommend this amazing resource: https://github.com/donnemartin/system-design-primer
* For Data Engineers, this looked nice: https://github.com/andkret/Cookbook
* Salary Negotiation. I found this [video](https://www.youtube.com/watch?v=sN19aNmjBoU&t) by Josh Doody very informative.
* Since most companies used CoderPad, I created my own free account and practiced in the free sandbox. That's how I discovered that CoderPad has `pytest` support and I just kept on using it.
# Gratitude
* Coursera: I'm very grateful to Coursera for accepting my application to study the Deep Learning course by Andrew Ng for free.
* Coding Cake: I appreciate the drastic reduction in their prices and personalized feedback when I replied to one of their emails.
# In Conclusion
I hope that my experiences help you in some way. Please know that you are not alone in feeling scared, anxious during these times. We all feel that. The last thing to do is to close yourself to friends and family. If this is your first lay off, I know it's tough and a major downer. But I know, from my experiences and seeing others, we always get jobs sooner or later. Sometimes, we get better jobs :). Best of Luck.