Chatwork Creator's Note

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

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

読者になる

ESLintの設定をスナップショットテストしてみました

初めまして。2020年11月にChatworkに入社したフロントエンド開発部のcw-sayamaです。 Chatworkのフロントエンド ではESLintを使いやすいように設定を変更して導入していますが、以下のように扱いにくい部分が出てきました。 設定を変更した時に、どのルール…

【GASで業務効率化】指定した日にChatworkへメッセージを投稿する

こんにちは、Chatworkのさかぐちです。 Chatworkを利用する中でメッセージを「予約投稿」したいと思ったことはありませんか? 今回は「指定した日にChatworkへメッセージを投稿する仕組み」を作成しようと思います。

PHPのレジェンドシステムをEC2からKubernetesに移行する話 その5 〜PHPアプリケーションをコンテナ化しよう〜

こんにちは!SRE部のcw-ozakiです。 PHP Conference 2020 Re:bornでPHPでKubernetesを動かすにはどうするべきかという話をしてきました。 speakerdeck.com ただ、25分という短い枠でしたのでKubernetes初心者に向けてということで、だいぶ端折ったのでその5…

EKSでDNSを安定させるために対応したこと

今回はEKSでDNSを安定させるために対応した話を書きたいと思います*1。 一定数のPod以上になるとサービスが不安定になる conntrack溢れの犯人はkube-dns(CoreDNS) conntrackのmaxを増やす kube-dnsのautoscale node-local-dnsも入れる node-local-dnsを入れ…

続・ウェブフロントエンドの設計力を高めるためにアプリケーションの構造を捉えてみる話 ~ 考察編 ~

みなさま、お疲れ様です!エンジニア採用広報の高瀬 (@Guvalif) です。 この記事は、Chatwork Advent Calendar 2020 における、24 日目の記事です。 先日、フロントエンド開発部に所属するアーキテクトの火村 (@eielh) が、 ウェブフロントエンドの設計力を…

未来のChatworkについて(2020年版)

メリークリスマス♩id:cw-kasugaです。 この記事は、Chatwork Advent Calendar 2020 - Qiita の25日目の記事です。 Advent Calendarも最終日ですが、前回記事を書いたのが3年前だったことに驚愕してます。 今年からは対外的にもCTOという職責も任命頂いており…

ChatworkのKubernetesを支えるツールたち(2020年版)

こんにちは。SRE部坂本です。毎年最低1回はフルマラソンに出ていますが、2020年はあえなく参加できずに終わりました。 2月にギリギリ行われたハーフマラソンではなんとか90分切り(89分台)を達成し、今年は3時間10分以内を目指してただけに残念ですが、仕方あ…

Rustでのモデル駆動設計について

こんにちはかとじゅんです。 この記事は、ドメイン駆動設計 Advent Calendar 2020の23日目の記事です1。DDDというよりRustの記事になってしまった…。 Rustの勉強を始めたのは2017年あたりと古いのですがなかなか身が入らず、本腰入れたのは今年の11月ぐらい…

1年後のChatworkインフラの話 (2020年版)

こんにちわ。id:cw-tomitaです。 この記事は、Chatwork Advent Calendar 2020 - Qiita の21日目の記事です。 Advent Calendarシーズンももうすぐ終わりですが、入社して初めての年のAdvent Calendarでこんな記事を書いたな〜と、ふと思い出し、 creators-not…

【Chatwork Advent Calendar 2020】Chatworkに鹿児島からリモートで働くエンジニアのルーティン

こんにちは。ウスターソースの便利さに目覚めた新沼 ( @cw-niinuma ) です。 この記事は Chatwork Advent Calendar 2020 の 18日目の記事です。 2018年に入社して以来ずっと鹿児島からリモートワークを続けているわけなのですが、そんな私の一日を少しだけ書…

どこからアクセシビリティ対応をすすめるか

こんにちは!モバイルアプリケーション開発部の Android エンジニア、いけちょ(@ikeda_shogouki)こと池田です。 最近、SLA の 3D プリンターを購入し、夜な夜なパーツを出力して遊んでいます。3D プリンター最高~! さて、これは Chatwork Advent Calendar …

データ構造と代数構造への招待

みなさま、お疲れ様です!エンジニア採用広報の高瀬 (@Guvalif) です。 この記事は、Chatwork Advent Calendar 2020 における、16 日目の記事です。 Chatwork にはたくさんの部活動があるのですが、その中に「数学部」という部活があります。 この記事は、数…

サマーインターンシップで運用についてお話ししたお話し

こんにちは。開発本部の田中です。 最近人生で初めてゴーゴーカレーを食べました。 この記事はChatwork Advent Calendar 2020の14日目の記事です。 今回は、サマーインターンシップにて「運用について」というタイトルで発表したので、そちらについてまとめ…

PHP Conference 2020 に参加しました!👨‍🏫

みなさま、お疲れ様です!エンジニア採用広報の高瀬 (@Guvalif) です。 この記事は、PHP Conference Japan 2020 Re:born のイベントレポート兼、 Chatwork Advent Calendar 2020 における 12 日目の記事です。 弊社からは SRE 部の尾崎 (@k_kinzal) が登壇を…

Chatwork の Scala プロダクトとそれを支えるチーム その弐

これは Chatwork Advent Calendar 2020 / Scala Advent Calendar 2020 11日目の記事になります。 こんにちは。サーバーサイド開発部の Scala プロダクトを開発運用する部署でマネージャーをしている、 hayasshi です。 前回は、Chatwork で実際に稼働してい…

Chatwork の Scala プロダクトとそれを支えるチーム その壱

これは Chatwork Advent Calendar 2020 / Scala Advent Calendar 2020 10日目 の記事になります。 こんにちは。サーバーサイド開発部の Scala プロダクトを開発運用する部署でマネージャーをしている、 hayasshi です。 Chatwork は Scala を採用すると決め…

開発者全員が集まるイベント企画をした裏方の話

こんにちは。門田 ( @nottegra ) です。 この記事は Chatwork Advent Calendar 2020 の 9 日目の記事です。 先日、Chatwork のプロダクト開発メンバー全員が集まるイベントが開催されました。イベントの様子については Wantedly で記事を書きましたので是非…

Akka HTTP で複数エンドポイントに共通するログを Routing DSL で実装

9月に入社しました、サーバーサイド開発部 Scala チームの立野(@exoego)です。 ふだんは長野県の古民家から週5で在宅勤務しています。 弊社 Chatwork では現在、HTTP ベースの製品開発に Scala を用いるときは Akka HTTP というモジュールを採用しています…

あなたの知らないScalaの世界~Scalaでコードゴルフ~

挨拶 初めまして、2020年6月に大学院を中退し*1新卒として入社した田尻(@lmdexpr)です。 人生は色々ですね。 今はサーバーサイド開発部(Scala)で元気に毎日Scalaを書いています。 その辺の経緯にも軽く*2触れているインタビュー記事はこちら ↓ compass.lab…

pt-online-schema-changeを用いたスキーマ変更 on Amazon Aurora MySQL

こんにちわ。id:cw-tomitaです。 この記事は、Chatwork Advent Calendar 2020 - Qiita の3日目の記事です。 早速ですが、皆さんはauto incrementなRDBのtableのidにはどのような型を利用されていますか? Chatworkでは多くのテーブルでint型が指定されている…

DynamoDB用クライアントの制限を考慮したAkka Streamsの実装を作る

どもー、かとじゅん(@j5ik2o)です。 Scala Advent Calendar 2020 - Qiitaの2日目の記事です。 今回の記事は掲題のとおり、DynamoDBのI/OをAkka Streamsで効率的に実装してみようというネタです。

検証中の新しいアーキテクチャをご紹介します!!

この記事は Chatwork Advent Calendar 2020 2日目の記事です。 前日はプロダクトマネージャー宮下の「SaaS エンジニアのキャリアパスとしてのプロダクトマネージャー」でした。 全国のエンジニアの皆さん、こんにちは。 コアテクノロジー開発部 Scalaエンジ…

Chatwork のプロダクトフェーズと技術選定の流れ

こんにちは! Chatwork 株式会社のプロダクトマネージャー (PM)、宮下 (@ryugoo_) です。 2013 年にモバイルアプリエンジニアとして入社し、 2014 年に Android 専任になり、 2019 年からは PM に転向してそろそろ 2 年になろうとしています。 さて、今回は…

PHPのレジェンドシステムをEC2からKubernetesに移行する話 その4 〜Kubernetesクラスタの更新戦略に合わせたアプリケーションの移行戦術〜

こんにちは!SRE部のcw-ozakiです。 creators-note.chatwork.com creators-note.chatwork.com creators-note.chatwork.com 今回はその3の続きで、Kubernetesクラスタの更新戦略に合わせてアプリケーションをどのようにして、クラスタを移行していくのか戦術…

品質管理担当者としてSonarCloudさんがジョインしました!

こんにちは。都志(@louvre2489)です。 突然ですが、みなさんの開発/保守しているシステムのソースコードは読みやすいですか?それとも読みにくいですか? 自信を持って「読みやすいです!」と答えたいところですが、「う〜ん・・・」となってしまう方は多…

ULID生成器をScalaで実装してみた

おはこんにちは、かとじゅん(@j5ik2o)です。 今回の記事は、IDフォーマットの一種であるULIDの実装についての記事です。 ULIDよーわからんという人は、以下の僕の記事を参照してみてください。 zenn.dev ID生成をどうするか議論によくなりますが、最近はソー…

簡単!Chrome拡張でオレオレChatwork!

自己紹介 こんにちは。竹川です。@tttyya 2020年4月1日より新卒としてChatworkに入らせていただきました。 サーバーサイド開発部(Scala)にて、やらせてもらってます。 Chrome拡張作り始めたキッカケ 同じScalaチームの先輩と、 「Chatworkに新機能が付くな…

対象別 アクセシビリティ啓蒙例

今回は、前回のエントリーに入りきれなくなって泣く泣く断念した、「エンジニア以外向け」におこなったWebアクセシビリティの啓蒙施策を紹介します。ポイントは「私が知ってる情報を全員が知っているわけではない。」という前提を忘れず、いつでも疑問に応え…

iOS アプリのタイムラインで info タグを表示する実装について

iOS

こんにちは。モバイルアプリケーション開発部の iOS アプリエンジニア、安宅 (@at_aka) です。 Chatwork の iOS アプリは現在、絶賛 Swift 化の真っ最中です。私もメインのプロジェクトの傍ら、タイムラインのメッセージ表示回りの Swift 化をやっています。…

リアクティブは難しいが役に立つ

お久しぶりです、かとじゅん(@j5ik2o)です。テックブログを書くのは何年ぶりか…。 サービスが停止したり応答性が低下すると、お叱りや逆に励ましをいただきますが、エンジニアとして設計レベルからそういった問題に対処するにはどうするか、日々精進している…