Thoughts on IT Jobs and Interviews in Sri Lanka
Gapstars (we're hiring!) recently held a recruitment drive and I screened candidates for PHP-related roles. I was doing a quick 20 - 30 minute call to get a feel for the candidate. The aim of this interview was to quickly gauge whether the candidate was a good fit for the organization and then move them up the interview pipeline. The process itself was fairly organized and spread across multiple people and technologies. I think I went through something like 30+ candidates in the space of a couple of weeks.
I've been doing interviews and reviewing CVs for a long time now. Following are some thoughts that I've been meaning to pen down and I think these apply to everyone in general, but more specifically to candidates applying in the Sri Lankan context.
Focus on Your Problem Solving Skills #
Software engineering is all about solving problems. Whether you're solving problems that require an extremely technical solution or solving problems related to your large business or whether you're just scratching your own itch, it boils down to being able to come up with a solution to a problem.
You don't need to be a math whiz to be a software engineer (but it helps!), nor even be an extremely technical person (but it helps!), but you do need the ability to take a problem and break it down into smaller manageable chunks.
A caveat, a good technical foundation is necessary to take you to the next step. And in certain disciplines like cryptography or design math skills are a requirment. I'm just talking about the run-of-the-mill skill level here, enough for you to get a job and be a contributing member of society. Now that we have that out of the way, onward!
Two questions that I ask during interviews are :
- What is the hardest technical challenge you've solved recently (or in your career)
- Imagine you wrote an application that connects to a database and then prints out some charts. Let's assume it worked fine on launch but now, after a year, it's taking a long time to load. What could be the problem?
The first question grants some insight into what the candidate considers as challenging and where their boundaries are. Some candidates can identify something challenging they worked on and then I can delve in further about how they approached the problem and how they identified a solution.
Sometimes I get non-revealing answers such as "I had to learn this new thing and it was hard". As software engineers, learning and constantly updating yourself is part of the job. As that's the baseline, it doesn't reveal too much about the candidate so the second question allows me to gain further insight. There's no real right or wrong answer. It's all about the type of questions that the candidate asks and the possible solutions that they put out. More experienced candidates always start by asking more clarifying questions in this scenario.
Your Current Position Doesn't Matter as Much as You Think It Does #
You could be a great software engineer but a terrible tech lead. A common problem that I see in the tech workforce is the expectation of promotions based on the time spent in that role (usually within the same company).
The skills needed to be a developer are different from that of a tech lead. Angling for role promotions based on time instead of skill just sets you up for failure. This is because you will eventually leave the current company and have to interview elsewhere. And the new place will not have any context of your past performance and will interview you for the senior role you applied for.
When I interview a candidate, I don't put too much weight on the job titles that they have on the resume. The position they are applying for determines the questions I ask of them. Based on the first couple of questions, I will either increase or decrease the level of difficulty. And as you can imagine, if the candidate is applying for a leadership position but has trouble with basic questions, that's never a good sign.
Depending on other factors, I sometimes ask whether they want to consider applying for a less senior role. If you find yourself in this position, there's no harm in asking the interviewer about this possibility.
So How Do You Avoid This Trap? #
- Identify the people who will be making decisions about your career progression
- Speak to them about their expectations of how you should perform in your current role and how they think you are doing
- Ask them about what is needed from your end to progress to the next career objective
- Make the most of your performance reviews by making sure you have clear goals and get feedback on how you're doing with them
- Spend time to update your skillset for your next career objective
Highlight Your Strengths During the Interview #
A couple of years ago I was interviewing a candidate and it wasn't going well. He came recommended but wasn't shining in terms of the technical aspect. Toward the end of it, my colleague asked the candidate "What do you enjoy working on?", and he lit up. He was really excited about video encoding, compression, and everything around that space. Got into some really technical discussions off the back of that start. Ever since then, I always try to ask a question of a similar vein during my interviews. It just lets the candidate have a few minutes talking about something that they are good at. This serves to make the candidate more comfortable and hopefully, they talk about their tech superpower.
As the candidate, if you don't get this chance, you should try your best to redirect the conversation to something you are competent at so that the interviewer does get a more complete picture. Unfortunately, this will need to be something related to the job you're applying for. Talking about stamp collecting is unlikely to help when applying for a DevOps role.
Remember that an interview is a two-way conversation. As much as the interviewer is evaluating you, you should also be evaluating the company and whether you want to work for them. If you feel the interviewer isn't giving you a chance to shine, take a more active stance in directing the conversation. Let them know about your strengths, any place that isn't willing to listen might not be a good fit because that's a bad signal in terms of company culture.
How do I redirect the conversation? #
- "..... This reminds me of the time that I used ....."
- "..... I don't have any experience with that, but I have worked with ....."
- "..... I don't know the answer to that, but that sounds close to this other thing that I worked on ....."
Get creative, you don't have anything to lose by taking a chance to highlight your strengths.
Improve Your English and Communication Skills as You Improve Your Technical Skills #
The higher up the food chain you are, the more emphasis is placed on your communication skills. Given that most IT companies in Sri Lanka are engineering back offices for foreign companies, English is going to be the primary language people communicate in. Your English doesn't need to be flawless, but it needs to be good enough to get technical ideas across. So make sure to practice and improve as you move up the ladder. Don't hold back because you think your English is bad, you only improve by practicing.
When you're applying for the role, try to find out more about how fluent your English skills will need to be so that you're effective in your role
- Junior position at a local company? You might be able to get through on minimal English skills
- Team lead for a local outfit with a foreign product owner? Lack of clear communication skills in English will almost always tank your chances.
Also, note that the emphasis is on improving both your English skills and your communication skills. You can be fluent in English and still be terrible at effective communication. In our line of work, being able to effectively communicate a concept is a critical requirement. If you don't have effective communication skills, this will negatively impact your career progression.
Identify When You're in a Rut #
This is extremely hard and your mind does its best to ignore all the signs. I've been in this situation myself and it took me over a year to realign myself. Sometimes you go so far down the rabbit hole that you're incapable of finding your way back. Don't get too invested in one technology or framework. These are all just tools that you use to carry out your actual job of solving problems.
If you find yourself pigeon holed into one area, you need to take a step back in order to assess what you need to do. Sometimes the company you work for will be part of the solution and sometimes they won't be. If they aren't part of the solution and you're unable to switch, then this means that you'll need to spend your own personal time to work on the solution. And the solution is usually spending some time on learning new things and opening yourself up to new techniques and technologies.
Make sure to review your progress periodically. Ask yourself when you learned something new that wasn't strictly part of your day-to-day tool kit. Learning new things that are out of your regular scope of work also has an impact on your specialization. If all you have is a hammer, everything is going to start looking like a nail.
Closing Off With Some Resume Tips #
I think this is a good place to wrap up for now. I just wanted to close off with some basic resume tips.
- Pick a simple resume template. There are so many to pick from. Keep it modern, don't go for too many colors or designs. And make sure to print it and see if it looks good. Or just creat
- Stick to around one or two pages max.
- Avoid adding in 'scores' for how much experience you have with a language or framework, it's meaningless without context.
- Structure the content so that your important achievements are visible.
- If you have work experience, focus on the work experience and project knowledge.
- If you're not going to write a unique cover letter, just ignore it completely.
- Skip adding things like your photo and personal details like your NIC in your resume.
- Use a tool like Grammarly to make sure your content is spell-checked.