PhD and industry job search

A natural outcome of the Ph.D. process is to pursue a career in academia, such as a teaching faculty position or a research faculty position. However, there is an increasing number of full-time opportunities in the industry, whether in a product-development startup/establishment, a consulting firm, or even the Government. Considering we spend most of our time/energy in the Ph.D. process preparing for an academic position, it requires an extra push to pursue job opportunities in the industry. This blog post will cover industry job search aspects, particularly for roles in a product-development company. I have shared my thoughts on working in the industry in another post.

Networking

Networking with peers working in the industry is the primary way to find jobs, especially for folks with advanced degrees such as a Ph.D. Unfortunately, many folks limit their networking skills to have just enough conversation with someone to unashamedly add their name to the online job application’s referral box. To find your “dream” job, you need to go way beyond that. You need to understand your contact’s role, nature of work, company’s business, and technical depth/breadth involved in their role. Also, seek feedback on your profile and ways to address the gaps for roles in their team. If you find the opportunities in their team relevant, you need to demonstrate how you can contribute to their team, so they are excited and motivated to refer you to their recruiter/hiring manager. With an advanced qualification like a Ph.D., remember that you are not just trying to “fit-in,” rather you are “creating” a role for yourself.

For your job search, I recommend starting with your graduates from your research lab and university/department. Very likely, they are working in roles in companies close to your area of interest. Understand how their role is connected with their research area, what they enjoy about their role and the future opportunities they are excited about.

Another great place to meet folks is the technical conferences/research meetings where you present your research. You will run into many folks working in your research areas and connect with them via your advisor and other research collaborators. Be prepared to step outside your comfort zone and connect with folks working in competitive research labs, even if they use different tools/techniques/approaches.

Another place is social media platforms such as LinkedIn, which has made it super easy to look up your contact’s profile, such as education, current/past work profile, etc. It helps cast a wide net in your job search, spanning across metropolitan areas and even countries. If you use it well, it can be highly effective in finding your next role. Just make sure you don’t use it as a substitute for having an in-person contact. Before you start contacting folks, I recommend having an up-to-date profile with a photo, headline, and relevant details.

Every contact is unique and comes with unique circumstances to initiate the conversation. My approach is to start with an email conversation (or LinkedIn direct message). As the conversation is building up, and depending on their interest, try to have a phone conversation to communicate more freely. In my years working in the US industry/academia, I find folks to be quite open to having such conversations. In this day and age of covid-19 pandemic, the conferences and networking events have also moved virtual, leaving email/phone/video chats as the only way to connect with folks. For the first conversation, keep the email short and to-the-point.

Online job applications

As you mature in your job hunt, you will start seeing job opportunities in companies where you don’t have any contacts. Don’t worry; the online job application is your friend. The job application interface can vary from a recruiter’s email address to sophisticated online application platforms. Irrespective of the interface, two key elements to an online job application are the resume and cover letter.

Resume – Think of it as an advertisement pamphlet that grabs the recruiter’s attention, so they review your application in detail. This means that you should highlight only the relevant skills, experience, and education for the position you are applying for. Any extra details can also go on your personal webpage, and a detailed C.V. Do pepper enough keywords in the resume so that the online recruitment tools catch it, but don’t overdo it. Have a nice career goal or mission statement, so the recruiter knows what you are looking for. Add links to the GitHub/LinkedIn/Personal webpage and so on.

Cover letter – Think of it as a 30 sec. elevator pitch to your recruiter. Have a crisp 2-3 paragraph letter highlighting your profile’s key elements relevant for the position. Present a personal take on the opportunity, and avoid repeating details from the resume.

When talking to a recruiter, let them know that you applied online, so they can pull the application from their system and take the necessary steps. Be patient; recruiters are busy people, and recruitment is a tiring process for everyone involved. But feel free to follow up every few weeks if you don’t hear back.

LinkedIn

I shared some thoughts earlier. One effective way to reach out to companies is to reach out to a recruiter/HR working there. Such folks are usually open to receiving requests over LinkedIn and are quite responsive. You can chat with them about your job application and other details. Try to stay formal and to-the-point. You can also come across folks working in technical roles in the companies of your interest. However, folks are usually unresponsive (unless they are actively looking for jobs themselves!), so don’t be disappointed.

LinkedIn is also useful for finding companies in your discipline. Use the search tool, and filter by geography, etc. You will be surprised by the number of companies working in your discipline. You can also check if you have any contacts (1st or 2nd level) working there and reach out to them for opportunities. I also see companies increasingly advertise positions directly on LinkedIn, which makes it convenient to apply directly.

Timeline

So when should I start looking for a job? Ideally, 6 months to a year before your expected graduation date. It takes a while to figure out the job market, apply for positions and interview for them, and finally get the offer letter. By the time you get the offer, you will also have a better idea about your graduation timeline and start working with your advisor/university towards the graduation formalities, such as thesis submission, scheduling the defense exam, and wrapping up the on-going research commitments. In some cases, having a job offer letter enables you to have a graduation conversation with your advisor. In my case, I had a couple of years of job experience before graduating, so I started looking for jobs only after graduation, which works fine too (assuming you can handle any student/work visa issues).

If you are in the early stages of your grad-school, I highly recommend pursuing a summer internship at some point before graduation. Unless you have prior work experience, it adds a significant weightage to your application. It is also a great conversation starter since folks working in the industry can relate to your experience in another company much better than the nitty-gritty of your academic research. The experience will also give you a much better picture of what to look for during your full-time job search and increases your confidence in your job search.

PhD and working in the industry

Working in the industry provides an excellent opportunity to apply your hard-earned research and technical skills in practice towards developing products/services of value. You get to work in a relatively polished and systematic work environment where the nature of work changes as the competitive business landscape changes. You get to work with top talent in your field in a diverse work culture spanning geographical areas (and even continents) towards a common goal of delivering a high-value product/service to your customers/clients. Due to the length and breadth of technologies involved, there is reasonable freedom to choose a role you enjoy and are good at. As you develop more skills in your work, you earn more autonomy.

Any role in the industry would involve a combination of the following.

  1. Product development
    Depending on your industry and role, it will involve one or multiple of the following: running experiments, data analysis, software/hardware development, testing, validation, process engineering. This would take the bulk of your time and essentially justifies your addition to your company’s headcount.
  2. Background research / skill development
    Understand the state-of-the-art, hot topics, pressing problems, limitations of the state-of-the-art, verifying, and validating your methodology and approach with the literature. Develop new technical skills for your current/new role as needed.
  3. Developing intellectual property
    Develop methods/algorithms/techniques to solve a pressing technical problem. Occasionally file patent applications on some of those.
  4. Publications and conferences
    Writing white papers, research papers, and participate in industry/research conferences in your field.
  5. Contribute to the standards bodies (such as IEEE, ISO, ITU, etc.)
    Influence the technical direction of your discipline and represent your company.

In the early years of your career, you are expected to spend a significant % of time on (1) and (2) and get your feet into the ground. As you mature and move up the corporate ladder, it will be spending more time doing (3) to (5), however, nothing stops you from doing it in the early years as well.

The bulk of the technical headcount in any company works on the product-development side of it. Some companies have a separate research division (aka research labs) with max. 5-10 % of the total headcount. However, those divisions are an increasingly smaller share of the company’s headcount (think IBM Research) [1] or have nearly vanished (think AT&T Bell Labs). Moreover, many new-age technology companies (like Google, Facebook) have almost done away with that structure [2].

Often, Ph.D. students are under the impression that they only belong to the company’s research side. However, that is increasingly less common, especially in the computer technology industry [2]. Between a role in the product-development side and the research side, the main difference is the % of time spent in the above five activities. Also, over the course of your career, you could be moving between product-development and research roles. Rather than obsessing over whether to work in the industry or a research lab, it’s better to focus on the specific skills you need to master to succeed in your career.

To succeed in the industry, we need to find the right fit for our skills and abilities. In our Ph.D. process, we spend a significant amount of time/energy developing certain skills relevant to a specific domain. As we start looking for jobs in the industry, we might realize that the domain and/or the skills are not as relevant for the market. So how do we go about finding the right fit? One exercise I find useful is to identify the knowledge domain and technical skills for a job opening. By domain, I mean the knowledge area of your research. By skills, I mean the specific tools/techniques/methods that you have mastered in your research area so far. Let’s consider an example. Suppose your research is in applying machine-learning techniques identifying tumors in medical images. Then your domain is medical imaging, and your skills are machine-learning (ML) techniques.

As you are looking at the job openings, identify the specific domain, and skillset it requires. Same way, identify the domain and skillset of your research experience. Ideally, going from one position to another (Ph.D. -> PostDoc or Ph.D. -> industry or PostDoc -> PostDoc), try to change either the domain or the skill. This helps in having a solid grounding in one while picking up the other. How about applying ML techniques to identify objects for self-driving cars or learn new statistical techniques (say deep learning) in the medical image domain.

References
[1] https://cacm.acm.org/magazines/2015/1/181626-the-rise-and-fall-of-industrial-research-labs/fulltext
[2] http://academicsfreedom.blogspot.com/2012/08/advice-for-phd-students-seeking.html

Democratizing the Indian Education System (NEP2020)

The Ministry of Human Resource Development (HRD) in the Government of India has recently released the 2020 version of National Education Policy (NEP) [1]. As many experts have pointed out [2,3], this is one of the best reforms in the education sector and is expected to be a game-changer. I read the full 66-page report and I highly recommend reading it. This reform puts the power back in the hands of the students (and their parents), who can decide the courses/majors that they choose to pursue and pause/restart the education as per their personal/family needs. Rather than getting lost in the Labyrinth of our education system, students can rather focus on the “learning” and develop a solid foundation for the future they aspire.

In regards to the “universal access to education” aspect of this policy, I have a suggestion to make. We should make the video lectures and related educational content at all levels of education completely free and open to all. Think of an EdX or Khan Academy of sorts, where the video lectures for each subject at each grade level are available for streaming/download to anyone with a simple computer device (like a smartphone) and internet access. To start with, the video lectures could simply be a class recording from an institute like Kendriya Vidyalaya and perhaps enhanced in the future with animation, etc. The recording can be in any Indic language and published under an appropriate creative-commons license, whereby the state board or even a linguistic group can translate/transliterate the videos in their local language/dialect and republish the videos citing the original source. Thanks to the IT revolution over the last few decades, we have all the pieces of the solution ready and we just need to piece it together. Such a system would truly democratize our education system, setting high standards for the teaching and curriculum, and enable new education models, including home-schooling and self-learning. Let me share a few examples.

Think about an auto-rickshaw driver making a living in an urban city like Mumbai, away from his hometown in North India, who had to leave his high-school education halfway to start making a living for the family. He is motivated enough to finish his high-school, but enrolling in a full-time school is too cumbersome. Fortunately, he can watch the lectures on his smartphone while waiting for rides in the auto stand, practice the material with a local tutor and appear for exams every few months in a local school/exam center to clear the milestones and thus earn his diploma, enabling access to college education, and thus helping him move up the employment ladder. Thus high-quality video content enables such self-learners to learn at their own pace at their own time.

Let’s consider a scenario of a group of families in a Bengaluru, deeply associated with the spiritual organization (like AoL) or a Matha (monastery in the Indic system), which is a tremendous part of their kids learning. However, their kids are enrolled in state/centerboard affiliated schools as well, leading to duplication of efforts and activities. Such families would love to home-school their kids so that their learning is centered around their religious/spiritual schools, while still keeping pace with the regular state/centerboard education to have a pathway open for a college education. This group of families creates a home-schooling system, where parents take turns teaching different subjects. They complement the learning with field-trips and such activities. The freely available high-quality education content can tremendously aid their education.

Given the flexibility and openness of the NEP, such possibilities are endless. Logistics wise, it will be great if the government encourages or rather make it mandatory to the internet operators to carry traffic to such content for free, perhaps in exchange for tax rebates, etc. I am sure the telecom industry will come up with novel business models and innovation to make this happen.

References
[1] National Education Policy 2020, Ministry of Human Resource Development (HRD), Government of India – Link
[2] Dr. Aishwarya S, (Twitter thread), Link
[3] Dr. Pankaj Jalote, “The New Education Policy (NEP) has Great Suggestions for Higher Education”, Link

Finishing 1 year at Intel Corp.

I just finished my first year as a Software Performance Engineer at Intel Corp. at Hillsboro OR. My main project has been the performance analysis of MSFT SQL Big data cluster, on which we published a whitepaper recently. This product is a big step up in their popular MSFT SQL Server product line and I have been excited and grateful for the opportunity to contribute.

In this post, I thought of sharing my experience as a Software Perf. Engineer

1) Hardware/Software optimization is challenging and time-consuming

There are just way too many knobs to control, in both the software and hardware layer. Based on the guidance from our partners, we quickly settled on the problem statement and the software configuration. Regarding hardware, we started with the best we have and kept improving the components that we observed as our perf. bottlenecks. It is important to keep the customer in mind, what their challenges and pain-points would be, their potential technical debt (coming from the previous product) and so on.

2) Hardware/Software optimization is highly rewarding

I realized this after finishing our whitepaper. A customer reading it will get a headstart on the best-known methods/configuration (BKM/BKC) to setup the software stack and the recommended hardware stack for optimal performance. What took us multiple man-months can be achieved by them in a few days/weeks.

3) Automation frees up the mind for analysis and insights

The more time/energy we spent in manual work, the lesser the time/energy we have to analyze the results and collect valuable insights. In addition to expt. run and data collection, I automated significant chunk of the data analysis as well, to the extent of the spitting out the results in the “exact” spreadsheet format that I need, significant freeing up my mind (and making it ergo. friendly)

4) BKM documents make things systematic

I developed a practice of writing the BKM documents as we go along and keeping it on Git (along with the config. files). That way it was easy to trace the steps back if something goes wrong. Also, it became super-easy to train new team members, and get everyone on the “same page”. Also, given we iterate through it every day, the end result is a super polished document and we feel comfortable sharing it easily with the stakeholders. Along with Automation, this significantly reduced the unforced errors in our experiments.

5) Developing a solid relation with software partners takes years of partnership and trust – The quality of analysis and results clearly show it.

Some of the challenges I experienced as a software performance engineer

  1. Prioritizing learning concepts while having results to show regularly – It takes a while to understand a new software stack or benchmark. But to keep a cadence with our partners/stakeholders, we need to show results regularly, even if they are not perfect or have known unknowns. Coming from an academic background, I am more used to sharing results only when I have everything “figured” out. It took a few months to get used to such ‘work-in-progress’ presentations. Also presenting ‘current results’ (in a spreadsheet) vs. polished presentations (in a slideshow).
  2. Prioritizing projects and tasks
    Understanding the priority of our organization vs. our partners/stakeholders. Also balancing between deliverables vs. learning.
  3. Mastering a wide range of skills in a relatively short time
    Our role involves a wide range of skills – setting up (computer) systems in our lab, configuring hardware/software, integrating new hardware (say accelerators), choosing and running workloads, data collection and analysis, and sharing the results. This was somewhat broader than a typical software engineering/research role I have been in. It took a while to get used to it, but I love it!

Fun quotes about Statistics

Do not put your faith in what statistics say until you have carefully considered what they do not say.
    William W Watt

…no one believes an hypothesis except its originator but everyone believes an experiment except the experimenter.  
    W.I.B. Beveridge, The Art of Scientific Investigation (1950), p. 65

References
http://www.stat.columbia.edu/~liam/teaching/4107-fall05/notes4.pdf