In the sixth post of the series, I will talk about the technical interview, which can be a conversation with a company technician or live coding.
The sixth post in the “Work Remotely and Earn Dollars with Programming” series marks the end of the selection stage. I will talk about the technical interview that can occur in two ways: a conversation with one of the company’s technicians or live coding. Since I have more experience with the first way of interview, I will emphasize it in this article. However, I will also address important aspects of live coding. I wish everyone a good read!
First of all, I would like to emphasize the reason I am writing a post dedicated to technical interviews since I have already published another post about interviews in general. The reason is the fact that many developers are disqualified in the first 15 minutes of technical conversation, wasting all the time and effort put into the selection process. Therefore, proper preparation is the key to your success.
1. Prepare yourself in advance
- Review the aimed job description, as well as the technologies and skills required. By doing this, you will have a direction to prepare yourself;
- For each technology and skill, make a list of the key concepts, tools, and processes that are most likely to be covered;
- Create a document or write down in a notebook everything you know about the topics listed in the previous step;
- Research reliable sources about the subjects listed and compare the information with your notes.
What did you write to cover the main concepts?
What subjects were you unable to explain clearly and objectively?
Could you explain a certain concept to a layperson in the area? - Practice the answers in English with someone, also following the third post tips, click here to access it.
Note: Prepare to talk technically about your previous projects, and have examples of code scripts on the day of the interview, if possible.
2. Practical example
Job position with the following requirements:
Dev front-end React position
Requirements
JavaScript
Knowledge about how to consume Rest API with Axios
Knowledge about how to create and maintain reactive applications with React Familiarity with NodeJS development
Basics of GIT Basic operations for versioning
SQL
Know how to connect and consume data from a SQL database with JS
Differentials
Experience with Gitflow
Experience with PostgreSQL database
Experience with CI/CD
Experience with agile methodology (preferably SCRUM)
Experience with software development in the SAAS model
What subjects would you review 🤔?
I would initially focus on the CORE skills, which are:
- React
- State management/syncing with back-end
- Redux
- React context
- Some different techniques that Angular uses to make a counterpoint (only if it had time)
- Hooks
- useState
- useEffect
- useReducer
- Angular app lifecycle to make a counterpoint (also only if you had the time)
- Route management
- Form validation
- Styling
- JSX
- Typescript
- State management/syncing with back-end
- Basic Git
- Essential Git commands
- How to collaborate as a team
- Branch management
- Pull requests
- Code review
- API
- HTTP basics
- Most used methods GET, POST, PUT, PATH
- Basics of Axios and how to use it
- Authorization/Authentication
- JWT
- SCRUM
- What are the basic concepts and ideas behind scrum
- How Scrum enables teams to work remotely
- What is a sprint, average duration time
- What are story points and how to measure a task’s time using them
- Basic Scrum Ceremonies
- SQL
- SQL Basics
- When to use SQL or No-SQL
Other than the items listed above, we still need to cover the differentials. So it’s clear that the preparation needs to be done in advance, otherwise you will be eliminated in the first few questions
3. On the day of the interview
Anxiety before and during the interview is very common, and you are requested to show your skills and previous experiences in this context. To reduce nervousness, in addition to studying a lot about the issues related to the job, I do the following:
- Bring the conversation to your own terms: every time the interviewer asks you a question, try to explain it by giving examples of how you solved a situation in previous projects using this theme. This will give you more confidence to talk about the subject (I am assuming you are a professional with previous experience).
- See the interviewer as a facilitating agent: in general, at this point in the selection process, the person who will evaluate you is usually someone from the company’s technical team, in other words, your future working partner. Therefore, see this person as a colleague, rather than someone who will prevent you from getting the desired position.
- Ask questions about the project you will be a part of at an appropriate time: Asking this type of question not only shows you are interested in the project but also transfers some responsibility from you to the interviewer and you may be calmer.
4. Live coding
As mentioned at the beginning of this post, in some cases, the technical interview may happen in a Live coding format.
Organizations are reducing costs and headcount to keep their businesses effective during the crisis, so they have changed the way they hire new employees.
This fact is becoming apparent when companies are requiring live coding rather than take-home projects. This practice may not be a good criterion for evaluating the candidate’s technical skills and his value for the team, however, can say a lot about the candidate.
The tips I bring to live coding are the following:
- Practice a lot! As simple as it may seem, the most important thing to do is practice. Even if you have a lot of programming experience, you may not be used to coding with someone watching your screen.
- Don’t jump right into coding: During the interview, many developers tend to jump right into the challenge, coding from the start. Although the urge to show off your coding skills may lead you in that direction, it’s best to step back and discuss the problem at hand first. Clear all your doubts as this will not only give you a fuller understanding of what is expected but will also allow you to avoid any pitfalls during the challenge.
- Keep the solution simple: in live coding, nobody really expects you to write a 100% correct code. The most important thing is to have a code that runs at the end of the challenge, even if the solution itself is suboptimal. During the challenge, demonstrate how you think about the problem, how you separate it into parts, and how you work to find the solution. Make it efficient and show that you are capable of producing a well-thought-out and designed solution.
- Establish a connection with the interviewer: At the beginning of the live coding, be sure to create a connection with the interviewer. Ask questions since they want to see how you think, guiding you to the solution. Don’t be shy about asking if the approach is what he expects from you.
- Write a solution before explaining it to the interviewer: one of the challenges of live coding is transitioning between writing code and talking about code with the interviewer. For developers who aren’t trained, this practice usually breaks the coding flow, causing them to skip steps in live coding that they wouldn’t skip in a real environment.
5. To go further
I recommend reviewing the tips about interviews in general, it will be very useful for the technical interview as well.
I hope this content will be useful in your career. If you are enjoying this post, please share it on your social media! Wait for the next posts with exclusive content that we are planning for the next few weeks!
See you later!