バンクーバーの仕事を退職しました

バンクーバーでWebデベロッパーの仕事を見つけ約半年ほど(5ヶ月くらい)働いてきましたが、この度その仕事を辞めることにいたしましたので報告します。

どのように海外で就活してジョブGETに至ったかやカナダの現地企業で働いてみて感じてことは以前のエントリにまとめてあります。興味がある方はそちらをどうぞ。

今回は海外の仕事の振り返りエントリとして、(日本語で書いていることだし)良い事も悪い事も含めざっくばらんに書いてみようと思います。

やってたこと

働いていた会社はSprout Willness Solutionというところになります。

そこでWebアプリケーションを作っていました。どんなアプリケーションかは下記の動画を観てもらうと早いかもしれません。

似たようなサービスが日本に無いのでなかなか説明するのが難しいのですが、一言で表現するなら「従業員の健康促進WEBアプリケーション」とでもいいましょうか。B2Bで企業に対し提供されるWEBアプリケーションで、従業員はそのサービスを使うことでアクティビティをトラッキングしたり、目標をセットしたり、イベントを作成したりできます。

入社当初は当アプリのi18n(他言語対応)プロジェクトのコアエンジニアとしてイギリス人のもう一人のコア開発者と共に働きました。対応言語は英語とフランス語の2か国語(カナダの公用語は英語とフランス語)。このi18n対応は3ヶ月ほどで終わり、その後は新機能の開発、機能改修、バグフィックスなどをやってました。

辞める理由

ワーキングホリデーのビザが切れる直前のギリギリまで働き続けることも可能だったのですが、今回その前に退職という選択をしました。なぜ辞めるのか。大きく理由は3つです。

コントリビュートできた

第一に技術的な意味で自分ができる貢献は十分にできたかなと感じたからです。以下は会社から与えられた基本タスク以外にやったことです。

  • Gitコマンドの使い方 (rebase, cherry-pickなど)を同僚に教えた
  • Github上でプルリクエストを出すかたちで新機能の開発を進めた(誰もプルリ機能を使ってなかったので広める意味でやってたけど、結局だれもプルリ方式の開発を真似してくれなかった…)
  • 煩雑なマニュアル・デプロイプロセスがあったのでシェルスクリプトを書いてデプロイの一部を自動化
  • コードのリファクタリング
  • 不必要・ムダなファイルを削除

これらは別段すごく難しいことでもないし、そこそこのエンジニアであれば行って当たり前のことだと思います。しかし誰もやろうとしなかったので僕がやりました。

これらの他にも実装方法、設計、開発方法とかに改善余地はあったけど、その辺を同僚・上司と英語でディスカッションして決定まで持っていくだけの英語力が僕になく、この辺が自分の貢献できる限界かな、という感じでした。

海外でも通用する

第一の理由で書いたように、同僚に何かを教えてもらうよりも、自分がgitコマンドの使い方など同僚に何かを教えることが多かったです。言い換えると技術的な面で会社からは学ぶことはほとんどなかった、ということになります。他の同僚エンジニアと技術力を比べても自分のほうが高かった気がしてます。このことは僕に「海外でも自分の能力は通用する」という実感を与えました。これが第二の理由です。

漠然と「海外のプログラマはデキる!」というイメージを抱いていたわけですが、まぁもちろんそんなことはないですよね。どこの国でもそこそこ優秀な層は全体の数十%で、さらにそこから超が付く優秀になると数%なわけです。漠然と海外にある種の<エンジニアの理想郷>を描いていたわけですが、そんな世界はもちろんなかったわけです。

自分が超の付く優秀なエンジニアだとは思っていませんが、海外でも自分の力が通用すると知れたのは今後の自信にもつながりとても良かったと思ってます。

英語の壁

技術力通用しました。しかし英語力はまだまだだなと感じさせられました。先日こんな記事を見つけました。記事内では英語スピーキングレベルを下記の三段階に分けています。

  • 1) 上級
  • 2) 中級
  • 3) 初級

文系で日本人と関係ないことをしようとすると、問答無用で1)を目指す必要があり、そうでないと、能力以前にチャンスをほとんど与えられません。 (…中略…) 理系のエンジニアであれば、2)になれば、どんな場所でも昇進のチャンスはあるでしょう。ちょっとイライラするけど、スキルをも持っているなら我慢できるレベルです。

じゃあ、英語スピーキング 現在当該エントリは削除されてる模様

自分はスキルで会社に採用された形になりますが、上エントリにおけるレベルの「中級レベル」にも満たないスピーキング能力です(初級と中級の間くらいだと思う)。 エンジニア間の会話では同じテクノロジーを共有して話すことになるので、英語が話せなくてもなんとかなりましたが、ビジネス層の人との会話となるとそうもいきません。「実装方法」「デッドラインに間に合いそうか」「なぜこのバグが発生したか」などのトピックを技術のわからない人にもわかるように英語で説明する必要があります。そのときにやっぱり英語能力の足りなさを感じるわけです。

そして周りはみんなカナディアンで英語ネイティブスピーカー。そんな中に身を置いていると、技術的な面では無問題ですが、英語の面で皆の足を引っ張っていることは明らかなわけです。

もちろん僕は帰国子女でもないし海外生活も一年足らずなので、そのレベルでネイティブ・スピーカーと対等に話そうなどとはどだい無理な話ですが、それでもビジネスシーンで自分の英語力が不足していことは痛感しました。ということで残りの滞在期間は英語の学習に充てることにしました。それが残りの期間を最も有効に活用できる道と考えました。

良かったこと

以下は仕事を振り返って良かったことです。

  • 英語環境下で働けた
  • Githubで開発できた
  • コード、開発フローをちょっとだけ改善できた
  • 技術力が通用した
  • 英語能力がまだまだだと知れた
  • ノー残業だったこと(MAX残業は一時間くらい)
  • ノー残業環境を活かし、自分でCodeSchoolなどのオンラインコースをとって新しい技術を学べた

悪かったこと

悪かったことは3つあります1

1. 全体的に適当

  • デッドラインを守らない、無計画なスケジュールを立てる、仕様がざっくりしすぎている、など
  • 給料の支払いが遅れたりすることがあった。それに対する会社側の対応も不誠実なものだったので辛かった。お金の調整の話を下手な英語でするの(僕は何も悪くないはずなのに)心苦しかった

2. 英語コミュニケーション

英語でコミュニケーションがうまくできなかった。

3. スタートアップの負の側面に立ち会う

開発者を統括するマネージャーが辞めた、続けざまに重要な役割を担っていたキー開発者が辞めた。その結果、僕への作業負担が2倍以上になったりした。

スタートアップは成長スピードが早い一方、このように壊れるのも早い。スタートアップの負の側面を見た気がした。

今後

語学学校でもう少し英語の勉強をして夏頃に日本に帰ろうと思います。日本での仕事どうしようかなぁ…

  1. これはあくまでも自分の働いたスタートアップの環境であってカナダ企業全体に当てはまることでは全くないと思うので普遍化しないでくださいね