During the last 10 years, I have interviewed hundreds of candidates. I thought it would be nice to post my opinion and some tips and tricks, particularly for junior developers but also for senior programmers.
Obviously, this applies to not only Filipino developers but also anybody trying to get a job in the industry.
Disclaimer: Below are only pieces of tech advice. I won’t be talking about cultural differences, as that would make this too long. But keep in mind that working for a Japanese, European, or American company will be a completely different experience. Learning about cultural differences and how to handle them is also important for candidates and recruiters, as well as employers.
A lot of developers I have interviewed learned their skills by using frameworks and don't really know the basics. I'd estimate that 80–90% of the candidates got rejected because of a lack of basic understanding of programming or the language they were using. Case in point: a huge majority of the web developers I interviewed can't properly explain what's the Javascript event loop or how a Promise works.
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 it is the foundation on which you build everything else, especially your career.
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, or whatever your favorite language is. 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 for a web job but have no idea what web vitals are, what latency is, or what a DNS is.
And SQL—if you are a backend developer, you will most likely handle a database. Please learn SQL, how to properly model a database, and what the first normalization rules are (go on, check Wikipedia, and read). Take it from me, you will need this on your tech tool belt for the next 20 years.
Also, go to Roadmap.sh and learn everything there. At no point during your career will you know everything.
Most of these languages and principles were created almost 50 years ago and are still used today.
It's perfectly OK to jump ship for career growth, and I advise you to do so if your current position is handling completely outdated technologies or processes. After all, experience and practice make perfect.
But first, know how to 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. Nor can you complain because they don't, and then blame them for your lack of growth.
Life gets in the way, for sure. But be honest. How many hours do you spend on social media, scrolling idiotic videos on TikTok? How about you do some coding sessions instead? It doesn't have to be 3 hours. Just sit down for 30 minutes and learn something—one LeetCode a day. No one else will learn any of these for you, and no one but yourself is responsible for your growth as a software engineer. If you are left behind, you will only have yourself to blame.
P.S. Watching a YT or TikTok video doesn't count as learning, that’s entertainment. It has to be hands-on for you to learn. If you are not typing code, compiling, or deploying, you are not learning.
This is particularly important today, with the emergence of AI. Some developers I met are able to give an answer to a question only because they know how to prompt an AI. But when you ask them to explain their answer, they stutter and can't provide a proper demonstration.
Not being able to explain WHY you made a decision, chose a particular technology, or structured your code in a specific way will backfire on you. It's not enough to know how to do it. You need to know (and be able to justify) why it's better to do it a certain way.
There is a difference between being a coder and an engineer. If you want to grow, don't be satisfied with being a coder. During interviews, we'll always try to discover if you can explain your decisions because it's proof that you know what you are talking about.
Yeah, I know, this is boring, too. But you'd be surprised at how many people can't write a sentence in English without a typo or misspelling. Some developers even struggle to explain things in their native language.
Now, why are English skills important? Well, when you are working with foreign (or English-speaking) clients or employers, you’d need to write all the time—in emails, in Slack, in your code, in your comments and documentation, or when naming your variables and classes. Everything will be in English. It is the lingua franca in business and programming, and there's no way around it.
If you were lucky to learn English early in life watching TV shows, Netflix, and YouTube, that’s great. But this won't help you with reading and writing. So I strongly advise you to spend more time reading and writing (even speaking) than merely watching. This is one of those progressive skills that will help you with everything else in life.
Writing in proper English will also show your employers that you pay attention to details. And luckily today, this is getting simpler with tools like Copilot or ChatGPT. But don't fool yourself into 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.
Extra tip: Another often overlooked intangible skill is etiquette, especially with communication. Please have tact. Be aware of who you’re talking to, know what to say and what not to say, use proper punctuation, and, at the very least, proofread before you send out that email or Slack message. After all, there’s a big difference between chatting with a peer and talking to a paying client.
This will depend on the company, though. Usually we don't mind people using AI during 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 know how to prompt an AI. And as soon as the AI stops giving you the correct answer, you'll be lost.
AI is simply an auto-completer. Don't use it to replace your skills. If you do so, then there is a great chance some more senior developers will also use it to replace you. An AI subscription will cost about $20 a month, and that's probably not your salary expectation, right?
Recently, I have seen a growing number of people fail an exam BECAUSE they were using an AI and got lost trying to understand its answers. They were completely unable to fix them.
And yes, it's actually super easy to tell when someone is using an AI during an interview or coding test. This is why I suspect that in the future, most coding exams will be replaced by some other form of interview, such as 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 mask will come off very quickly once you are onboarded into a project.
I know all these may sound tedious but they are essential. There are no shortcuts or special tricks to acquiring all the skills you need to be a great developer and, in turn, land your dream job. To stand out from the crowd, you need to take the road less taken, which is to learn the basics. In my experience, the most impressive candidates are those who take these extra steps.
So go back to the basics! And I wish you all the best in your careers.
If you wanna see how you may join the Arcanys team, check out our open jobs here and send your CV at hr@arcanys.com.
Software Architect
Software Architect
Eric has been working as a software engineer for more than 20 years. As a senior architect for Arcanys, he works closely with the developers to instill the habit of learning, clean coding, re-usability and testing with the goal of increasing the overall quality of the products delivered by the teams.