Skip to content

TechHireWorkshops/The-Technical-Interview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

The Technical Interview

What's known as the Technical Interview is usually the third stage in a battery of interviews and evaluations.

The process often goes:

  • Phone Screen
  • Remote Coding
  • The Technical Interview

The Phone Screen

It turns out your resumes are actually being looking at by people and not tossed unnoticed into the void. Someone saw your resume and decided you were worth a closer look. This call is usually tech-light, and more focused on seeing that you're not a raving psychopath, and can handle a civilised exchange with another person.

Things to do:

  • Convey a little about your soft skills.
  • Show your enthusiasm for the company, and that you are familiar with their work.
  • Show them that you'd be happy to be part of the team.
  • Show them your passion for coding.
  • Show your communication skills by speaking clearly and pleasantly.

Remote Coding

If you've gotten past the phone screen (you almost certainly will), your prospective employer will want to see that you've got the goods. Likely the remote coding assignment will be developing a small app or program that performs a specific function, or will be a series of algorithms. The algorithms may be sent directly to you, or will probably be over an app like hackerrank. It may be monitored or not.

Things to do:

  • If you have an app assignment, do what you would normally do when creating an app on a schedule: prioritize important features and make sure everything works.
  • If you have the algorithms, take it step by step and consider edge cases.

If you're doing a monitored algorithm session, this can be an opportunity to shine. You're not only showing off your coding skills, but you may be able to show off your collaboration and problem-solving method. Explain your thought process to your interviewers as you go, test your code at each step to show your attention to detail, and feel free to bounce ideas off of them if that's allowed.

The Technical Interview

The technical interview can be a combination of the above two stages, or it can skew heavily into one of the other. You need to be prepared to answer questions about yourself, your experience, and computer science. You'll also want to show your soft skills and ability to work well as part of the company.

Why are they interviewing you?

Interviewers are looking to evaluate candidates on a slew of different criteria during the technical interview. Some of these include:

  • Coding skills.
  • Your understanding of computer science concepts.
  • Philosophies of how apps are structured and function.
  • The many security measures, protocols, and conventions of the internet and modern browser.
  • Problem solving skills and approach.
  • Creativity in your solutions and ability to understand new problems.
  • Culture fit.
  • Communication skills and how you give and receive feedback.

General Tips

Many of the general and behavioral tips that make a good interviewee are the same that make a good conversationalist.

Try to be comfortable

Interviewers know that you'll be nervous. If you're able to, do your best to relax and speak conversationally. Trust your knowledge on the topic at hand, explain as clearly as you can, and remember that they expect you to be a human being.

Be positive

Every question during the interview is an opportunity for you to talk about your accomplishments and skills. Don't say anything baldly negative about yourself. Reframe failure as growth and conflict as opportunity.

Ask questions

Don't be afraid to ask for clarification about questions, or for their view on topics. The technical interviewers are likely as interested in coding as you are, and most are happy to be talking shop with a fellow coder. Don't give feedback on the interview however.

Don't be afraid to show emotion

If you're talking about a difficult topic or concept, it can be good to show that you have an emotional reaction to it. You could recount your frustration with mastering a concept (before finally conquering it). You could talk about your joy in what you do or your accomplishments. You could crack a joke about one of the many frivolous debates or gripes programmers have (gif vs. gif, dealing with git merge errors, spending hours seraching for a bug before finding that it's a type). Show them the best of your personality.

Lying

There's a thin line between lying, selective phrasing, and exageration. This is a tricky and risky topic.

Do not lie about facts. Don't say you know things that you've never seen before, or that you've done things that you haven't.

In the same vein as 'Be Positive' though, you might want to skip or rephrase details that make you look bad, unless directly asked about that. This is a tricky and risky topic.

Question Types

Tell me about yourself

This is a dreadful question and a great opportunity. There's no one way to answer this question, meaning that you can frame this question any way you choose. This question should be understood to mean 'Tell me why you're an amazing candidate for this position'. It's also a transition from the initial niceties of meeting and greeting, and can set the tone for the rest of the interview.

What to do:

  • Keep it personal.
  • Weave past, present, and future together to create a full picture.
  • Experiences should speak to how you've become a strong coder and employee.
  • Mention relevant achievements.
  • Talk about why this company is right for you.
  • Don't mention family, politics, religion, etc.
  • Don't get into details about the company or role.
  • Don't recite your resume or brand statement word-for-word.

Tell me about a time...

These questions often center around conflict, difficulties, and failures. Talk about what you learned, how you resolved things, and always about how this made you a stronger coder, team member, and person.

Answer this questions with a story. Stories naturally imply resolution and progress, and narratives invite listeners to relate personally.

These questions are a good time to bring up your empathy, you communication skills, your dedication, you attention to detail, and your problem solving

Tell me about a time you and a colleague disagreed on a project.

Explain this concept

These questions concern coding philosophies and methodologies, as well as technology standards and protocols. Often, these are large and expansive topics that can be talked about for hours.

Explain the main idea of the topic, and talk for a while about your personal experience with it. Many of these topics involve theory or computer science, but what's important in most of our roles are how they affect our code and methodologies.

These questions seem to encourage rambling and apologizing. These are to be avoided. Feel free to ask clarifying questions or explain that you're not as familiar with the concept as you would like to be, but don't drag this out. Explain what you know and/or whatever associations you have to the topic.

Topics to know:

  • Data Structures
  • Sorting algorithms
  • Big O
  • Hashing
  • CORS
  • AJAX
  • Database strengths and weaknesses in SQL and no-SQL
  • Test-driven development vs behavior-driven
  • Recursion
  • Object-oriented programming
  • APIs and REST
  • Software Development Life Cycles (waterfall, agile, scrum, etc.)

Explain CORS and your experience with it

Whiteboarding and Problem Solving

Many of the guidelines for the remote coding portion of the interview apply here, with extra weight placed on communication and explanation of your method.

Ask questions, explain your approach as you go,and take your time. Announce the individual problems you're solving as you go, and talk yourself through them. Talk about time complexity and how you consider that as you design your solution. Take notes in the margins.

These are stressful. You don't have google, the console, or even spellcheck, and it's not uncommon to get these wrong or not finish them. This is why it's important to verbalize your thoughts. Your process is as important as the solution.

Questions to prepare

  1. Tell me about yourself.
  2. Decribe your process for designing an app.
  3. What's your favorite programming language?
  4. How do you feel about the agile development process?
  5. What is responsive design?
  6. Describe Time Complexity.
  7. Tell me about a time you were completely stuck on a problem.
  8. What is a RESTful api?
  9. When do you consider an app to be finished?
  10. Tell me about a personal project you've completed.
  11. Was there ever a time you disagreed with a boss?
  12. What are you favorite debugging tools? What's your debugging method?
  13. Describe the MVC model.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages