Thoughts On My Job Hunting Experience
This post has been sitting in my drafts for a while; I had meant to post it right after I finished my last interview back during Spring Break but I was never able to finish it until now. As I’ve graduated and am about to start my career as a software engineer, I thought it would be a good idea to look back on my experiences looking for a job. A lot of what I will be discussing will be pretty closely related to finding software engineering jobs, though I would like to think that some of this post will be applicable to job seekers in any field.
Looking for a job this past school year has helped me learn a lot about myself and what I want from my career. I’ve divided this blog post into sections based on particular insights which I gained from interacting with developers in industry during the interview process. These sections are not in any particular order in terms of importance, but instead highlight the particular lessons I learned in each anecdote.
Start preparing early
My first phone interview of the school year was probably the worst phone interview I’ve ever gone through. The question itself was relatively straightforward: given a positive integer, find the repeating subsequence in the decimal representation of its reciprocal. I won’t go into the details of the solution (it involves using a hashtable), but I remember struggling to communicate my thought process while actually developing a solution, leading the company to respond that they would not be moving forward soon after the interview.
Starting from that point, I knew that I would need to seriously practice my programming skills if I wanted to make it past any technical interviews in the future. Once I got past the resume screen at Google, I began ramping up my coding practice, regularly using sites like HackerRank and Leetcode to hone my fundamentals in data structures and algorithms. While I ultimately did not end up getting a job offer from Google (partially due to my reduced amount of practice during Winter Break), the work that I put in preparing for both my Google interviews in the fall and my other interviews in the spring gave me the skills and experience I needed to secure a job in Silicon Valley.
Of course, preparing for any job in high demand is a long-term process. I would not have gotten past any resume screens without my academic and work experience, even if I could solve any programming question thrown at me. Additionally, all of the programming experience in the world can’t save you in an interview if you can’t convince the interviewer that you’re actually thinking through your solutions and know what you’re talking about.
Take calculated risks
Going into 2018, with the sting of bombing my Google interviews still relatively fresh, I had an offer from National Instruments that I needed to decide upon before I went back to school for the spring. I ultimately decided to turn down the offer and look for jobs in the Bay Area, as I felt that being further away from home would provide me with more opportunities to grow as a person. At that time, I also had recently made it past Triplebyte’s screening interview so I figured that I could use that to get on-site interviews if all else failed (I wasn’t able to immediately leverage it because I still had another semester of school to get through before I could start).
While looking for jobs this past spring, I submitted as many applications as I could to companies where I felt I met their requirements and I would be interested in their work. While I knew that many of my applications would be filtered out at the resume screening stage, I felt confident enough in my qualifications that I would receive multiple opportunities to interview with different companies. As I began receiving coding challenges and phone interviews, I made sure to complete as many of them as possible, while continuing to send out applications to other companies in order to maximize my opportunities to gain experience interviewing.
Keep a positive attitude, and learn from your mistakes
It’s important to not let any setbacks get in the way of what you want to achieve. In my own experiences I’ve had several interviews where I felt good about my performance, only to hear back that they would not be moving forward with my application. Nevertheless, I’ve also looked at each coding challenge and interview that I’ve gone through as an opportunity for improvement, finding gaps in my knowledge and skills which were exposed and working to fill them in for the future.
Now that I’ve graduated and am done with school (at least for the time being), it’s weird to think about how I won’t have to worry about having a productive summer. I’ll definitely work on some coding things so that I’m not rusty when I start work in August, but I also want to make sure that I’m enjoying this last free summer to the best of my ability. I’ll hopefully be updating this site more frequently than I have been these past few years so that nothing gets stale (though I’ve said that before and that hasn’t really happened yet).