I applied online. Waited for a few weeks and received an email asking me to complete a online code test (hacker rank). The online code test is not very difficult but requires some knowledge about basic algorithm and data structure. It will be helpful if you do some practice questions before starting the test. After the online test, I received an email asking if I am from a certain countries that are forbidden to work for IBM. I replied and waited for two months. I then send an email to ask what is happening, I did not hear from you blablabla. Then they said they still have an opening am I still interested. I said yes. Then they arrange a virtual technical interview. I prepared just for technical questions but turns out that the interview is actually more on resume stuff and random questions. I did poorly and I got rejected immediately after the interview.