I received an email from a fellow Canadian asking me about my experience coming to Japan and finding a job as a Ruby developer. Because this might be interesting for other people, I'll answer it in public.
How I came to Japan
During the first day of the first computer science course I took, I happened to sit next to a Japanese woman. Over the semester, we became friends, and I remember many a lunch we had together, where she would tell me about life in Japan. Because Vancouver has many immigrants, growing up I had friends who had come over with their parents, but she was my first friend who came to Canada by herself. My friendship with her was the start of my interest in Japan.
Throughout university, I made several more Japanese friends. I also found out about the Co-op Japan Program, through which I could do an internship in Japan. I thought that program sounded interesting and decided I would do it. However, after investigating it more thoroughly, I discovered I would need to delay my graduation a year for a chance to do it.
In the summer of 2005, I got a new roommate in the shared house I was living in. He had just come back from a year in Japan on the Working Holiday visa. I decided that I'd skip the Co-op Japan Program, and try going to Japan on a Working Holiday after I graduated instead.
That same summer, I also got a Japanese girlfriend. She was in Canada on a Working Holiday. We continued our relationship until she had to return in February of the following year, and then decided to continue in a long distance relationship until I went to Japan in the summer.
How I found a Job
With the Working Holiday visa, you are not allowed to have a job offer before you go to the country you are doing the holiday in. However, about a month before I went, I decided to get a feeling for the job situation in Tokyo. Most of the job postings either required a high level of Japanese or extensive software development experience, neither of which I had. Furthermore, the postings themselves all sounded generic and uninteresting. However, I found one posting that sounded different - a company called Ubit was looking for a junior developer to develop a mobile CMS using the Ruby programming language. I sent the company the following email:
Dear Sir or Madam,
I am applying for the position of Junior Developer. In mid-August I am coming to Japan on the Working Holiday Visa, and while looking for potential jobs I came across ubit. Although I was not planning on applying to jobs until I arrived in Japan, I did not want to risk having the position close, as ubit appears to be my ideal company. ubit attracted me because it is a small company, with motivated and talented employees.
I have just completed my BSc in Computer Science, and am going to Japan with the hope of finding related work. Although my Working Holiday Visa is good only for a year, I am interested in continuing working in Japan by obtaining a regular working visa. I want to work in Japan because it is a very different culture from Canada, but has similar standards of living.
Last summer, I worked for [redacted], a company that develops web services such as message boards and web surveys. I improved and maintained the services using primarily php and mysql. The company took an anarchistic approach to software development, not using any software development methodology. Because of this, I felt though they made short term gains, their software quality and productivity suffered over the long term. Thus, I am excited to see that ubit emphasizes software development methodologies.
Thank you, Paul McMahon
Looking back at this email five years later, having had experience recruiting people, it does not surprise me I managed to get an interview. For a small company, the most essential thing to demonstrate is that you want to work for that company. I genuinely was excited at the prospect of working for Ubit, and I think my email conveyed that.
A month later, in August of 2006, I arrived in Japan. I moved in with my girlfriend, and soon after, had my interview at Ubit. While waiting to hear back from Ubit, I did touristy things during the day, coming home to prepare dinner for my girlfriend in the evening. Because we were sharing an apartment on the outskirts of Tokyo, our rent was quite cheap, and I didn't feel in any hurry to get a job. However, as weeks dragged on, with no outright rejection, but no offer either, I started half-heartedly applying to other positions. I never heard anything back from the other companies, but about a month after my initial interview with Ubit, they made me an offer.
I started working at Ubit from October 2006. The company pretty much matched my expectations. In the first three months working there, I learned more about software development than I did in my entire University education. Most of all, I was glad to be surrounded by passionate software developers - people who strived to improve their craft and themselves.
In February of 2007, my Working Holiday visa came up for renewal. In Japan, the Working Holiday visa lasts up to a year, but you need to renew it after six months. As I already had a full time job, with Ubit's support, I applied for a normal working visa. I got the visa without any issues. It's been my experience that if you have a University degree and company willing to sponsor you, you should be able to get a working visa in Japan.
Advice for Finding a Job
When I came to Japan, I had minimal Japanese skills. While it is possible to get a job in Japan with little to no Japanese, the greater your Japanese skills, the more options you have. If you aren't fluent, consider spending your first year or two studying Japanese. Alternatively, the JET program is a good way to learn Japanese - many of the foreigners I know who are fluent have come to Japan through this program.
Be in Japan
The best way to find a job in Japan is to be here. Not only does it allow you to interview directly with potential companies, but also allows you to get involved in the local community. The working holiday visa program is a great option as if you get a job offer, you can start working right away.
Get Involved in the Community
You won't find most of the best positions on job sites. By getting involved in the local community, many more options will open up. I organize Tokyo Rubyist Meetup, which is a great place for international developers to meet local ones, but there are also many other such events happening in Tokyo.
Contribute to Open Source
By contributing to Open Source, you can show not only you have development skills, but also that you have a similar ethos to your fellow developers. As a Ruby developer, your github profile is your resume.