Kaitech

Application Process

Author(s): Anuar

Last updated of: 25 July 2020

Timing

The slogan that I go with during job hunting is - START EARLY.

For example, the application period for summer internships in foreign tech companies can start as early as September and usually lasts 3-4 months. It also can depend on the company, but usually, most tech companies are taking around this period. I would recommend monitoring internship postings since the start of the Fall semester, and usually, there are threads or lists of internship positions like this one for 2021 year which are being updated by people, so your life gets easier in this regard.

If you consider internships in Korean companies though, the application period is looser, as they can accept applications 1-2 month(s) earlier than the start of the internship.

Now let’s consider how the application process goes.

Writing resume

The resume is the most important part of your application for the job. It may be daunting to write a resume your first time since you don’t know what to talk about, however it gets only better with time and experience.

One of my advice regarding this would be to gain feedback from someone before finalizing your resume. Grab your friend or roommate and make one proofread your resume. It is necessary because your screening can't just slip on minor mistakes or misspellings. You can also join CS communities/groups in order to get your resume checked. Multiple perspectives' from the community on your resume can give you a lot of insights on how to improve it.

There are a lot of posts on the internet for writing your resume so I decided to just only put some links and life hacks related to resume writing.

  • Resume tips - a comprehensive guide on how to write a resume. Must read.
  • Tip: - Try to make a master resume - a resume that contains everything that you wanted to list in your resume. It is ok to send one resume to all the companies, that you apply to. However, it is better to tailor your resume to the role, so that you will have better chances to be deemed as a suitable candidate. Here, the master resume kicks in, as you can just copy it and delete unnecessary parts to fit the company profile rather than rewriting your one resume a lot of times.
  • Tip: - Usually you will have a lot of iterations of your resume it makes sense to do some version control on them. For example, you can put a time stamp on your resume so that you won't accidentally send an old resume. For example: CV-2020-06-01.pdf

Filling in forms

Usually, job applications are just a bunch of online forms that you have to fill in. It is an incredibly boring and tedious process. ( People even made some automation tools for filling in these forms )

Filling my LinkedIn profile has helped me immensely during application to job positions. The thing is that usually most forms allow you just to import all the information from LinkedIn, and it is such a game-changer, especially when you have to apply to a lot of companies.

Coding tests / Assignments

In order to filter out applicants, some companies make take-home assignments or coding tests that you have to do in order to pass to the next stage. The tasks have time restrictions as well as deadlines, and they vary from company to company - from completing some simple test to building a small prototype. In my practice, the most abundant type of take-home task was a coding test that had to be completed in 1-2 hours after starting. These coding tests usually consist of a couple of algorithmic questions along with a multiple-choice test.

NOTE - Some companies might ask too much for a take-home assignment, like developing a whole app with documentation just to be considered for a role. This should raise suspicion as these companies might just want you to do some part of their job, without pay, so please beware.

Interviews

As a final stage of the hiring process, companies make several rounds of interviews for their candidates. The interview processes vary from company to company, so it is better to do research on what kind of interviews your desired company is doing. However, despite their differences, they more or less follow the same algorithm:

  • The first several rounds (2-3) of interviews are phone/online interviews. You will be given a shared environment and you need software to talk with your interviewer. For software engineering roles, like in coding tests you will be asked to solve problems related to algorithms and data structures. The difference between coding tests and interviews is that interviews are far more complicated by the fact that you have to explain your proposed solution to the interviewer while coding it. It is a skill in itself, and it is necessary to distinguish the ability to do interviewing and problem-solving.

  • The final interview(s) is onsite interview, as you have to physically arrive at the office for it. It is quite an exciting experience as you might go on an office tour (Especially if the office is in another country). This time you might be asked to do an interview on a whiteboard, so be prepared to compile code in your head or draw a design of a scalable system. The major benefit of these interviews is that you will have an opportunity to talk face-to-face with your potential employer and a team.

As interview preparation is a vast topic I have attached some resources at the end of this article.

It is a numbers game

Let’s talk about something not very uncomfortable: you are going to be rejected. A lot. From my personal experience - in my junior year I have applied to 60+ companies and have heard back only from about 5 of them and got offers only from 3. You might say that it is overkill, but it is a harsh reality of the job market. However, this story got a Happy Ending - from these 3 offers, one was from Google. I was on cloud nine and couldn’t believe that I got an internship, even though I got rejected and ghosted countless times. By the time I applied to this position I was a bit hopeless, but still applied thinking that maybe it might be the chance. As people say: “You miss 100% of shots that you don’t take”, so even if you are feeling that you don’t have odds, it is still worth it to apply. You virtually don’t lose anything at all by applying to the job of your dream.

Useful resources

This is the list of useful resources to make the job application process easier.

Summer 2021 Internships - As little note, this list mostly contain US-based companies, so it would be great idea to fork it and add local companies to it.

  • Getting a gig - Guide for getting a gig as a tech student.
  • interviews.school - Comprehensive guide to software engineering interviews.
  • Pramp - Free website for practicing mock interviews with random people. NOTE - Pramp works by the 'invite' system, so it is a good idea to accept somebody's invite to join the website or give one.
  • Leetcode - The biggest website for practicing your problem-solving skills for the algorithmic interviews.
  • Overleaf - LaTeX templates for CV / Resume.
Edit this page on GitHub