ChatWork Creator's Note

ビジネスチャット「チャットワーク」のエンジニアとデザイナーのブログです。

オフィス作りにDIYを取り入れるメリット

f:id:cw-shinmen:20180223123346j:plain こんにちは。デザイン部の新免です。

11月にオフィスを移転し約3ヶ月が過ぎました。新しいオフィスにも慣れ快適に仕事をしています。 東京オフィス自慢の「椅子」紹介 の記事で、こだわりのデザイナーズ家具の椅子を紹介しましたが、こだわりはそれだけではありません!

今回の移転には「DIYを取り入れ自分たちでオフィスをアップデートする」というサブコンセプトがありました。DIYを取り入れた理由としては、自分たちでオフィスづくりをすることで愛着を持つことができ、より快適にオフィスで仕事ができるようになるのではと考えたからです。

今回はDIYした家具の紹介と、オフィスにDIYを取り入れることのメリットを紹介します。

続きを読む

バグバウンティ(BugBounty)はじめました

f:id:cw-tanaka:20180202104747p:plain

こんにちは。モンハンは弓か片手剣の田中です。

弊社ChatWorkでは昨年からバグバウンティの導入をし、先月報奨金制度をスタートさせました。

ChatWork BugBounty.jp - バグバウンティ・プラットフォーム

今回は、バグバウンティ導入についてのあれこれを書いておきたいと思います。

続きを読む

チャットワークのID生成器

2018/3/18 追記

TISさんのreactive system meetupで発表する機会をいただきました。ありがとうございます。発表資料をリンクしておきます。

18桁になったメッセージID

2017年5月28日をもってチャットワークのメッセージIDは10桁から18桁になりました。みなさんお気づきでしたか?

これはメッセージリンクを取得してみることで確認できます。

f:id:cw-yasuda:20180105163109p:plain

それまでは32bitでかつ連番のIDでした。今は64bitになり、また単調増加性だけを保証し、連番ではなくなっています。

この記事では新メッセージIDとそれを発行するシステムについて記述します。

続きを読む

Scala採用を決めて3年半たった、CTOの振り返り。アーキテクチャ刷新を成し遂げるために必要なこと

f:id:cw-masaki:20171224110154p:plain

メリークリスマス!ChatWork Advent Calendarもついにラストとなりました。 本日の記事はChatWork CTOの山本が担当です。

ChatWorkでは約3年半前に、PHPの独自フレームワークでつくられた大規模システムを、Scalaを使ってゼロベースでつくりなおすという決断をしました。

当時の記事:チャットワークの新しい開発言語とフレームワークを決める開発合宿を開催!その全貌を丸公開します。

その決断をした時に在籍していたScalaエンジニアは0人。まずブログで宣言してからスタートするという、なんとも無謀なプロジェクト進行ではあったのですが、当時の自分たちとしてはマジメも大マジメ、ここでなんとかしないとサービスが将来的に死ぬと背水の陣で挑んだプロジェクトでした。

あれから3年半。途中で大きく開発が頓挫しチームが絶望に包まれた時もありましたが、どうにかこうにか立て直しに成功し、昨年度末に基幹となるシステムをリリース。今年にかけて中規模なサブシステムが2つほどScalaで新規に稼働するなど、まだまだPHPの部分が大きく残っているものの順調に切り替えが進んでいます。

ちょくちょく他社のCTOやエンジニアさんからアーキテクチャ刷新に関するアドバイスを求められることも増えており、一旦区切りとしても良いタイミングなので、このブログ記事でCTOとしての目線で振り返りと考え方をまとめてみたいと思います。

僕らの事例はキレイに成功したわけでもなく、またあくまで一例には過ぎないのですが、あまりここまで大規模なアーキテクチャ刷新の事例は少ないとも思いますので、少しでも参考になれば幸いです。

続きを読む

ChatWorkの開発組織運営

メリークリスマス!開発本部の id:cw-kasuga です。

この記事は

adventar.org

の 24 日目の記事になります。 明日はCTO山本の記事が掲載予定です。

現在、私は開発部門全体を統括するマネジメント専門おじさんです。 組織全体を束ねるようになって、大体2年位経つのですが、2年間何をしてたかと言うと 昨年は、年末の巨大リリース(Falcon:メッセージDB)に邁進した一年でした。 今年は、プロダクトをアップデートできる体制を作れるかに腐心した一年でした。 まだまだ、組織として改善しないといけない点はたくさんありますが、なんとか前進してる状態です。

advent calendar自体もあるメンバーが自主的に今年はやりましょうと動いてくれて、内心かなり嬉しいです。 私がどんな記事にしようかなーとメンバーに聞いてみたら、例外なくマネジメントの考え方の話が みんな聞きたいから書いてくださいと要望があったので、その辺を書いてみたいと思います。

組織体制によって、マネジメントに必要な機能が違うので 過去・現在・未来と言った切り口でお伝えします。

続きを読む