How to work remotely and Earn Dollars with Programming – pt 6

Remote work
Wednesday, January 3, 2024 (12 months ago)
6 minutes
9 Views
Igor BrandãoIgor Brandão#igorabrandao
Table of contents

    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.

    Prepare yourself in advance

    1. Review the aimed job description, as well as the technologies and skills required. By doing this, you will have a direction to prepare yourself;
    2. For each technology and skill, make a list of the key concepts, tools, and processes that are most likely to be covered;
    3. Create a document or write down in a notebook everything you know about the topics listed in the previous step;
    4. 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?
    5. 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.

    Practical example

    Job position with the following requirements:


    Dev front-end React position

    Requirements  

    • JavaScript  
    • 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

    • React

      • State management/syncing with back-end
      • Redux
      • React context
      • Hooks
        • useState
        • useEffect
        • useReducer
      • Angular app lifecycle (if time permits)
    • Angular (counterpoint to React, if time permits)

      • Different technique for counterpoint (if time permits)
      • Route management
      • Form validation
      • Styling
      • JSX
      • Typescript
    • Git and Team Collaboration

      • Basic Git
      • Essential Git commands
      • Team collaboration
        • Branch management
        • Pull requests
        • Code review
    • Web Development

      • Basic concepts of HTTP
      • Most used methods
        • GET
        • POST
        • PUT
        • PATH
      • Basic understanding of Axios and its usage
      • Authorization/authentication
        • JWT
    • Development Methodologies

      • SCRUM
        • Basic concepts and idea behind Scrum
        • How Scrum enables remote team collaboration
        • What a sprint is and average duration
        • Understanding story points and quantifying task time with them
        • Basic Scrum ceremonies
    • Databases

      • SQL
        • Basic SQL
      • 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

    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.

    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:

    1. 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.
    2. 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.
    3. 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.
    4. 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.
    5. 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.

    To go further

    I recommend reviewing the tips about interviews in general, it will be very useful for the technical interview as well.

    "Component card aqui"

    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!

    Igor Augusto Brandão

    Igor Augusto Brandão

    #igorabrandao

    Hello, world! My name is Igor and I am a system analyst professional with degrees in Systems Analysis, Business Administration, Information Technology, a specialization of IT applied to the Legal Area, an MSc in Bioinformatics, and +10 years of experience working with systems development.

    Comments

    No Comments
    There are no comments for this post yet. Be the first to comment!