An undergrad's experience with cracking 8 software engineer intern interviews
11 Mins Read#interviews#software engineer#internships
If you are graduated or in senior year of your college, you surely can resonate to the fact that college life is best lived in a "hustle mode". You are not going to get these years back and nothing will be the same.
For me, certainly attending classes won't be something that I'll cherish after a few years down the road, but doing internships, freelance projects (multiple together most of the time), reading non-ficton, self-help, business books, and blogs will be something that I'll be happy to remember.
I love working in teams and building great products. I have a passion for contributing to products not just in the form of lines of code but also ideating, researching and hence solving the problems.
I have done 4 software engineering internships and worked on about the same number of freelance projects in a period of last 2.5 years, gaining a total experience of 27+ months. For summer 2019 I have cleared 3 interviews but not yet decided the final place to land.
It gives me a feeling of joy and satisfaction when I contribute to something and see people using it. It's even better when I am able to research the problem and put my ideas into the product.
By being very careful in finding opportunities where I can actually work in a team, participate in decision making, ideating, architecting the technical infra and most importantly learn, and by being lucky enough to get the same and to meet those people who taught me so much, I have won myself some good time to remember.
Today in this post I am going to share my experience with all the interviews I have cleared in last the 2.5 years, exactly 8 and will give you some 101s about clearing a few yourself. The interviews were for software engineer intern role at product based companies including HackerEarth, Postman, Grofers, Hasura, etc and few for other programs and projects.
If you are looking for interview experiences at giant tech firms or service based company, well I have nothing to share yet.
Fetching the interview
If you are from a tier 3 college like me, clearing interviews is much easier than getting one. The problems with the intern positions are that -
- Most of the companies only have on-campus drives.
- You will not find them year long on company job boards (like full-time positions).
- Many companies do not have intern positions.
- Abroad companies do not sponsor visa for intern roles.
So how will you get yourself interviewed?
The first step is to make a list of all the companies that you would like to contribute to. For me, that was a very simple task as I was pretty sure about where I want to spend my time and energy at; and what will help me have the best growth and learning.
There a many questions that you need to ask yourself for finding the best workplace match:
- What is your skill set?
- Where do you want to grow?
- What kind of products you want to contribute to?
- Will you be able to relocate? (if needed)
- What kind of work culture do you find yourself being most happy in?
These questions will help you understand what you really want and where you see yourself working at in the next summer or winter break.
Once you have the list prepared, start applying. You have 3 ways to apply:
- Application portal: if the company has an active job board, the best chance of you getting a reply (though they might have a large number of submissions regularly) is by applying from there only.
- Referral: if the company does not have an intern application portal or pick interns only from selected college campuses, then applying through a referral can be your way in.
- Cold email: if none of the above two options is available then there is no harm in sending cold emails. This is something which has worked for me most of the time. Write a good cover letter and a perfect genuine resume and you are good to go.
How I applied for the interviews?
Applying to intern positions has never been easy. For every internship I did or project I undertook, I asked myself the same 5 questions. The answers were always different based on my then skills and requirements.
Following are the answers (quoted) to the 5 questions, I asked myself every time before applying for an internship or taking up some project -
- I know basic web development, data structures & algos, jquery. Never heard about react, nodejs, es6 or anything such.
- Want to explore the software development ecosystem. Learn how applications are built.
- Any web application which people are really using.
- Not available to relocate.
- A place where I can contribute with college. Where I can have good mentors to learn from.
And therefore I landed at Coding Blocks. The perfect place to learn from mentors and contribute to projects which 10K+ students are using.
- Want to learn React in much more depth.
- Contributing to large scale react projects.
- Not available to relocate.
- A place with flexible work hours, where I can work remotely during weekdays and onsite on weekends.
The major problem for finding an internship this time was the remote work availability. Fortunately, I was able to get in touch with people at Tripshire through AngelList and they were very supportive of flexible work hours.
- I can write clean and good code. I can compare different technologies and examine the trade-offs. I can build large scale applications from scratch.
- Learn how to build scalable services and know how big teams actually work together on building an enterprise product.
- An enterprise product which has millions of users and a strong backing engineering team.
- I can relocate.
- Preferably a startup, where I will be given the responsibility for building different product features.
This was the time when I had a good hand on React and NodeJs. I was also available to relocate for a period of 3 months during summer. I finally joined HackerEarth as a software engineer intern in the recruit team, where I got the chance to work with a big team and contributing to enterprise products. Know more >>
Do not have any prior experience and looking for your first internship?
It is not the easiest thing to fetch your first internship but it ain't that hard either. Here are some tips which will help you clear your first internship interview and screening.
- Build 3 to 5 good projects. Todo list, note making app, contact list, or any such app is not a project which you would like to showcase on your resume to fetch a good internship. Build something powerful that will actually solve problems. Some good beginner level projects can be facebook chatbot, medium clone, food review app, and splitwise clone.
- Make them open source. Push your code to github and let people see it. Share it with people and get reviews. Improve your code quality in general and have yourself a good github profile, which will indicate that you are a learner and you build things. This will help the interviewers to know about your coding skills.
- Deploy your apps. There is no use of building things if no one is using it. Buy a domain and deploy your applications or publish on play store or app store if a mobile app. Again, share it with people and get reviews.
- Write blogs. If you have learned and built something, you should share it with others. Have your personal website, start a blog there, post about how you built your project, share your achievements, and how you solved various technical problems.
- Prepare your resume. Once you have enough projects built, open sourced, deployed and blog posts written for them, it is time to represent them nicely on your resume.
How to prepare a perfect resume
- Keep it one page, keep it minimal.
- Highlight your skills, particularly your tech stack.
- In your experience, focus more on how your contributions improved something than just stating what they were.
- Also, share how you solved the problem or built something technically. Include what tools you used.
- Share your achievements and what you did to gain them.
- Be concise.
Clearing the Interview
Well now you have an interview in hand, maybe after weeks of hard work of sending emails, contacting people for referral, writing cover letters and what not; or simply there is an internship fair held at your college and you just have to sit for the interview. The next step is to prepare for the interview and grab yourself an internship.
The interview process and questions asked depends on various thing including the type of the company, intern role, and your profile. Most of my interviews have been for fullstack intern role at well-renowned startups, so I'll give you a brief about how my interviews went and how you can prepare for similar ones.
How many interview rounds did I have to pass?
The number of interview rounds really varies from company to company. Though half of the work opportunities I grabbed had me clear a single interview but it is not the hiring process for most of the companies.
Most companies usually have 2 - 5 rounds for the selection of interns. They might not all be technical interviews. The first round may be an online coding or application development round, then there can be both technical and non-technical interviews.
What was I asked in the interviews?
If you talk about on-campus intern interviews, data structures & algorithms are the things which is asked the most. It is easiest to judge a bunch of students based on problem solving skills than any other thing. Any good programmer must have good problem solving and coding skills.
Other than the problem solving skills, the good product based companies expect that you know how to build real scalable applications and to have experience building the same. They want you to be culturally fit, creative and user-centric. They care what you have previously worked on, what are your personal goals, and how you work in a team.
What are the important subjects to study for Fullstack intern roles?
- System Design & Scalability
- Networking & Security
- DBMS & OS
- Fundamental Data Structures & Algorithms
- REST standards, Web APIs, HTTP
Some popular questions usually asked in interviews for fullstack roles are:
- "How DNS works?" - will not be asked as plain as that but in a form like "What happens when you type google.com in browser's address bar?".
- "What are the differences between GET and POST requests?" - you should go to the depths explaining how ssl works.
- "What is MVC pattern?"
- "Design a system for parking lot management."
- "Architect a database for a URL shortner" - and the guy will keep on adding various features to the application.
- Event Loops - the favorite topic of interviewers.
- This & Prototype - the weird kind of inheritance in js.
- Closures - the best part of js.
- Scope - the var vs. const vs. let and call, apply, bind.
- Classes - the syntax sugar. Know more >>
- Event Bubbling - the fav question from DOM.
NodeJs concepts asked in interviews:
- Streams - the most important feature of nodejs.
- Event Emitters - the fundamental feature of nodejs.
- Clusters, Workers, and Child Process - multi threading & scaling applications.
- File System API & HTTP - another important APIs.
React concepts asked in interviews:
- Virtual DOM
- Component Lifecycle
- Pure Components
- Redux, flux and pure functions
- Context API
- Bundling & Code Splitting
- Component vs. Element
- Server Side Rendering vs. Client Side Rendering vs. SSR with Hydration
What can be asked about your projects and experience?
The projects and experience play an important role on your resume and profile. The things you have previously worked on, clearly tells about your learning and skills. In every non-toxic interview, you will be asked about your previous experiences for sure.
The questions may start from "The project you are proud of the most?", and the interviewer will then go on digging about how you implemented it technically, how you started with the project, what challenges you faced and how did you overcome them.
Before any interview, just take up your resume, go through it and prepare the facts about your experience:
- How did your contributions improve the project?
- Did you work in a team? What was your development cycle like?
- What technologies did you use?
- How did you implement every minute part of the project? (You should definitely know and remember that)
- Why did you like working on that project?
- What did you learn by working on the project?
I hope the experience and tips I shared above will help you land the internship of your choice. There is just one more thing I want to say. I say this to everyone who asks me for advice, my juniors, my batch mates and most frequently myself.
Lean to learn. Do not learn to land a job after 4 years of college. Learn for the knowledge and skills which will help you build things of your choice. Learn what you have interest in. Do not follow others or learn what others are learning.
If you are a beginner and do not know what all is there to work on, yet? Explore! Talk with people who are working on projects of your liking. If you want to build mobile applications, talk to android developers, learn, build and experience. Go and explore data science, web app development, machine learning, mobile app development, cross platform app development, Artificial Intelligence. Practice, experience, and then choose what you like working on the most and excel in that.
There is no particular skill set or way to achieve your goals. You have to choose your own path and skills. It is best when you work on things that you actually like working on.
As a student the best way is to learn is from doing internships.
By Naman Kumar on 2019-03-15
This is the latest post