2022年9月19日月曜日

AWS に転職します

去る9月16日をもって FlightAware を退職しました。10月より AWS SDK for Rust を開発するチームにソフトウェアエンジニアとしてジョインします。前職に引き続き、仕事はリモートで行います。本投稿では、転職することになった経緯の話をします。AWS のインタビューの準備およびインタビューの体験談は後の投稿でお話しようと思います。

FlightAware には4年在籍しました。フライトトラッキングのバックエンドシステムを開発するチームに所属し、社内で使われるシステム、社外で使われるシステム、両方を手掛けました。もともとチーム内では Python が使われていたのですが、ハイパフォーマンスを可能にするプログラミング言語を模索する中、Rust に出会いました。コンパイラのエラーメッセージがわかりやすい、ツールが充実している、C++ で見られるようなメモリ関連のバグをコンパイル時にはじいてくれる、それゆえ Rust で書かれたコードのレビュー時にはそれらを気にせず変更されたコードの本筋に集中できる、生成されたプログラムの実行速度が C や C++ に引けを取らない、リファクタリングを非常に効率的に行える、等々の理由から迷わず会社での導入を願い出ました。なにより、デベロッパーひいてはチームの生産性を長期にわたって大きく向上させる画期的な言語だとそう直感しました。そして幸い希望が通り、自分が社内に Rust を広めることとなりました。

当時仕事で AWS を使っており(詳細はこちら)、AWS が Rust を積極的に使用していくという趣旨の記事を目にしました。AWS のような大規模なソフトウェア会社でどのように Rust を使っているのかその動向は大変気になりましたし、自分が Rust を習得していく上でお世話になったエキスパートの何人かも AWS で働いていることを知りました。Rust を仕事で使えるポジションは比較的少なく、その中でも求人の多くは crypto 絡みです。F(M)AANG を見ても、Rust に絞った求人(多言語との列挙でなく、単独で言及されているもの)がそれなりの数で出てくるのは自分の知る限り Amazon です(Apple がそれに次いで、Meta でも Rust の使用が告知されましたし、Fusha やトークを見る限り Google でも確実に使用されているので求人が増えるのは時間の問題だと思いますが)。今後重要性が増していくだろう Rust が大企業でどう使われていくのか、それをこの目で見てみたいと思い、AWS で Rust を使った開発がしたいと思うようになっていきました。

そして今年、MathWorks 時代の同僚で現在 AWS に勤める友人と話をする機会があり、ちょうど AWS SDK のチームが Rust のポジションを出していたので、興味がある旨を伝えたところ、彼の口利きでリクルーターに繋いでくれました。そして、そのリクルーターと話しをしていくうちに「じゃあ、インタビューをしましょう」という運びになりました。

というところまでが転職を決意するに至った経緯です。インタビュー関連の話は次回以降にまとめたいと思います。

2021年12月30日木曜日

故・作曲家を偲ぶ (2) - 君は小宇宙を感じたことがあるか

前回の投稿と同様の流れですが、ここ数年で敬愛する作曲家の方々が亡くなっていきました。 ゲームの世界ではすぎやま先生がクラシック調の音楽で独特の世界へ誘ってくれましたが、アニメーション作品の BGM で同じ印象を抱かせてくれた特に思い入れの強かった作曲家が横山菁児さんでした。

横山さんが音楽を手がけた聖闘士星矢は星座やギリシャ神話をモチーフとした作品で、当時は絶大な人気を誇り現在でも世界中に多くのファンがいます。聖闘士星矢という作品は様々な切り口があり、神々との戦い、友情、不屈の闘志といった、描写が複雑な抽象的な概念も、横山さんは独自の技法を用いてそれらを見事に音で表現しています。象徴的だったのが川島和子さんのスキャットでした。聖闘士星矢の音楽を聞く度にどこか懐かしい気持ちにさせてくれるのは、このスキャットが幼少時に聞いたかもしれない子守唄のように聞こえるからかもしれません。

以下は個人選曲で、まだ聞いたことがなければ是非とも試聴していただきたいと思います。

仲間の声を頼りに窮地から再び立ち上がる場面で流れる曲


北欧で出会う兄妹の曲


北欧の地の危機を救い宇宙樹を背にして去る場面で流れる曲


太陽神に屈するも薄れる意識の中で再び命を燃やす場面で流れる曲


太陽神に勝利し地上の平和を取り戻す場面で流れる曲


ポセイドン編の舞台となる海底を象徴する曲

横山さん、数々の名曲をありがとうございました。

2021年10月8日金曜日

故・作曲家を偲ぶ (1) - 音楽は心の貯金です

すぎやま先生の訃報が飛び込んできました。二年ほど前から最新コンサート情報で指揮とお話のどちらにも先生の名前が上がってこなくなり、この日が来るまでそう遠くないのではと、うすうす感じていましたが、実際に知らせが来ると本当に悲しいです。涙がとめどなくあふれ出てくる悲しさというより、先生の生の声や新曲など、もし生きていたら存在していたかもしれない未来を断ち切られたことから来るやるせない悲しさです。思わず空を仰いでしまうというか。

ドラゴンクエストの音楽はいつもそこにありました。音楽を娯楽として十分に堪能できなかった年齢から。おぼろげながら幼いときの思い出も。

  • 何歳か覚えていないくらい小さい頃、4の交響組曲カセットテープを聴きながら寝ていたこと
  • 地元の教育科学館で夏休み?の親子での映像作成教室で、SDガンダムのプラモ戦闘映像の BGM に4の戦闘曲を採用したこと
  • 習いたてのピアノで1のフィナーレが弾きたかったが、難度が高くて挫折したこと(このときに弾けるようになった1の街の曲は大人になってからもそらで弾ける数少ない曲の一つ)
  • 小学校のリコーダーで序曲を吹きたくて、手描きで楽譜を書いて先生に持ち寄ってクラスのみんなで吹いたこと
  • 給食時間の放送で「そして伝説へ」が高頻度でかかっていたが、3をクリアしていなかった当時、何の曲か分からなかったこと
  • アニメ「ダイの大冒険」のエンディング曲が2のエンディングだと知らず、スーパーファミコンのリメイクで2をクリアして初めて知っていたく感動したこと
  • 応募すると全員貰えたVジャンプのドラクエ6発売前特集ビデオですぎやま先生の部分ばかり繰り返し見ていたこと(コレです)

なによりすぎやま先生指揮のファミリークラシックコンサートに行くのがとても好きでした。ここにリストアップされている33回中、12回行きました。東京芸術劇場になってからはそこに定着した印象ですが、当時は渋谷公会館やオーチャードホール、サントリーホールなどもありました。さらには「すぎやまこういちを囲む会」にも参加しました。2002年と2003年と開催され、先着順の小規模な会でしたがその分先生をより身近に感じられる会だったのを覚えています(リンク先に写真がありますが、二回とも自分が映っています)。

アメリカに来てからは細々とですがドラクエでピアノを再開したり、歳を重ねても先生の曲は身近なところにありました。ファンの誰もが思っていることと思いますが、数々の名曲、本当に感謝しかありません。どうか安らかにおやすみください。

2021年8月10日火曜日

仕事で Engineering Blog を書きました

前回の記事で触れた、クラウド上で稼動するテストフレームワークの運用が開始され、それについて会社の Engineering Blog で記事を書く機会がありました。

よければご覧ください(記事

2020年12月9日水曜日

2020年のお仕事

 2020年も残すところわずかになりました。今年はブログを投稿していませんでしたが、一番おおきな出来事はやはりコロナウィルスですね。現在の職場では今年の3月からリモートワークになりました。これはヒューストンでコロナが本格的に猛威を振るい始める前の頃であり、リモート導入は他者より先駆けて、オフィスに戻るのは他者より遅れて、という CEO の意向によるものでした。幸い仕事の生産性に影響はなく、この一年で大きなプロジェクトもひとつ仕上げることができました。

この一年はクラウド関連の技術に触れそれらを活用した年で、大変刺激的でありました。Terraform で AWS にリソースをプロビジョンし、Kubernetes クラスタ上に並列実行可能なテストフレームワークを構築しました。これまで on-prem で40分強かかっていた350以上のテストが、クラウド上の並列実行で15分弱ほどで完了するようになりました。将来的にテストの数は増え続けるのですが、クラウド上のテストフレームワークではテストの数に合わせて自動的にマシンを増やしてくれるので、実行時間は15分のままだろうと期待しています。

プログラミング言語は可能な限り Rust を使い、ちょっとした部分で Haskell、Go、Python を使い、複数の言語に触れられるのは楽しかったです。しかし Rust は本当に素晴らしい言語だと思いました。safe なコードであるかぎり、C++ のようなメモリバグはないですし、使い誤ると足枷になる例外投げ/継承は存在しませんし、Cargo ひとつでビルドツールはほぼ事足りてしまいますし、コンパイラのエラーメッセージが理解できるということが C++ から来ると感動ものです。なのでチームメンバーには C++ ではなく Rust を勧めました。どこかで読みましたが、両言語とも難しいのですが Rust は正当な理由で難しく、C++ は不当な理由で難しい、とあり個人的に納得しています。C++ はとにかく落とし穴がありすぎて、それらの避け方を知っているイコール言語に習熟しているという図式が好きではありませんでした。落とし穴があるならコンパイラが分かりやすいメッセージを吐くか、コンパイルを拒否するかどちらかをすべきだと考えており、それらをどちらも実現してくれているのが Rust という印象です。ただ Rust においても、unsafe でポインタをいじくり始めると限定的に C++ と同じ土俵になるため、C++ に習熟しておく重要性はこれからも変わらないと思います。定期的にキャッチアップするリソースのひとつとして Cᐩᐩ Weekly With Jason Turner にお世話になっています。CPPCon で登壇常連者でワンポイントアドバイスが分かりやすいのでよく見ています。かたや Rust で一番のオススメのチャンネルは Jon Gjengset さんだと思います。実世界の Rust プログラムをこれでもかという長い動画で解説してくれるのですが、中級者になる上でつまづくポイントの説明がとても丁寧で分かりやすい。彼の Crust of Rust シリーズから入るのが適していると思います。僕も彼の evmap を最初のコミットからさかのぼって、lock-free なデータ構造を Rust で書くとこうなるというのを勉強しています。

来年の4月まではリモートワークが確定しており、パンデミックは自分のコントロール外なので、自分のコントロールできる部分で日々頑張っていくしかないかな、という毎日です。

それにしてもアメリカの一日の感染者数の多さは、外にあまり出ずにひっそりと暮らしている自分からしてみるとただ驚くばかりです。。。

コロナ禍でしたが、人混みをさけてニューオーリンズに行くことができました

2019年8月6日火曜日

転職してもうすぐ一年が経ちます

ヒューストンに引っ越してきてもうすぐ一年が経とうとしています。FlightAware での仕事も慣れてきた部分が増え、徐々に大きなタスクをこなすようになってきました。前職 MathWorks に比べて一番何が大きく変わったかといえば、C++ オブジェクト指向によるスタンドアローンソフトウェア開発から Haskell, Scala の関数型による分散システム開発が主になった事です。Haskell は学習カーブが険しく色々な書籍やオンラインのリソースを使って上達を目指しています。すごいH本Haskell Programming From First PrinciplesFP Complete  を参考にしています(すごいH本はモナド変換子の記述が無い?ので別の書籍やオンラインの解説などで補う必要がありました)。Scala に関しては、ざっくりですが much nicer Java という感じがします。Haskell と連動して学習していけるのでかなり魅力的です。

前職を離れる前に関わった C++ プロジェクトで、MATLAB の indexing (ex. a(4) = 3など) の実装や検索パスの書き直しがありましたが、思えばどちらも最終的に選ばれた設計の根幹は関数型の考え方から来るものでした。オブジェクト指向開発のときはデザインパターン、SOLID 原則を毎日意識しながら開発をしていたので当時は気がつきませんでしたが、関数型で開発している現在から振り返ると、点と点が線で繋がったと強く感じました。

仕事の外ではいま Rust を勉強しています。C++ ではスマートポインタがあるとはいえメモリ関連のバグにイヤというほど対応を追われたので、コンパイル時に lifetime のエラーではじいてくれる Rust はもはや神様と呼ぶほかありません。C++ もまだまだ知らないことだらけなのですが、これからはもっと Rust に時間を割いていこうと思います。コンパイルに通りさえすれば、という安心感は Haskell に近しいものを感じます。

2018年12月14日金曜日

師走

気がつけば師走になってしまいました。はやいものでヒューストンに引越してきてから4ヶ月が経とうとしています。引越してきて間もないころは、新しい家具を買い入れたり、車の登録をマサチューセッツ州からテキサス州に変更したりと生活のベースをととのえる用事に追われていましたが、それ以降は休みの時間を有意義に使う余裕も少しずつでてきました。

ヒューストンから車で南に小一時間のところあるガルベストンビーチに行ったり、
大西洋と違ってメキシコ湾の水は温かいので泳げます
100年前のテキサス州の暮らしを再現したヒューストン郊外にある公園に出かけたり、
牛追いのデモンストレーション
ヒューストンから車で約二時間半・州都オースティンを訪れたり、
IT企業が立ち並ぶダウンタウン
 CMU の Fence にも似た Hope Outdoor Gallery
ヒューストン日本人会主催の秋祭りに参加したりしました。
聞けばヒューストン在住の日本人の数はボストンのそれより少ないかもしれないとのこと
また色々なレストランに行ったりしました。ヒューストンには多国籍のレストランが数多く存在します。ひとつの店をリピートすることなく10年以上違うレストランをトライし続けられるという現地の人の言葉が印象的でした。

FlightAware ではフライトトラッキングのコア部分を担当しています。分散システムのノウハウや前職では使わなかった技術を身につけるべく日々勉強をしています。
前職で上司からもらった $100 のギフトカードを使ってこれらの名著を購入しました
年末年始は二週間ほど日本に帰ります。毎年の楽しみです!