assalamualaikum
i sudah berkerja sebagai seorang programmer selama 3 tahun dan sudah bertukar tempat kerja sebanyak 2 kali. so proses pertukaran kerja ni cam biasa la mesti lah ada proses interview kan. so mari sini i kupas and share sikit pengalaman and what to expect, what to prep for interviews as programmer la ye. i mahu mulakan tahun baru dengan post yang berilmiah cehhh hahaha.
sebelum tu, disclaimer sikit yang pengalaman i is based on my role as a full stack web developer. mungkin some programmer roles mcm devops, app dev etc might have different styles of interview so mcm biasa la refer saja, this is not the ultimate source of truth.
okay so bila kita mencari kerja ni yang pertama mestilah update CV dan send application kerja. jika ada rezeki, i might be discovered by a recruiter from a recruiting company. they usually will call me first, ask about my expected salary, other compensation packages, benefits, revisit my experiences at the current/previous company and then they will let me know that they're scheduling an interview. the invitation will be sent via email.
so my first interviews in my experience were with head of departments, technical leads, senior managing partners and senior software architect. and say out of 15 interviews that i attended, only 1/5 will ask deep technical knowledge. the rest prefers to let me ramble about my past experiences, give me some possible scenarios to see how i propose to solve them and ask questions based on my past projects.
so let's break stuffs down:
part 1 - verbal technical interviews
i pernah melalui around 15 technical interviews dengan style yang berbeza beza. tapi yang semua company mesti bagi i adalah theory questions. sometimes relax relax, sometimes drilling, back to back punya style. so i always prep myself the night before utk cari cheatsheets mcm "Angular interview questions", "NodeJS interview questions". i will go through the notes and match with my experience. honestly, jangan terlalu rely on the internet answers sbb sometimes interviewer akan tanya, "how do you apply this in your code, where do you use this in your code" bla bla so mcm kena tau juga sedikit sebanyak.
if they really are drilling your technical knowledge, they would ask stuffs like (in angular terms), "explain how you utilise angular lifecycle hooks", "when to choose to use reactive or template-driven forms", "tell me all the ways you know to center a div".
if they are more chill, they might just ask your experience. for example, i have experience developing a searchable directory for car workshops nearby to customers on the road. so they would ask how i utilise Google Maps API, how do i handle fuzzy search, how do i insert myself in UI/UX design process, how hard was the project for me as a beginner. so the interview became more like a chatting session.
my honest tip would be to just say you don't know if you really don't know. i got away with it most of the times. i will lace my lack of knowledge by saying "i'm not really sure about this, but i'll make sure to educate myself before i join in." etc.
part 2 - "tell me about yourself"
be charming when you are given a room to tell your interviewers about your skills. be humble and honest that what you are saying is of course, to dazzle them. assure them that your confidence in delivering these information is on par with your technical abilities. try to use reactions to show them how challenging your tasks were, how happy you are when you were able to solve the problems. let them know all the good words and praises your superiors have given you. let them know how much you volunteered to do something you haven't tried before.
be enthusiastic. show how much you are willing to learn on the job. assure them how independent and resourceful you can be if given tasks out of your comfort zone. let them know all your soft-skills that doesn't really apply to your job, but you can do. let them know that you are comfortable working in teams. tell them that you understand that no job is easier than the other but you are up to every challenge.
be truthful about your expectations. let them know if you are a family person and if you would love some balance in work. let them know if you are concerned about schedule of deployments, your responsibilities, the organization of the project. let them know if you might need support and ask if you will have a buddy to help you go thru understanding the project. and of course, if their answers don't satisfy you, let them know your concerns, but say that you will try your best to accommodate.
be expressive when you are given the audience.
part 3 - technical assessment
so sekiranya mereka berpuas hati dengan verbal technical interview i, i selalunya akan tanya, "will there be a technical assessment?". kalau tak ada memang bersyukur alhamdulillah hahaha. tapi kalau ada pun tak apa.
so some of the assessments that i have been given were:
#1 project-based assessment:
this is my favorite type of assessment. background is, they will for sure ask you to code something in language that they have described in the JD (thus ensure you apply for jobs that fits the skills you have) or you can also just swing with what knowledge you have but ensure that you can guarantee them that you know how to map from a syntax to another.
as a web developer, my assessments are always the same. to create an app with CRUD operations. it can be either a product inventory or user management system. any theme could be so long as you can create an entry, read (display the entry on the UI), update the entry's data and delete them whenever you required. you have to do it in the most optimized way possible which means that if you want to demonstrate an update operation, you may want to know if the app requires you to allow autosave or save in bulk on submit etc.
understand your assignment. if you are applying for a front-end position, focus more on the look and feel. optimize your input textboxes, scrollbars, responsiveness, colour, fonts. make use of fake back-end or ready made APIs you can find online. if you're applying for back-end position, maybe demonstrate caching, clean structure of classes and functions, best iteration methods etc. if you're applying for a full-stack, meet in the middle. don't do everything for every end. minimize on the aesthetics of the UI and also minimize on any extra back-end tools like you don't have to build a swagger for your assignment.
#2 algorithm assessment
this would be my least favourite assessment of all. but i do know some websites for algorithmic practices/challenges (hackkerank, codewars, leetcode). these kind of assessments relies on your knowledge on the binary trees la, which i don't practice lol. they will just send an email to you with a link to the assessment and it's going to be timed and usually they will give you around 2-3 hours to solve a set of questions. and usually these kind of assessments also allows you to pick whatever language that you are comfortable with because they just wanna assess your problem-solving skills.
#3 live coding
honestly, i was surprised to ever be tested to code live. my experience was to do it on stackblitz and lasts around 15 mins because i think they want to test your ability to think fast and critical thinking. my experience was they just know that there would be more than 1 way to do solve a problem, but which one will you choose and if you are able to think fast in a critical situation. masa i kena live coding ni, memang betul betul spontan sebab it was right after my verbal interview.
my advise for live coding is to not let your sweat stains be shown haha. relax your muscles, and google if it's permitted. because as a programmer, you can always look up for stuffs on the internet and it will never be exactly as what the assignment requires so usually the interviewer just want to assess your understanding of how coding works and if you can apply a solution to your problem.
part 4 - what to ask your interviewers?
here are some of the questions that are in my prerogative, are important to ask and be clear off and will definitely help you decide if the work suits you or not. some answers might accommodate you so always revisit if you can take it or if it's a big factor that will make your job hard to accomplish.
1. how many people will be in my team? - i usually will not go for small teams where only 1 person is responsible wholly on a stack. for example, i cannot be the only front-end developer in a team because i may need to take a break some time and i wouldn't want to be disturbed during it. a comfortable scrum team for me will have around 6-7 developers, a balance between back and front end developers. if your role is a full stack, try to probe which stack are you going to be more focused on.
2. what is the working arrangement? - i prefer max of 3 days wfo but this is very personal to your own preference. you can ask how flexible if you need extra days to work from home or if it's possible to always have a seat if you prefer to come to office everyday.
3. will a laptop be provided? - i will always try to avoid working on a personal laptop since i don't want to be liable if any code or documentation is released from my laptop. i will also usually ask if they can provide me a mac because i am more accustomed to work on mac. but not getting a mac is not a deal breaker for me so long as it is a high-powered machine suitable for programming and if the process of replacing my laptop if it has technical issues is short and easy.
4. what is the nature of the project? is it public facing or used internally? what is the deployment cycle? which tool are you using for code versioning? do we have proper documentation to learn about the project?
5. what is the project management tool that the company/project uses? - i have a personal preference towards projects that practices agile. i will also ask some follow up questions about how development tickets or bugs are being handled, how much will we work hand in hand with our product owner, what tool is used to track the progress of ticket development, how do you measure the complexity of the ticket etc
6. how would you describe the work culture in the company? - do you have team building events? do you offer pair programming or buddies for people who's starting up? do you have a learning or certifications platforms to upskill? what is the relationship between the department and the HR?
7. how appraisal works? - how is my performance going to be rated? what is the measurement? how often is the checkpoint session?
8. how can i dazzle you in 6 months? - what are the expected outcome of me joining the company? is there a target that i can hit to ensure that my performance is above average. let the employers tell you what they expect to see with you as a part of the team.
part 5 - wow the interviewers really bought my presentation. now the HR calls me?!
congratulations. if the HR reached you back, it's highly likely that your interviewer really likes you and is assigning the HR to set a deal with you. for me, i have a set of questions that i will also ask the HR and this will helps me in deciding if the job works for me.
1. is this a permanent role? - if not, how is a contract employee going to be assessed to be qualified to convert the role to a permanent position?
2. how long is the probationary period?
3. what is the offered salary? what are the perks that comes with it? how about the medical coverage? how about my dependents? what are the extra perks that i can enjoy as an employee?
4. what is the average bonus percentage? when is the payout?
5. what is the average percentage for salary increment? when is the new salary effective?
6. what is the job grade that i'm joining? - what is the expected deliverables for my grade?
part 6 - signing the deal
if you are satisfied with all the answers provided in the HR round, it's time to verbally confirm to them of your acceptance and readiness to review your offer letter.
i know that all these questions might seem overwhelming and of course it is. that is a lot of questions coming from an interviewee to an interviewer so i don't always ask ALL the questions. i pick and choose depending on the situation. sometimes, i just reworded some stuffs so it doesn't sound like i'm asking a lot. treat this as a guide to probe as much information upfront as possible to avoid a lot of shocks when joining. remember that work is work, it should not affect your mental health so it's important to really know the nature of the job before jumping into it.
the questions to the HR are as important. you wouldn't want to fall sick and know that your company doesn't actually offer medical benefits and don't allocate any medical leaves for you, or you missed out on 5 months of public transport costs that you can claim because HR never told you until your colleague showed you. the key is to probe as much fact as you need.
however, remember that there is a thin line between being too cocky when asking too much, might make you sound too demanding so pick and choose your priority questions and do word them correctly. take notes of every answer for your questions. let the interviewer do most of the talking after every question so that you don't ask questions that they are already covering. show them respect.
sekian, my tips. all the best for your job hunts and interviews for the new year!!!
oh my god i don't have any photos in this post lol