近況 2017-10-10

最近、会う人みんなに「あれ?まだ日本にいるの?」「奥さん、イギリスにいるんだっけ?」みたいな感じになるので、よくされる質問まとめておく。

イギリスへの移住のステータス

会社の試用期間が終わり、ビザ申請の処理を開始している。 先日、IELTSという申請に必要な試験を受けてきて結果待ち。基準を満たしていなかったら悲しい。

ロンドン?

ブリストルです

f:id:ainame:20170806103046p:plain

2016年9月末に旅立って、イギリスのエクセター(3ヶ月) -> チェコプラハ(3ヶ月) -> デンマークの北の方(1ヶ月)ぐらい滞在したのちに今年の6月には帰国している。 広尾で一緒に住んでいて、移住する際には一緒に行く予定です。

いつ頃まで日本にいるの?

年内には移住するかも? ビザ申請結果とかに依存するので具体的な日付は未定。

以上となります。各位よろしくお願い致します。

iOSDCとRubyKaigiで話してきた #iosdc #rubykaigi

9/19に早稲田大でiOSDCで15分のトーク、9/21に広島のRubyKaigiでLTをしてきました。 完全に日程が連続していて資料作るの大変だった。どちらも今年取り組んでいたことでどっかで話したいなーと思っていたものの、 どちらも通るとか思わずにノリでどちらにもプロポーザルを送ったら通ってしまったので両方で話すこととなった。

iOSDCの方はServer Side Swiftに関する話。 Sidekiqというgemが好きすぎてSwiftに移植してみて(ainame/Lumpik)その際に困ったことなどを話しました。 Server Side Swiftは、CのAPI呼び出しさえすればとりあえず動くものを作ることは出来るけど、 IO周りのライブラリが貧弱だったり、まだまだ世に出回っているServer Side用のOSSのパフォーマンスは良くないという内容でした。

Server Side Swift実用性評価 2017 #iosdc #b // Speaker Deckspeakerdeck.com

RubyKaigiの方はdlibというC++ベースのライブラリが持っているニューラルネットの顔検出器をRubyから呼び出すためのバインディングライブラリruby-dlibの話です。 GPUを使うためにCUDAとリンクしないといけないのだけどそれをmkmfでどのように行ったかというのとSidekiqなどでスケールアウトするときに、 気をつけるべきこと(GPUメモリをちゃんと解放する)というのを話しました。

speakerdeck.com

こんな感じで今後もサーバーサイドやりつつアプリ開発やっていくぞ。

クックパッド株式会社に入社しました

2017年6月16日よりクックパッド株式会社に入社した。 転職する際に海外への移住を前提とした入社を進めていて、昨年 結婚した&妻を追って海外に行く - ainameの日記 のような記事を書いてからの一連の行動を続けてきて海外への移住がようやく道筋が見えてきたという具合。

何してるの

海外事業部という部署に所属していて、レシピ投稿サイトのcookpad.comの海外版を開発する仕事をしてる。 一応iOSエンジニアとして入社しているが必要あればサーバーやインフラにも触っていける雰囲気があるのでやっていきたい 💪 直近では海外版のつくれぽ機能のCooksnap機能周りを改修した。

組織

海外版の開発をするGlobalのチームは国内の海外事業部にもそれなりにメンバーは在籍しているものの、イギリスのBristolという都市にあるUKの海外本社や その他各国にある海外の拠点に所属する方々や、各国に点在するリモートで勤務している方々と一緒に仕事をしていくので日本にいながら半分リモート勤務という雰囲気もある。 自分が入社した時点で日本にいる海外事業部のエンジニアの純日本人が自分だけという状況だったが、7月から @Kazu_cocoa さんがやってきたりして社内異動もあるみたいだが、 基本的には国内版を開発する人員とは組織としては別れている。

英語

仕事は基本英語ベースになっていて、各種Platformごとのグループと役割ベースのチームそれぞれ属すことになる。 iOSエンジニア同士ではSlack/Github上でのやり取りがほとんどで、役割ベースのチームの方では日本に在籍している人たちと会話することになる。 自分自身はまだ拙い英語だけど何とか頑張って話そうとしている。ちなみにとても多くの国籍の人がいるので英語のネイティブスピーカーばかりではない(しかしみんな俺より遥かにうまい)。

合宿

iOSチーム/Androidチームそれぞれ今年になって一気にメンバーが増えたため自分が入社して4週目のタイミングで、チームビルディングなども兼ねてそれぞれのプラットフォームごとにメンバーを集めた合宿がいきなり開催され参加してきた。

Bristolでの開催だったのでいきなり約2週間ほど出張。入社して最初にやった仕事が海外出張のためのチケット予約でした。

既存のIssueを片付けたり、これからアーキテクチャどうするかみたいな話を延々としたり、ペアプロをしたりと色々やって、今までSlackとGithub上のみでしか話さなかったメンバーと実際に会って話したりしてその人となりを把握するのはすごく良いと思った。しかし、自分の英語力と既存Issue・コードへの理解では議論に参加するのは結構大変だったので継続的に頑張りが必要。 現地でSwift実践入門の著者の @yuseinishiyama さん(もちろんiOSチーム)と会ったり、@rejasupotaro とも久々に会ったけど元気そうだった。

移住

年末年始前後には夫婦でBristolに移住する計画はあるが、ビザ申請も始まっていないのでまだなんとも言えない。 住み始めたら合う合わないもあるかもしれないけど、最低2、3年ぐらいは住むぐらいの覚悟はある。

で、どこ?

Bristolは空港もあるし、運河があって雰囲気が良かったり、平日の天気が良い日は公園でみんなランチを食べたり、ちゃんとショッピングモールも存在している。田舎過ぎず、都会過ぎず、すごい良いところだった。

ロンドンからはまぁまぁ離れてる。電車かバスで2時間ぐらいで移動できるので東京-名古屋間ぐらい?

f:id:ainame:20170806103046p:plain

TempleMead駅。市内の移動でこの駅を使うことはほぼない?

運河近くのエリアは本当に綺麗でパブも多いし栄えている感じだった。

これが平日の昼の様子で、みんな働いているとのこと。

ショッピングモール。結構広い。

職場環境

コアタイムなしフルフレックス最高。出勤に関するストレスが全くなくなったと言っても良い。 必要に応じて家から働ける雰囲気もあるけど自分は家より会社の方が好きなので出社している。 オフィスで、内向け外向けの勉強会も定期的に開催されていて便利。

引っ越し

職場に合わせて広尾に引っ越した。近距離奨励金と住宅補助がもらえるので助かっている。 家から会社までドア2ドアで15分程度なのがフルフレックス制と合わせてさらに最高度を高めている。 キッチンも広くなって良い。

料理

キッチン広くなり料理する機会増えた。二人暮らしになり、作ったものを食べてくれる人がいる&1人で大量の料理を食べ続けなくて済むのも良い。 今年は一人暮らししていた時には手を出さなかった揚げ物を大量にしていきたい。 すでに既存の調理道具だけでこのコロッケを作って見たけど道具足りなくて結構苦労した。フライパンに浅めに油を敷くだけでは満足する揚がり具合は手に入れるの難しい。 しばらく日本には住んでいるのでその間は、是非揚げ物ライフ楽しんでいきたい。

cookpad.com

最後にいつものやつ貼っておきます

amzn.asia

Tokyo Server Side Swift meetup #8で発表してきた #tsssmeetup

tokyo-ss-swift.connpass.com

SwiftでSidekiqクローンを開発してるよ、という話をした。

speakerdeck.com

基本、SidekiqのJSONフォーマットに乗っ取って実装しているのでRuby版のクライアントとか管理画面が使えるようになっている。 しかしSwift4ベースで開発をしているのと、現状のレイテンシーに不満があるので開発中という感じ。オリジナルの作者自身が書いているSidekiqのCrystal版とベンチマーク結果を比較すると圧倒的に遅く、特にボトルネックとなっているのがRedisクライアント自身となっていて、現在Swiftで高速・使いやすいRedisクライアントを書くための勉強をしている。(crystal-redisは異常に早く、hiredis以上

github.com

Server Side Swiftに対する自分自身の意見を表明しておくと、現時点でも今後1、2年後でも実用的な状態になるのは無理だと思っている。 SwiftはOSS化されてまだ浅いしFoundationも含めて標準ライブラリが現状ではとても貧弱で(Foundationのバグ・未実装の問題もあるし、サーバーを書くためのIO周りが足りないというのもある)、 何かしらサーバーを書くためには自前でまともなTCPクライアント・サーバーを実装しなければならないような状況にある。

もちろん、Vapor・Kitura・Perfectなど既成のWebフレームワークなどは存在はするけど標準ライブラリだけで出来ること少ないせいで、 それぞれ自前の実装がオレオレ実装が横行していて整っていない感じがする。そういう意味で昨日の発表にもあったswift-server/httpには期待していて、 HTTPサーバーを書くための基礎的な部分をみんなで作ってくぞというプロジェクトなので、標準ライブラリにはないけどサーバー書くのに必要な処理を補完してくれると嬉しい。

GitHub - swift-server/http: Repository for the development of cross-platform HTTP APIs

ということでスライドにも書いたけど、基本的にServer Side Swiftは真面目に取り組むと苦労しかないので、 システムプログラミングとかミドルウェアの開発の勉強とかそういうモチベーションで自分はやっていってます。

転職留学夫婦

f:id:ainame:20170422165248j:plain

最終出社日翌日に同僚と行ったThe Stone Rosesのライブ会場の武道館です。

転職

以前ブログに書いた通り、海外で暮らす・働くための転職をします。 以下のような記事を書いて辞める宣言をしから予定通り半年と1ヶ月ほど働き、株式会社ミクシィを退職しました。 4/21が最終出社日で6/15に退職し、次の職場は翌日の6/16から働きます。

ainame.hateblo.jp

余談ですが最終出社日前日に自分が直近半年ぐらいでやったことなどを1人で話し続けるという勉強会を社内向けに開いてみ他のですが、評判良かったので良かったです。 他の人もやってみてほしい。もともと時間考えずにスライドを作り続けてて、当日はソースコード見せながら解説したり質問しあったりして結果的に3時間ぶっ続けで話していました。

留学

なんとか職が見つかったものの圧倒的に英語力は足りないと自覚しているので、 有休消化期間中にフィリピンの語学学校に留学してくる予定で4/27には旅立って6/2に帰る予定です。

夫婦

フィリピンの学校が終わる5/27からフィリピンで妻と合流して数日間遊んでから一緒に帰国します。 帰国した後は国内でついに同居する予定です。

今後

海外で働く前提での転職をするが、すぐさま海外で働くわけではなく、 普通に試用期間を経てビザ申請のような形となるため、しばらく日本で暮らしながら働きます。 全てことがうまく進めば実際には年末年始ぐらいには移住するかもです。

また前職で幅広く開発していたせいで、転職時の職種をどうして行くか迷っていたのですが、 しばらく何か一つに集中していきたいなと思っていてiOSエンジニアになることとしました(Swiftが毎日書けるのは良い)。 (海外のスマホシェア的にはAndroidも書いていかなければいけないと思うがAndroid力はまだ低い・・・。) 必要あらばサーバーサイドのコードも書いて行く所存です。

各位、お世話になりました。 今後ともよろしくお願いします。

飲みに行くぞ。