This is English translation of 東京にいながらにしてインターナショナルな環境でプログラマー(Rubyist)として働くというお話 that I wrote in 2015. The translation is provided by ChatGPT.
The day of RubyKaigi has come around again this year.
After RubyKaigi ends, it's almost a tradition for everyone to say, 'Ah, I wish I could speak better English.' My first time attending a Ruby conference was already 7 years ago, and compared to back then, the number of participants from overseas has greatly increased, and nearly half of the sessions are now in English. Amidst this, I, among others, have realized our own shortcomings in English proficiency.
I want to recommend a method for such people: working at a company with a development team composed of international members. I'll write about my experience working as a contractor helping with development at MediWeb as an example.
Since September, I've been under the care of MediWeb and participated in RubyKaigi as a Gold Sponsor, so there's a sense of gratitude, but it's purely my personal opinion that this way of working is pretty good for engineers, so I'm introducing it on my personal blog.
You can get accustomed to English
First, let me introduce my background. From 2000 to 2004, I worked as a QA engineer doing internationalization and localization at a software company based in San Francisco. So, I have some experience working as an engineer in English. However, my colleagues weren't native speakers but software engineers from Russia and Ukraine, so the easiest English for me to understand was with a Russian accent. I think I can speak much better than the average person, but my self-assessment is that I didn't improve much despite living there for four years.
Moreover, my English skills had fallen quite a bit due to a break of over ten years, but after working at MediWeb for three months, I feel like I'm getting back to my old level.
We're developing a cloud service called 3Bees for clinic reservation and queue management using Rails, and the code to be deployed in the production environment is always written through pair programming. The development team members are from diverse countries like France, Ukraine, Poland, America, and Canada, and I pair up with different members. Although some are fluent in Japanese, almost all communication is in English, and even lunch with the development members is English only, so it's like having free daily English lessons. Also, comments in the source code, PR comments, etc., are all in English by default.
Honestly, the first two weeks were almost feverish, but now I've gotten quite used to it. While some people pay to study English in the Philippines, I think it's a very advantageous environment to be paid while learning English.
You can experience a sense of humor and various values that are new Development is conducted according to the scrum method, and since one week is one sprint, we review every Friday and plan afterward. Sometimes we celebrate with a beer or two in the office.
When I'm a bit tipsy, I can talk much better, and during such times, a video was introduced when discussing how difficult the French R sound is for Japanese people ↓
Ah, I laughed a lot at this, but this sense of humor is a bit different from the Japanese, which is interesting. There were also pranks from some Nordic comedy show and when I was struggling with CSS, a Gif like this was sent in Slack.. I don't know how to describe it, maybe it's classy or witty?
View post on imgur.com
There are things that I don't get at all, but including those, I think it's good for those who can enjoy them.
No Japanese blackness
I'm quite reserved by nature, and I tend to worry too much. If someone says something harsh, I take it to heart, and I often wonder, 'What does that person think of me?' However, when I was working in America, I honestly couldn't guess what the other person was thinking, so I didn't need to worry about that, and I remember it being comfortable in terms of human relationships.
Working in an international development team gives me a similar feeling, which is nostalgically comfortable for me.
The first company I joined after graduation was quite Japanese in nature. If a boss said 'Let's go drinking,' it was obligatory. I had experienced customs like pouring beer with the label facing up in a university sports club, and while it was fun and not a hardship, to continuously stay calm, a Western-style dry relationship seems more suitable. I think many software engineers share this value.
There's a value in respecting each other's time, and leaving work on time is considered good. If you're sleep-deprived, overworked, and not performing well, you're not seen as professional.
There's a strong sense of professionalism and consciousness of team development.
Code is always done in pair programming, and Pull Requests are always reviewed by someone not in the pair, maintaining an atmosphere of strictly adhering to the rules of development. When I worked in America, I always thought that everyone followed the rules properly. The reason isn't clear, but it may be because, in both America and in international teams, when people from various backgrounds with different values work together, the only common ground becomes the explicitly stated rules, so they are followed more strictly.
In a Japanese context, there's a tendency to say, 'We don't have to be so rigid,' or 'Let's be flexible, this is an exception,' leading to a gradual increase in exceptions and eventually breakdown. On the other hand, by gradually optimizing the rules and strictly adhering to them, especially in software development, things start to run very efficiently.
Contradictorily, in a good way, to being dry, there are many moments that make you feel like you are really part of a team, like light celebrations at the end of a sprint, or ordering pizza for everyone in the office when we couldn't have lunch due to an issue.
On birthdays, there would be a Pull Request assigned to me that I didn't remember, and when I opened it, it would contain something clever like this ↓. It's a nice touch.
Conclusion
If you're working as a software engineer, working for an overseas company might be environmentally better. For example, living and working in America can be challenging, especially if you have children and need to think about their education. Additionally, while San Francisco is somewhat better, the food isn't great.
If you work for a company with an 'international team,' you can enjoy the benefits mentioned earlier while living in Tokyo, where there are plenty of delicious places and in the safe environment of Japan.
There are international companies that develop using Ruby/Rails, so if you think the environment I've described suits you, why not try working for such a company?
MediWeb is one of these companies, and at RubyKaigi, you'll likely see members of our team. I'll be there too, so if you're interested, mention me at @jishiha, and I'll introduce you to what it's like to work there and connect you with the development team.
Or if you're seriously interested in formally contacting us, go here ↓
2023/12/14 15:38:00