Skip to content

Instantly share code, notes, and snippets.

@richardimaoka
Last active March 14, 2019 00:36
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save richardimaoka/5069d6448bb6245b579a661afdffcd47 to your computer and use it in GitHub Desktop.
Save richardimaoka/5069d6448bb6245b579a661afdffcd47 to your computer and use it in GitHub Desktop.

概要

求職者です。Scala開発者のポジションを探しています。

あなたの開発しているシステムがAkkaを使っているものである場合、私は貢献できるのではないかと思います。 (何度書き直してもこの一文が英語の下手な直訳調になる助けて。)

Akka/Scalaについてある程度詳しくて、特にAkka ActorとStreamsの内部動作について把握しており、過去Scala Kansai Summit 2018で発表したこんな動画も作っています。(リンクはこちら。下はサムネイル、クリックしても動画へは飛びません。)

2019-03-12_22h48_46

開発者としての私の使い所としては、Akka使っていてハマりそうな非効率な使い方やトラブルのもとになる使い方を避けるのに役立つことができると思っています。

タバコの煙に極端に弱く、そのため通勤も大嫌いなので(同じ車両に喫煙直後の人間がいるだけで死にそうになる)リモートワークさせてもらえる会社を大歓迎しますが、 現状そんな会社多くないし、そもそもScala開発者なんていう的を絞った求職をする以上リモートワークじゃない会社も考えてはいます。リモートじゃないなら年間850万円以上ください。

私に興味もっていただけた方、TwitterでDM (誰にでも開放しています) かもしくはメールを richard.s.imaoka@gmail.com に送ってください。

Akka以外のスキル

  • Scala一般 - だいたいのScalaに関することは入社後キャッチアップできる程度には身につけているのではないかと思います。 ただし正直に言って純粋関数型エキスパートではないので、fs2, http4s, ZIO, Cats IOとか全然知りません。 それでもCatsとかScalazとか多少はわかってMonad Transformerとか使ったことはあります。
  • Web (Typescrpt, React, Firebase) - 個人プロジェクトで使いました (後述) Webエキスパートじゃないけど、Web開発者と意思疎通するのに便利なくらいの知識は持ってると思います。
  • AWS - 会社でも多少はつかってますが主に最近個人プロジェクトでEC2, VPC, IAM, Cloudformationなど触っています。 「アプリケーション開発しながら、AWS使って開発フローをよくしよう」みたいな試みにも貢献できると思います、適切なインフラエンジニアからのサポートがあれば
  • Cassandra - Akka Persistenceとともに使ったことあり。概要はだいたいDatastaxから学んだ。そして、 社会人として大切なことはみんなディズニーランドで教わった (学んでない。行ったことない)

私の興味の対象

  • 安定して可動して、メンテナンスが容易で、パフォーマンスが悪くないシステムを実装する方法論。 Event Sourcingとか、CQRSとか、EIPパターンの数々とかパターンでいうとそのへんだけど、パターンより実際の効果の程が大事ですよね。
  • DevOps的ななにか、AWS/GCP/Azure - 開発フローとトラブルシューティングを楽にする技術。CIとかログの管理とか。
  • パフォーマンス分析 - これはまだ勉強中だけどBrendan Gregg氏のリソースなどからだいぶ学んでいます。あとTechEmpower Frameworkとか。 もっとLinux内部のThreadingとか調べたいしeBPFみたいなツールについても習熟したい
  • もちろん他にもいっぱいあります。技術的に面白そうな仕事あれば教えてください。

個人開発

  • Akka OSS - ボランティアベースの野良貢献者。100コミット以上しているがだいたいドキュメントの更新周り。それでもAkkaの内部動作にはだいぶ詳しくなりました。

2019-03-12_21h23_38

  • Blog - Akka, Concurrency, etc - Akkaやその他興味を持った技術について時々書いてます。
  • pinvite - 勉強会をTwitterで宣伝するためのツール。TypeScript, React, Firebase。Twitter OAuth 1.0に苦戦した。

職業歴

ウェブサービス、企業向けノートブック管理 - 2018年5月 ~ 現在 (1年未満)

resume

サーバーサイド開発者。サーバサイドはAkka HTTPをつかってScalaで書かれています。 トランザクションスクリプト的な書き方をしており、データベースはMySQLを使っています。ノートブックの本文検索にのみElasticsearchを用いていますが、 いわゆる「Source of truth」データは全部MySQLです。

オンライン決済サービス会社 2017年6月 ~ 2018年4月 (1年未満)

resume2

Akkaにボランティアベースで1年ほど貢献したあたりで、「仕事でScala書きたい」とおもってこちらに転職しました。

メインのシステムはScala/Akkaベースで決済処理の部分を担当する開発チームに所属しました。 プロジェクトとしてはその決済処理の一部を数ヶ月かけてリファクタリングするものや、新規の決済機能の開発などをやっていました。 「〇〇払い」とかいうやつだけど、多分みんなが思ってる「〇〇払い」の会社じゃない。

Event-Sourcingを使ったシステムだったので、それで毎日のメンテナインスやトラブルシューティングがどれくらい楽になるか勉強できたのは良い機会でしたね。

大手証券会社 2008年4月 ~ 2017年6月 (9年)

複数のトレーディング・セールスシステムの開発チームに所属。主にFixed Incomeおよびデリバティブ商品関連。 チームで開発していたシステムが、レガシーでかつその会社特有のデータベース技術に依っており、また開発言語もそのデータベース開発環境と一体になった言語という とても特殊な状況で9年過ごしました。

Scala開発者の視点からは技術的に特筆すべき点があんまりないというか、「技術系おもしろ怪談」的な話題ばっかりでてきてなんのアピールにもならないんですが、 ソフトスキル的な面で非技術者との協働や、時間的プレッシャーがかかる環境でのトラブルシューティング、 レガシーシステムがにっちもさっちもいかない中での建設的妥協の生み出し方などは学べたと思います。

開発プロジェクトは一人プロジェクトがほとんどという不思議なチームでしたが、たまに規模が大きいものがあり、全社プロジェクトレベルのものにもいくつか参加しました。 リーマン・ショック後の規制改革対応プロジェクトは、全社ものが多かったですね。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment