はてな退職の辞

はてなを8月末で退職することになりましたので、お知らせします。

はてなに入社してから10年経ち、年齢も40を越えてきたタイミングでそろそろもう一つチャレンジしようかなという想いから、わがままを言わせてもらいまして今回の退職という形にすることになりました。退職理由として、はてなになにか不満や問題があったわけではなく、あくまで僕が新しいことをしたいという意図を汲んでもらって社長をはじめとする経営陣からも円満に送り出してもらっています。はてなのエンジニア層もこの数年で質量ともに充実し体制もだいぶ形が整っており、安心して後を任されるようになっています。

はてなでの10年間では、いろいろな経験をさせてもらいました。前任の伊藤直也さんから引き継いだCTOを6年勤めたのをはじめ、アプリケーションエンジニア、インフラエンジニアから、ディレクター、事業責任者、サポート部長、総務部長、法務部長など、エンジニアらしからぬポジションも勤めた時期もありました。ウェブサービスを作り、会社を育てていく、ということの様々な側面を体感することができ、今後の大きな糧になると考えています。

僕が中心となって立ち上げてきたMackerelについては、サービス開発や導入実績も順調で、チームの雰囲気も非常に良い状況です。既に直近1年は僕の手からは離れており、CTOという立場で側方から支援をするという体制になっていました。今後、はてなを退職した後もなんらかのかたちでサポートしていきたいと考えています。

はてなのCTOの後任については、 id:motemen (大坪弘尚)にバトンを渡すことになりました。彼が新卒だった頃からずっと一緒に働いてきた信頼できるエンジニアで、彼が作ったghqには僕も朝から晩までお世話になりっぱなしです。第一線バリバリのアプリケーションエンジニア出身のCTOとして今後のはてなのエンジニアリングに僕とはまた違った味を加えてもらえるものと期待しています。

僕自身の今後については、また別の機会にお知らせできるかと思います。

ひとまずしばらくまったりしていく予定です。いろいろお誘いいただければそそくさと顔を出そうかと思いますので、皆さま今後ともよろしくお願いします。

Go本体にContribute成功した話 と Gerritの話

来月ぐらいにはGo 1.7がリリースされそうなのですが、CONTRIBUTORSに名前が載せられそう( https://github.com/golang/go/blob/release-branch.go1.7/CONTRIBUTORS#L915 )なので記念エントリです。

f:id:stanaka:20160728104134p:plain

内容自体は、4月にあったGoCon 2016 Spring( http://gocon.connpass.com/event/27521/ )での発表済みです。

tl;dr

  • 一部のディストリの最新版でlinux/386でビルドしたバイナリが起動すらできない、というバグがあった
    • 問題はruntimeのアセンブラ部分だったけど、なんとかパッチ書けた
  • パッチ提出→コードレビュー→やりとり→マージまで、3日程度とスムーズに進行できた
  • Gerritを初めて使ったけど、GitHubとはまた違った思想を感じられて面白い

コントリビュート成功までの流れ

対処

Golangのレビュープロセス

  • コントリビュートの方法は丁寧なドキュメントがある https://golang.org/doc/contribute.html
  • git-codereviewというサブコマンドが用意されてる
  • 基本的には1コミットにすべて集約して、GitHubで言うところのPull Request相当に
  • レビューシステムは Gerrit を利用している
    • 1コミットに集約されたものにコメントをつける → コミットを更新する、の繰り返し
    • 過去のコミットとそれへのコメントも見易い
    • 慣れるとGithub Pull Request方式よりよい、という人もいるらしい
    • 行単位にコメントする際に、最初はDraftとして保存されて、全部入力し見直したあとで確定できるのは確かに便利
    • UI的には装飾がすくなくて、とにかく密度高め
    • 参考: Gerrit vs Github: https://gist.github.com/mbbx6spp/70fd2d6bf113b87c2719

感想

  • 広く使われている言語処理系のコア、しかもアセンブラで書かれているようなところに手を入れる機会はそうないので、パッチがマージされたはうれしい
  • 分かりやすいissueを発見したら、がんがんPull Request投げましょう
  • Gerritはかなり特徴的なシステムで、GitHubばかり使っている身にはいろいろ新鮮で面白い

「僕たちは「新しい技術」で生き残る」に採録されました

今年の2月に登壇させていただいた dots. CONFERENCE SPRING 2016 の内容が本になりました。

f:id:stanaka:20160727140703j:plain

僕の部分は7ページほどにまとめられていて、ざっと次のような内容です。

  • はてなでの10年を越えるサービスの運用にまつわる技術的環境の変化
  • その間の中長期のパフォーマンス管理のためのPV/CPU(%)という指標の導入
  • 次の10年を戦うための指針

他にも人工知能、IoT、ヘルスケア、FinTech、デザインなどの各分野で一線で活躍されている方の講演がコンパクトにまとめられており、なかなか読み応えがあります。 いまの時代のビジネスとテクノロジーがうまく切り取られた本となっていますので、横断的に業界を把握したい方にお勧めできますので、是非ご一読ください。

f:id:stanaka:20160727140707j:plain

「Soft Skills」でエンジニアの生き方を学ぶ

SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル

少し前にSoft Skillsを読み終わりました。Soft Skillsは、

d.hatena.ne.jp

で紹介されていた本です。翻訳が出る前に原著を買ったのを積んでおいたら翻訳が出てしまったので、あわてて原著を読み終えました。

内容はいわゆる自己啓発的なものなのですが、これまでのエンジニアのキャリア論として、ここまで網羅的かつ実践的に書かれた本はこれまでなかったのではないかと。いくつか個人的に面白かった/興味深かった箇所を書き出してみます。

  • Fake it till you make it (Chapter 16)
  • ブログを書いて知名度をあげるとよい (Chapter 22)
  • 学習するには人に教えるのが一番 (Chapter 33)
  • チャットはとにかく時間の無駄 (Chapter 37)
  • ポモドーロテクニック (Chapter 38)
  • マルチタスキングはとにかく良くない。集中が大事 (Chapter 41)
  • バーンアウトしたらどうするか (Chapter 42)
  • 時にはハードワークが必要 (Chapter 47)
  • 失敗を恐れる必要はない (Chapter 70)

著者は33歳でのアーリーリタイアに成功した、かなりストイックな人ですので、全般的に頑張れる人がより効率良く頑張るための話になっています。 ですが、いろいろ使える知識/ノウハウ/考え方がちりばめられているので、そこまでストイックになれない人にも一読の価値はあると思います。

Section 5. Financialの給料交渉の話(Chapter 50)と不動産投資の話(Chapter 52)は、いかにもアメリカっぽい話で現地の様子が伺えて別の面白さがあります。不動産投資は、ローンの金利はともかく利回りと不動産価値の上昇への期待値が日本の状況にはあまり合わない気がしますが。また給料交渉の話は全般的にアメリカらしい話なのだけど、最初の数字はとにかく相手に言わせたほうが良い、というのはどこでも通用するテクニックでしょう。

また Section 6. Fitness では、とにかく筋肉を付けるのがよいと書かれており、かなりのストイックさが求められて、これを実践できる人はかなりの少数派かと思われます。

ちなみに今回、僕は原著で読んでみたのですが、以下のようにだいぶ読みやすいので英語の本をあまり読んだことがない人のとっかかりにも良いのではと思います。

  • 全般的に平易な英語で書かれている
  • エンジニアなら興味が持てる内容が多い
  • かなり細かくChapterが分かれていて、1日1Chapterずつ読んでいく、ということがしやすいし、興味がないChapterを飛ばすこともできる

出版社のサイトから4つのChapterは無料で読めるので試しに読んでみてはいかがでしょう。 https://www.manning.com/books/soft-skills