Background: I work for a BPO company in the Philippines. We hire software engineers in different stacks, but mostly for web development (frontend, backend). Myself, I have more than 30 years of experience in the field. I am not Filipino.

During the past 10 years, I have interviewed and tested hundreds of Filipino candidates. I though it would be nice to post my opinion and some tips and tricks for juniors but also for more senior programmers.

This obviously does not apply only to Filipinos but as I work in the Philippines I prefer to post here and help the people I have been working with for many years.

Disclaimer: Below are only tech advices. I am not talking about cultural differences here as it would be too long. But keep that in mind. Working for a Japanese company, a European company, or an American company will be a completely different experience. Learning about cultural differences and how to handle them is important. Filipinos have a huge expat community abroad, ask them about cultural differences.

Advice #1: Go back to the basics

A lot of developers I have interviewed learned their skills by using frameworks and don't know the basics. I'd estimate that 80-90% of the candidates who got rejected were rejected because of a lack of basic understanding of programming. Probably 95% of the web developers I interviewed can't properly explain what's the Javascript event loop.

For example, they jumped into web development learning jQuery, or React but they don't know Javascript. This is a mistake. Learning the basics might sound boring, but they are the foundations on which you build everything else.

So that's my first advice, go back to the basics, spend some time learning the Node.js API, how Javascript and TypeScript work, how C# and Python work, whatever is your favourite language. Learn common design patterns. Learn how the internet works as well if you are a web developer. It's crazy to see how many candidates apply to a web job but have no idea what are web vitals, what is latency, and what is a DNS.

And SQL, if you are a backend developer and handle a database, please learn SQL, and learn how to properly model a database, and what are the first normalization rules (go on Wikipedia and read). You will keep this on your tool belt for the next 20 years. I learned all that 25 years ago and still use everything today, nothing has changed.

Go on Roadmap.sh and learn everything there. At no point during your career you'll know everything.

Advice #2: Don't expect your current employer to teach you everything

It's perfectly OK to jump boat for career growth and I'd advise you do so if you are working with completely outdated technologies or processes because in the end experience and practice make perfect.

But first, learn by yourself! I have yet to meet a skilled software engineer who hasn't dedicated their evenings or weekends to honing their coding skills. You can't expect your employer to pay for 6 months of training, and lament because they don't and you are not growing.

Life gets in the way, for sure, but be honest, how many hours do you spend on social media? Just replace that with some coding sessions, sit down for 30 minutes and learn something, or simply solve 1 Leetcode every day.

Nobody else will learn for you, and nobody else is responsible for your growth as a software engineer.

PS: Watching a YT or TikTok video doesn't count as learning, it's entertainement. You must apply your skills to learn. If you are not typing code, compiling, deploying, you are not learning.

Advice #3: Be able to explain what you have learned

This is particularly important today with the emergence of AI. Some developers I met are able to give an answer to a question (because they know how to prompt an AI), but when you ask them to explain their answer, they are stuttering and can't provide a proper justification.

Not being able to explain the WHY you made a decision, chose a particular technology, or structured your code in a specific way, will backfire. It's not enough to know how to do it, you need to know why it's better this way over the other way.

There is a difference between being a coder and an engineer. If you want to grow, don't be just a coder. During an interview, we'll always try to discover if you can justify your decisions because it's a proof you know what you are talking about.

Advice #4: Learn how to properly read and write in English

Yeah I know, this is boring too. But you'd be surprised how many people can't write a sentence in English without a spelling mistake. Why is this important? Because when you are working with foreign (English speaking) clients or employers, you'll write all the time, in e-mails, in Slack, in your code comments, naming your variables and classes. Everything will be in English.

In the Philippines, you are very lucky to learn English early in life, but I think you are learning the language mostly by watching TV shows, Netflix, and Youtube. This won't help you with reading and writing. I'd strongly advise you spend more time reading than watching. This is one of those compounding skills that will help you with everything else in life.

Writing in proper English will also show your employers that you are careful and have attention to details. And luckily today this is getting simpler with tools like Copilot or ChatGPT, but don't fool yourself thinking that you are good at something if AI is doing it for you, because companies also know how to simply use an AI instead of you.

Advice #5: On using AI during coding exams

This will depend on the company, usually we don't mind people using AI during an exams, but a coding exam is about showing you know how to solve problems. If you copy/paste everything from AI you are just showing you can prompt an AI, and as soon as the AI won't give you the correct answer you'll be lost.

AI is like an auto-completer, don't use it to replace your skills, because if you do so then there is a great chance some more senior developers can also use it to replace you.

Recently, I have seen a growing number of people failing an exam BECAUSE they were using an AI and got lost trying to understand ChatGPT's answer and were completely unable to fix it.

And yes, it's super easy to tell when someone use an AI during an interview or coding test. In the future, I suspect most coding exams will be replaced by some other form of interviews like pair programming sessions, or live whiteboarding.

Also, consider this, once hired, if you cheated your way with AI, there is a great chance you won't pass the first performance evaluation. The make-up will wear off very quickly once you are onboarded in a project.

Conclusion

I know all this sounds quite boring, there are no special tricks to get you your dream job. If you want to be above the crowd you need to do things that most people don't do and in my experience, most candidates I have interviewed are not doing all this.

Go back to the basics! And I wish you all the best in your careers.