Stockmark Tech Blog

自然言語処理テクノロジーで社会を進化させる ストックマークのテックブログです。

Development

コアメンバーの連続退職、エンジニア組織崩壊の危機から、退職ゼロ・人員倍増に至るまでの話

事業背景 やったこと 学び 今後の取り組み 最後に 2023年の4月から、プロダクト開発チームのEMを務めている岩谷です。本記事では、当時プロダクトエンジニア13人中3人の退職が重なる中々しびれる状況から、エンゲージメントや開発品質の改善に向き合い、怒涛…

破壊的変更を乗り越えてVue3移行達成した話

はじめに この記事では、私たちが開発しているAnewsというプロダクトでのVue 3移行プロジェクトについて紹介していきます。 Anewsはビジネス向けにユーザーの趣向に合わせて日々のニュースなどの最新情報を提供するプロダクトです。フロントエンドはVue.jsと…

1年かけてAnewsのドキュメントを改善した話

エンジニアリングユニットの酒井といいます。 昨年の9月に入社し、Anewsの開発に従事しつつ時々SREっぽいこともしています。 今回は、自分が入社当初から改善したいなぁと考えていたAnewsのドキュメントについて、これまでやってきた取り組みについてお話し…

改善施策のプランニングが鍵 - 大規模バッチ処理のテストフレームワーク刷新プロジェクト

こんにちは、エンジニアリングユニットの飯森です。 先日、Anewsのバッチ処理のテストフレームワークを刷新するプロジェクトに取り組みました。 本記事ではこの取り組みについて紹介します。 本記事を読むことで、以下の2点が分かります。 バッチ処理のテス…

エンジニア採用候補者の方にお伝えしたいこと

組織の特徴(仕組みの面) 組織の特徴(文化面) どのような方にJoinしていただきたいか? 採用状況・窓口について こんにちは、エンジニアリングユニットの岩谷と申します。今回はエンジニア組織と、採用の観点について記載していきたいと考えています。 動…

価値検証を高速化するために開発チームで意識していること

はじめに どのスタートアップ企業でも、プロダクトリリースサイクルの高速化・最適化を心がけているかと思います。本記事では、ストックマークのプロダクトである Anews の新機能(論文配信)を例にとって、ストックマークの開発の実際について紹介いたしま…

記事中のノイズ削除方式 - ChatGPTとの比較

前提: 記事中のノイズ削除がなぜ必要なのか? どのようにストックマークでノイズ削減を実現しているか? ChatGPT Plus(GPT-4) との比較 まとめ 本記事執筆時点の2023年4月時点で、ChatGPTのニュースを見ない日はないほど、世の中にChatGPTの記事が溢れていま…

6千万記事レコードの大規模データマイグレーション

背景 検討の進め方と移行後の方式 大変だったこと 再現可能な知見 まとめ 本記事では、ストックマークで2022年の12月に実施した、6千万件を超える記事レコードの大規模データ基盤マイグレーションについて紹介いたします。本記事を読むことで、大規模データ…

CIは命綱 - 開発プロセスで意識・工夫していること

スキーマ駆動による開発効率化 Over Fetching を生み出さないAPI設計 価値のベースラインを保つリグレッションテスト 継続的なライブラリバージョンのメンテナンス CIは命綱 「推測するな、計測せよ」によるユーザー体験の向上 まとめ ストックマーク Co-VPo…

月間1.6億秒の Lambda x Node.js 利用から得られた知見

はじめに なぜ Node.js なのか? なぜ AWS Lambdaなのか? Lambda x Node.js でスクレイピングする際の落とし穴 落とし穴 その1: Puppeteer がクラッシュする 落とし穴 その2: Lambdaが最大並列実行数に到達しない 落とし穴 その3: 巨大なXMLの存在 落とし穴 …

プレスリリース駆動開発で起こった3つの変化

先に実物を紹介 プレスリリース駆動開発を起因とした3つの変化 1. 顧客のアトラクト強化 2. プロダクトオーナー自身の気づきによる新機能の洗練化 3. より効果的な画像が作成できるように まとめ ストックマークではプロダクト開発の方法として、プレスリリ…

開発チームのスケールに向けたブランチ戦略見直し

概要 背景:GitHubのブランチ戦略がチームスケールの弊害に 変更前の運用:コンフリクトと調整コストのトレードオフ 変更後の運用:ブランチ戦略見直しとFeature Flagの導入 今後に向けて 概要 組織の拡大に伴う開発チームの分割、独立性向上のためにGitHub…

個別最適でプロダクトを作り続けたスタートアップがデータ専任部隊を作ることにした話

ストックマークのプロダクトはデータに支えられている 「何もしてないのに壊れる」のではなく「何もしてないと壊れる」 Phase0: どちらのプロダクトが対応する? Phase1: 役割の一部を明確化 Phase2: データチームの切り出しへ Phase3: データプラットフォー…

More Like This Query を活用した類似記事集約 入門

はじめに 類似記事集約がなぜ必要なのか? どうやって実装しているのか? More Like This Query のロジック 過去記事への再適用は大変… まとめと記事予告(ストックマーク独自の工夫) はじめに 本記事では、ストックマークのプロダクトの実装で工夫している類…

開発速度向上のためのAnewsモバイルアプリのアーキテクチャ改善

はじめに 現在の問題点 全体のアーキテクチャの方針 Domain, Infrastructureの方針 UIアーキテクチャの方針 今後について 最後に はじめに こんにちは、Anewsのエンジニアリングマネージャーの山崎です。 この記事はストックマークアドベントカレンダーの22…

自由と責任を開発チームにもたらしたら開発速度が上がった話

サマリ どんな課題が存在していたのか? 課題1: リソースの偏り 課題2: 余剰リソースが一時浮き どのような解決方法をとったのか? 今回の開発体制での想定課題 結果どうだったか? おわりに ストックマークの開発体制は、プロダクトの成長フェーズに合わせ…

Vue 2で大きなデータを扱うときの性能改善手法

はじめに Astrategyで取り組んだ性能改善 サンプルアプリ 測定と改善 その1 Virtual Scroll導入時の注意 測定と改善 その2 VueのReactivityについて VueのReactivityを抑制する 最後の測定 おまけ まとめ 本エントリは2021年8月30日に開催されたNode学園 37…

AWSを活用した機械翻訳のためのGPU並列処理環境の構築

はじめに 組織の自律化を支援するナレッジプラットフォーム「Anews」 英語記事をレコメンドする上での課題 日本語記事への行動履歴活用によるレコメンド精度向上 翻訳処理導入に向けたインフラの見直し 翻訳機能導入後のインフラ インフラ再構築のポイント …

Astrategyを支える技術: gRPC, Elasticsearch, Cloud TPU, Fargate... SaaS型AIサービスの内側の世界

Astrategyとは 高速なデータ構造化とリアルタイム分析を行うアーキテクチャ フロントエンドの構成 検索結果に対するテーマの抽出 検索ワードと企業名のサジェスト MLバッチ処理の最適化 終わりに 参考文献 ストックマークでは、法人ユーザー向けの「Astrateg…

Flutterで高速開発したAnewsモバイルアプリ

はじめに Flutterとは StockmarkにおけるFlutterの適用領域 技術選定の経緯 上手くいったコツ 1. モブプログラミングの活用 2. 学習と実装の並行 3. 体制構築上の工夫 大変だったところはあったのか? 今振り返って開発してみてよかったこと 今後の開発体制…

ビッグリライトでシステム刷新した秘訣 ~ Anewsの成功事例から ~

はじめに アーキテクチャ刷新の背景 なぜビッグリライトの選択したのか? ビッグリライトの成功確度を上げた工夫 難易度の高いところから着手・実験する スコープをコントロールする 旧プロダクトのアーキテクチャをベースに、かつデータストアにRedisを使っ…