In this session of Gydable Talks, we connected with Sai Raghavendra Grandhi to discuss his career path and job search/interview experience as a college graduate. Sai finished his Master’s in Computer Science and Mathematics from Santa Clara University in 2019. He is currently working as a Software Engineer at Oracle.
Can you tell us a little bit about yourself and your career path?
I’m currently working as a software developer at Oracle in the Linux engineering department. I got this offer last year after graduating with my Master’s in Computer Science and Engineering in October 2019 from Santa Clara University. During my undergrad, I focused primarily on the liberal arts aspect of Dickinson College, while also working on web development with LAMP stack and Drupal module development. I also did academic research with a couple of professors in the computer science department. The bulk of my software development experience came through my graduate studies at Santa Clara University, where I got to explore different fields of computer science like database systems, operating systems, machine learning, etc.
While at college, did you apply for any internships? What was the application process like?
I did an internship with Personal Capital, a financial and wealth advising company, from December 2018 until April 2019. I was working on their iOS application as a part of a larger team that focused solely on their mobile applications. During this time I got a chance to focus on quality engineering, iOS development, and agile practices. International students are required to do Curricular Practical Training (CPT) course if they want to do internships, and have to wait 9 months after starting their coursework before working off-campus. Since I started MS in Jan 2018, I had to wait until November 2018 to start an internship. In order to pass CPT, one requires to gather a critique from your internship supervisor and submit a couple of essays.
Getting this internship was a grueling experience since Winter internships are harder to land as less budget is allocated for them compared to summer internships. Hence, I joined meetups and Facebook groups to gain more exposure and to network with fellow developers in the area. In one such FB group focused on iOS development, I connected with a person who I thought worked at Personal Capital. I later sent him my resume and we talked about my projects. I got a call from a recruiter from Personal Capital that lasted for about 30 minutes where we discussed what the company did, what the opportunity was about, the projects I’ve done in the past, the programming languages I knew, and my experience with mobile application development – iOS in particular. I later learned through the recruiter that the person who I reached out to had not updated their employment status and he had already quit his job at Personal Capital.
After my phone call, I had 5 rounds of onsite interviews. Each of the rounds consisted of technical programming questions but with different people: my potential manager, a QA lead, a data engineer, an iOS developer, and the last one with an android developer. I got another call from the VP of engineering after which I finally got my offer. I wanted to keep working and improving my interview skills so I remained active and kept applying to other places.
One of the most important things to remember if you are applying for internships or jobs is to get good at explaining your code and to write code on whiteboards. I strongly recommend that anyone who is apprehensive about clearing the programming rounds to spend several hours a week on leetcode.com. I used to practice whiteboard problems with my friends and do mock interviews with them or on websites like pramp.com to help secure other offers.
Although I extended my internship and secured other internship offers, I submitted my essay for the CPT course one hour late. My professor was pretty strict, so he failed me and I wasn’t allowed to do future internships while studying at Santa Clara as I had failed it once. This was a huge lesson on discipline and punctuality and it altered the timeline of my graduation to an earlier date October 2019, compared to what I had originally planned, December 2019.
Tips for International Students
International students have CPT and OPT applications that needs to be filed by a certain deadline. Missing these application deadlines could cost you your internship/job offer.
In your role as a software developer at Oracle, can you share a little bit about what it is that you do and what a typical workday for you is like?
We are responsible for shipping Oracle Linux to different cloud providers. A typical workday for me usually consists of “Standups” where I get to discuss what the goal is, what each product release will contain, and what each person on the team will be responsible for. This meeting doesn’t happen every day though. After that, I work on coding and working on different scripts- usually a lot of Python and Bash Scripts. I also keep track of released images so I have to make sure there are no failures in the released images that customers are using. I also keep track of product failures and identify what kind of failure it is by setting up tests and running them to check for the quality of images. So I would say that my usual day consists of coding, inspecting the code, reading documentation, in addition to communicating with different people, and reading emails.
What do you wish you knew as a college student that would have better prepared you for the industry?
As a college student, I wish I knew more about the day to day of work that happens in the industry and how to prepare for these interviews, and how to network. I say this because it is hard to find opportunities when you are completing assignments and preparing for your exams.
During my graduate days, I wish I knew more about work-life balance. I thought work would be everything for me. So I kept that mindset until I experienced burnout. That is when I gave more attention to life outside of work.
Another thing is that imposter syndrome exists for so many of us. I felt like I did not know anything, and thought that asking too many questions would mean that I was incompetent. But what’s important is to do your own research before asking so that you come up with well-formed questions. Doing this actually helped me save time and be more productive.
Tackling Imposter Syndrome
Asking too many questions doesn’t mean you are incompetent. What’s important is to do your own research before asking so that you come up with well-formed questions.
Are there any interview preparation tips you would like to share with our student community?
Yes! Interview preparation and mock interviews are very important. It is not necessary to get the best answer but rather the right answer. Because in programming, there are many ways to come up with a solution. Also, keep in mind that the important thing is that you can articulate how you arrived at an answer and explain your thought process. That is where the real skill lies – the communication between you and your interviewer. The interviewer will eventually guide you to the best solution, at least from my experience.
In order to learn how to articulate your ideas better, there are several platforms that you can use along with practicing with friends. Personally, I practiced on a whiteboard, which helped a lot because you get to program without the editor and that is a great simulation of how your interview is going to look like. I believe you also become a better programmer and become a better communicator through this process. There is also a process called “rubber duck” programming where you basically talk to a rubber duck out loud and explain your thought process.
Also, practice for behavioral interview questions. Create a script so that you can always answer the “who you are” and “what you have done” to people on the fly. It’s good to have this memorized so that you set a good first impression on the recruiter.
You might also get asked case study style questions or system design questions, so watch YouTube videos, read various articles, also take a look at highscalability.com. They have good blog posts on real problems that large companies face – this will help you come up with solutions. Another way to get better at system design questions is to read blog posts made by companies that are solving relevant issues; Netflix, Tinder, Airbnb, products that you generally consume for entertainment, also have informative engineering blogs.
Tips for Interview Prep
- Create a script so that you can always answer the “who you are” and “what you have done” to people on the fly. It’s good to have this memorized so that you set a good first impression on the recruiter.
- One of the most important thing during interviews is how well you can articulate your thought process and solution to a problem. That is where the real skill lies – the communication between you and your interviewer.
What advice would you give to people from diverse backgrounds looking to break into the field of software engineering?
Don’t be afraid to ask questions. This is one piece of advice I would have also given myself during college. Be proactive and find all the resources that you need. Reach out to people – even in unconventional places like Facebook where you can find dedicated forums with people comparing apple vs windows laptops to debates on benefits of LAMP Stack over MEAN stack.
Attend hackathons! A lot of companies attend these hackathons and look to hire new grads or interns, as these large events usually happen at different universities – although this scenario might have changed because of Covid19.
For internships, apply to specialized programs by big companies that want to pull first and second-year underrepresented students in tech. For example, Google has Google Engineering Practicum and Microsoft has Microsoft Explore for underrepresented students.
For full-time roles, meetups are a great place to start. Some meetups can be intimidating and scary but remember to go in with the goal of learning. Don’t be afraid of learning new things.
- Reach out to people – even in unconventional places like Facebook where you can find dedicated forums with people comparing apple vs windows laptops to debates on benefits of LAMP Stack over MEAN stack.
- Attend hackathons! A lot of companies attend these hackathons and look to hire new grads or interns.
What do you think is the best part of being in the tech industry?
I think the best part of being in the tech industry is that you get to learn more about other areas of technology. You get to quickly branch out your knowledge. You get to work with different people like product managers, the marketing team, etc., because of how technology is embedded in every product of the company.
Also, the tech industry is a growing industry that has good benefits. You get to work from home if that is something that you prefer, especially for newer grads. When you are just beginning your career, you don’t have to think about commuting or put too much thought into finding a place near work.
Any tips or advice you would like to share with students looking for jobs or internships?
Mock interviews and practicing as many Leetcode problems as possible are very important. When searching for jobs and internships, keep your LinkedIn profile up to date and look at their job search portals.
Getting the first recruiter call will be difficult, but once you get the call and if you have prepared enough, you should be able to do well in the interviews. Doing well on the job is a whole different question. Doing well in the interview is based on your preparation. Good luck with your job/internship search and interviews!
Disclaimer: Opinions expressed in this post are solely my own and do not express the views or opinions of my employer.
Don't miss out! Join Gydable now to connect with other students and professional engineers to start preparing for your technical career.Join Now