ブックマーク / buildersbox.corp-sansan.com (32)

  • エンジニア運用工数40%削減!Bill One における運用改善のとりくみ - Sansan Tech Blog

    Bill One Engineering Unitの田上です。運用改善と題したプロジェクトによって、エンジニアの運用工数を半年で40%削減することに成功したので、今回はその取り組みをご紹介します。 背景 Bill One のエンジニアリング組織では、フルサイクルエンジアリングで開発と運用を行っており、開発者自身が運用対応(番環境で発生したエラーの調査・対応、ユーザからの依頼・問い合わせの対応など)を行っています。 エンジニアが自身の開発したプロダクトへのフィードバックを迅速かつダイレクトに受け取れる非常に良い方式ではあるのですが、その対応工数があまりにも多くなりすぎて開発工数が逼迫するようになっていました。 その状況をどうにかするため半年の期限付き特命チームとして運用改善チームを立ち上げることにしました。 立ち上げ 組織内のフラストレーションの高まりを背景に、2名のエンジニアが新たなチー

    エンジニア運用工数40%削減!Bill One における運用改善のとりくみ - Sansan Tech Blog
    toshikish
    toshikish 2024/06/17
  • マイクロサービスアーキテクチャのリポジトリ構成を漸進的にモノレポに移行した話 - Sansan Tech Blog

    Sansan Engineering UnitでSansan Data Hubの開発をしている藤原です。 前回はニッチに深く潜り過ぎたので、今回は(使い古されたネタではありますが)モノレポ化についてお話ししたいと思います。 おさらい:モノレポ(mono repo)とは 一連のソースコードを単一のリポジトリで管理している状態のことです。 特に、実装言語、またはサブシステムやドメインといった何らかの区切りでリポジトリを分けている場合に、それらを集約することをモノレポ化と言います。 逆に、複数のリポジトリに分けている状態をポリレポ(poly repo)と言います。 モノレポのメリットとデメリット モノレポ化することで、以下のようなメリットが得られます。 プロダクト全体で統一したい設定、たとえばCIスクリプトやlinter設定などの管理が楽になる。 検索が楽になる。GitHubの検索で事足りること

    マイクロサービスアーキテクチャのリポジトリ構成を漸進的にモノレポに移行した話 - Sansan Tech Blog
    toshikish
    toshikish 2024/05/28
  • TypeScript開発にRailway Orientedを持ち込み、より型安全なエラーハンドリングへ - Sansan Tech Blog

    Digitization部 Bill One Entry*1グループの秋山です。 はじめに Domain Modeling Made Functionalというスゴ 補講:Make Illegal States Unrepresentable バックエンドの処理を抽象化する 手続き型プログラミングの典型例 課題1:制約のないエラーハンドリング 課題2:低い可読性 課題3:エラーハンドリングの低い網羅性 Railway Oriented Programming TypeScriptで型安全にエラーハンドリングする ステップ1:サブ関数の出力はResult型で表現する ステップ2:サブ関数にResult型を入力できるようにする ステップ3:サブ関数を連結する ステップ4:網羅的にエラーハンドリングする おわりに 付録 TypeScriptの全文サンプル はじめに エラーハンドリングは重要な処

    TypeScript開発にRailway Orientedを持ち込み、より型安全なエラーハンドリングへ - Sansan Tech Blog
    toshikish
    toshikish 2024/03/26
  • terraform planの自動化に向けて直面した課題と解決策 - Sansan Tech Blog

    はじめに こんにちは! 技術部 Bill One Engineering Unit(以下、Bill One EU)の笹島です。 IaC推進チーム(横串チームの1つ)として、CI環境でのTerraform Planの自動化に取り組んできました。 横串チームとは、Bill One EU内の各グループの垣根のない横断チームであり、Bill Oneで抱えている課題を解決するために有志で集まったメンバーによって構成されています。 IaC推進チームとは、文字通りインフラのコード化を推進するチームです。 記事では、CI環境でセキュアなTerraform Plan自動実行を実現するにあたって直面した課題とその解決策について共有します。 特に、モノレポ環境での複数プロダクト・環境の管理における自動化の課題についても紹介します。 目次 はじめに 目次 前提 ディレクトリ構成とその役割 Workload I

    terraform planの自動化に向けて直面した課題と解決策 - Sansan Tech Blog
    toshikish
    toshikish 2024/03/20
  • 30代からプログラミングを本格的に始めたエンジニアが生産性について思うこと - Sansan Tech Blog

    最近キーボードで文字を打つのが面倒になってきている技術部 Eight Engineering Unitの斉藤です。 キーボードは既に100年以上使われ続けているみたいですね。そろそろ新しい入力の方法ができてもよさそうです。 例えば、頭で考えていることが文字に起こせたら、AIに任せるよりももっと便利だと思います。 前置きはさておき、Sansanではちょっと前にエンジニアの生産性と生産量の最大 化が話題になっていました。このブログをご覧の方ならご存知の方も多いのではないでしょうか。 私はこれまで何度か転職をしていますが、どの職場でも例外なくこの話題が挙がりました。 チームとして、あるいは事業としてどう最大化するかが基前提となるのですが、私が今回話したいのは個人としての生産性の最大化についてです。 私は個人の生産性を上げることもチームの生産性を上げるのと同じくらい非常に大事なことだと考えてい

    30代からプログラミングを本格的に始めたエンジニアが生産性について思うこと - Sansan Tech Blog
    toshikish
    toshikish 2024/03/13
  • テックリードによる社内キャリアイベントを開催しました - Sansan Tech Blog

    こんにちは。技術部 Digitization部 Bill One Entryグループでエンジニアをしている大森です。 普段の業務に加えてTech道場というイベントの運営に関わっており、記事はそのイベントのレポートです。 Tech道場とは、最新の技術や生産性を高める技術、そしてエンジニア技術力に触れることを目的とした全社員向けの社内イベントです。*1 今回のTech道場では、主にエンジニアをターゲットとした企画として、テックリードによる社内キャリアイベントを開催しました。 イベントの概要 テックリードとして笹川・藤原・黒澤の3人が登壇し、新卒3年目のエンジニア、江川が3人にさまざまな質問を投げかけるパネルディスカッションイベントを開催しました。 ゲストの経歴は次の通りです。さまざまなバックグラウンドを持つメンバーが集まりました。 笹川 裕人 技術部 Sansan Engineerin

    テックリードによる社内キャリアイベントを開催しました - Sansan Tech Blog
    toshikish
    toshikish 2024/03/10
  • 入社して1年半の間に先輩が5人育休に入った話 - Sansan Tech Blog

    自己紹介 こんにちは。名刺メーカーDevグループの伊藤惇です。 私は2022年4月にSansanに新卒として入社して、現在に至るまで名刺データの作成および印刷発注をするサービスの開発に携わっています。 名刺メーカーDevグループでは、偶然タイミングが重なったこともあり、私が入社してからこれまでの間に5人が育児休暇を取得しました。 そうした中で感じた育休に対する考え方の変化を振り返りたいと思います。 なお、記事はSansan Advent Calendar 2023の14日目の記事です。 名刺メーカー育休スケジュール 名刺メーカーDevグループの規模感 チームの人数やプロダクトのフェーズによっても育休のインパクトが変わってくるので、私が所属する名刺メーカーDevグループの規模感について補足しておきます。 チーム人数 後述するAさん、Bさん、Cさんの育休取得時は約15人ほどのチームでした。そ

    入社して1年半の間に先輩が5人育休に入った話 - Sansan Tech Blog
    toshikish
    toshikish 2023/12/15
  • 全社横断データ基盤における部分的セルフサービス化への取り組み - Sansan Tech Blog

    研究開発部 Architect Groupの大澤秀一です。ブログ寄稿は約2年ぶりです。半年ぐらい前からランニングを始めて、先日フルマラソン完走してきました。おかげで足はボロボロです(笑)。 さて、私たちはBigQueryを中心とした、全社横断データ基盤(以下、データ基盤)の構築とデータ基盤をもとに社内のデータ利活用を推進しています。データ利活用の推進についてチームメンバーが最近登壇した資料をご参照ください。 speakerdeck.com speakerdeck.com データ基盤を拡大していくにあたって、社内の利用者から自部門のデータをアップロードしてデータ基盤上でアドホックに分析したいという要望がありました。また、利用者自身が自由にテーブルとビューを作りたいという声があがりました。 今回は、そうしたことができる環境を構築したので仕組みについてご紹介します。 なお、記事はSansan

    全社横断データ基盤における部分的セルフサービス化への取り組み - Sansan Tech Blog
    toshikish
    toshikish 2023/12/08
  • Elasticsearch(OpenSearch)を活用した採用候補者検索の同義語辞書整備の取り組み - Sansan Tech Blog

    技術部 Eight Engineering Unitエンジニアをしている平石です。今回は、Eight で提供している採用サービス Eight Career Design (ECD)の候補者検索機能における、検索ヒット件数改善の取り組みについて紹介していきます。 materials.8card.net 目次 目次 ECDの候補者検索機能について 今回解決したい課題 同義語辞書の整備 検索ログにおける共起単語の抽出 word2vecを使った類似語の抽出 結果 まとめ ECDの候補者検索機能についてECD とは Eight ユーザーと、自社にマッチしそうな人材を採用したい企業をつなぐサービスです。 ECD の候補者検索画面では、採用担当者が採用候補者の数十項目以上のプロフィール情報を自由に検索し、スカウト送信やタレントプール (お気に入りリストのような機能) への追加を行うことできます。

    Elasticsearch(OpenSearch)を活用した採用候補者検索の同義語辞書整備の取り組み - Sansan Tech Blog
    toshikish
    toshikish 2023/12/08
  • 2023年 研究開発部 新卒技術研修 ~ テストコード編 ~ - Sansan Tech Blog

    こんにちは、研究開発部 Data Analysisグループの笛木です。 4/26(水)〜 4/28(金)で研究開発部内の技術研修を行いました。 こちらのブログの続きでテストコードについての研修資料を一部公開します。研修では新卒2年目の私が1年間で部内のコードなどから学んだ情報を共有しました。至らない部分もあるかもしれませんが、ご参考になれば幸いです。 こちらの研修で使用したGitHubのコードリンクは以下です。適宜、ご参照ください。 github.com 目次 目次 はじめに この研修の目的 研修スコープ外 テストコードについて テストコードの便利な点 テストコードの悪い例 テストコードに関するFAQ pytestによるテストコードの書き方 ファイル名 ディレクトリ 基編 Parametrize Fixture 異常系 Mock indirect conftest 知っておくと活用する場

    2023年 研究開発部 新卒技術研修 ~ テストコード編 ~ - Sansan Tech Blog
    toshikish
    toshikish 2023/10/26
  • 自宅ルータの脆弱性検知システムの開発 - Sansan Tech Blog

    Sansan 技術部 情報セキュリティ部 CSIRT グループの川口です。 2023年4月からセキュリティエンジニアで新卒として、Sansan に入社しました。 現在は ログ基盤(SIEM)のログの取り込み部分の機能修正、問い合わせ対応、インシデント対応などの業務に取り組んでいます。 今回は内定者インターンシップで開発した、自宅ルータの脆弱性検知システムについて紹介します。 目次は以下の通りとなります。 開発に至った経緯 作成したシステム 技術的な話 EDR ポートスキャン チケットシステムへの起票 SOAR まとめと今後の課題 開発に至った経緯 新型コロナウイルスの流行に伴い、リモートワークという言葉をよく耳にするようになったと思います。 弊社でも緊急事態宣言下においては、原則リモートワークとなり、現在はオンライン・オフラインを併用した働き方をしています。 ここで問題となってくるのが自

    自宅ルータの脆弱性検知システムの開発 - Sansan Tech Blog
    toshikish
    toshikish 2023/09/29
  • TerraformによるAirbyteを利用したデータ基盤へのデータ連携とCI/CD - Sansan Tech Blog

    こんにちは!「Sansan Summer Internship 2023」でインターンをしていた野首侑作です(X, Facebook)。R&D Architectグループに1ヶ月強コミットしていました。今回のインターンで使った技術はこれまで全く触ったことがありませんしたが、チームメンバーのサポートもあり番環境でも動かせるコードを書くことができました。 今回学んだことの整理と、Sansanのインターンで学べることの多さを共有したいという意味を込めて、社内ブログでアウトプットしようと思った次第です。 目次 目次 はじめに ローカルでAirbyteの立ち上げ 1. DockerによるAirbyte serverの起動 2. Sourceの登録 3. Destinationの登録 4. Connectionの登録 5. 接続確認 TerraformによるIaC IaCとは Terraformとは

    TerraformによるAirbyteを利用したデータ基盤へのデータ連携とCI/CD - Sansan Tech Blog
    toshikish
    toshikish 2023/09/20
  • TypeScriptプロジェクトにスキーマ駆動開発を持ち込み、より型安全な世界へ - Sansan Tech Blog

    Bill One Entry*1グループの秋山です。 題に入る前にお知らせです。9/12 (火) にTypeScriptを活用した型安全なチーム開発をテーマとしたイベントを開催します。 ぜひ、お気軽にご参加ください! sansan.connpass.com 1. はじめに 1-1. スキーマ駆動開発とは 1-2. Testing Trophyとの関係性 2. 構成 2-1. 最初の構成と課題 2-2. 最終的な構成 3. バックエンド 3-1. スキーマから型ファイルを作る 3-2. APIハンドラに型を与える 3-3. バリデーターを追加する 3-4. huskyでスキーマ変更を検知する 4. フロントエンド 4-1. スキーマからAPIクライアントを作る 5. パターンマッチングを持ち込む 6. まとめ 1. はじめに 1-1. スキーマ駆動開発とは 詳しい解説は他の記事に譲り、一言

    TypeScriptプロジェクトにスキーマ駆動開発を持ち込み、より型安全な世界へ - Sansan Tech Blog
    toshikish
    toshikish 2023/08/14
  • 2023年 研究開発部 新卒技術研修 ~ 実践編 ~ - Sansan Tech Blog

    こんにちは、研究開発部 Architectグループの藤岡です。 4/26(水)〜 4/28(金)で研究開発部内の技術研修を行ったので、その内容を公開します。 目次 目次 研修の目的 研修の概要 実践編の概要 アプリケーションを作成 バッチを作成 gokartとは パイプラインを実装 APIを作成 FastAPI とは APIを実装 ディレクトリ構成 実行 Webアプリを作成 Streamlitとは Webアプリを実装 Docker化 デプロイ ECRにイメージをプッシュ アプリケーション基盤 Circuitについて アプリのマニフェストを作成 研修終了後 終わりに 研修の目的 この研修の主な目的は、新卒社員がスムーズに業務に入れるようにすることです。 研究開発部にはさまざまなバックグラウンドを持つ研究員が入社するため、チーム開発の経験がない方もいます。 そのため、Gitの操作やプルリクエス

    2023年 研究開発部 新卒技術研修 ~ 実践編 ~ - Sansan Tech Blog
    toshikish
    toshikish 2023/06/08
  • 自社OCRエンジン「NineOCR」の学習効率化のため SageMaker Training を導入した話 - Sansan Tech Blog

    はじめに NineOCR とは NineOCR が抱える課題 Amazon SageMaker Training とは SageMaker Training の始め方 事前準備 AWS が提供しているコンテナイメージを拡張する方法 独自のコンテナイメージに SageMaker Training Toolkit をインストールする方法 スクラッチでコンテナイメージを作成する方法 まとめ 学習ジョブの実行 学習結果の確認 終わりに はじめに こんにちは、研究開発部の石井です。 エントリーでは、弊社の OCR エンジン「NineOCR」の開発フローに SageMaker Training を導入した話を紹介します。 NineOCR とは NineOCR は Sansan が独自に開発した名刺特化の OCR エンジンです。 名刺をデータ化するフローの中で実際に活用されており、タスクの高速化・高精

    自社OCRエンジン「NineOCR」の学習効率化のため SageMaker Training を導入した話 - Sansan Tech Blog
    toshikish
    toshikish 2023/03/06
  • 分析の再現性を担保する工夫 - Sansan Tech Blog

    はじめに 技術部 R&D の小松です。先日、一橋大学の手島健介教授より『経済セミナー』2023年2・3月号をご恵贈いただきました。 www.nippyo.co.jp 手島教授はその中で「米国経済学会データエディター制度の取り組み 再現性向上のためのreplicationチェック」を書かれています。私たちが『経済セミナー』にて「実証研究マネジメントのためのツールキット」の連載時に、手島教授を始めとした研究者の皆さんに草稿を確認いただいたのですが、このトピックはその際に出た議論をまとめられたものです。 そこでは手島教授が体験した、採択された研究論文の再現性チェックのプロセスが事細かに書かれており、興味深いです。現在 AEA P&P のために replication code を準備している私たちにとっても、大変参考になっています。 その中で論文の筆者として行うべきこととして、以下の4点が挙げ

    分析の再現性を担保する工夫 - Sansan Tech Blog
    toshikish
    toshikish 2023/02/28
  • BERTopic で文書のクラスタリングを試す - Sansan Tech Blog

    こんにちは。研究開発部の青見 (@nersonu) です。 そろそろ花粉症の季節ですね。週1でしか出社しない私は、なんとか引きこもって数ヶ月しのぎたいところです。 さて、今回は BERTopic という OSS について、さっくりとした手法の解説もしつつ、簡単に文書のクラスタリングを試そうと思います。 github.com 目次 目次 BERTopic とは 文書の埋め込み 文書のクラスタリング トピック表現 手法の概要まとめ BERTopic を試してみる インストール モデルのロード クラスタリングの実行 結果の確認 トピックごとの単語の重要度 トピックごとの文書を眺めてみる 次元削減手法・クラスタリング手法の変更 使ってみての所感 BERTopic とは BERTopic はいわゆるトピックモデリングを行うための OSS です。 トピックモデルは、文書集合から「トピック」は何が含まれ

    BERTopic で文書のクラスタリングを試す - Sansan Tech Blog
    toshikish
    toshikish 2023/02/21
  • Sansan Data Hub・Bill Oneアーキテクト対談:事業を支えるシステムの設計方針を公開【前編】 - Sansan Tech Blog

    社内に蓄積された顧客データを整理・統合し、マーケティングに最適なデータに進化させる顧客データ統合サービス「Sansan Data Hub」。そして、あらゆる請求書をオンラインで受け取り、請求書受領から月次決算を加速するインボイス管理サービス「Bill One」。いずれも急成長を遂げており、Sansan株式会社の事業の柱になっているサービスです。 これらのサービスは、データの処理効率やシステムの信頼性などを向上させるために、さまざまなアーキテクチャの工夫が行われています。今回は「Sansan Data Hub」と「Bill One」それぞれの開発の中核を担う千田智己と加藤耕太にインタビューし、前後編の2回に分けて記事化。前編では、両サービスのアーキテクチャ設計の工夫や思想について語ってもらいました。 【Sansan Data Hub】アーキテクチャ解説 ――「Sansan Data Hub」

    Sansan Data Hub・Bill Oneアーキテクト対談:事業を支えるシステムの設計方針を公開【前編】 - Sansan Tech Blog
    toshikish
    toshikish 2023/02/17
  • 学びを仕事に繋げる / 外貨を稼ぐ / 継続的に成長する - Sansan Tech Blog

    「公立はこだて未来大学」にお招きいただき、学生さん向けに講義をさせていただきました。 講義で用いたスライドは公開済みで、既にTwitterやはてブでも反響をいただいております。 スライド内には埋め込み動画やリンク等、Speaker Deckでは再現されないものもあるので、講義資料をあらためて「記事形式で」全ページ公開したいと思います。 講義のテーマ/構成について 講義のタイトルは「学びを仕事に繋げる」としていますが、 「海外進出」(外貨を稼ぐという選択肢を持つ) 「成長サイクル」(継続的に成長する) と併せた 3立て 1 にしています。 講義のテーマは非常に悩んだのですが、私の経験から学生さん向けに話せるもっとも価値のある内容はなんだろう?どうやったら90分飽きずに聞いてもらえるだろう?と考えた結果このようになりました。 2 学生さん向けの講演ではありますが、現場でバリバリ活躍されている

    学びを仕事に繋げる / 外貨を稼ぐ / 継続的に成長する - Sansan Tech Blog
    toshikish
    toshikish 2023/01/24
  • レイヤードアーキテクチャを振り返る - Sansan Tech Blog

    こんにちは、Sansanプロダクト開発部の清水です。 ある程度のアプリケーションの大きさだと当たり前に使われる事が多い「レイヤードアーキテクチャ」の自分が考える設計のポイントや、実際に運用する際のポイントについて書いてみようかと思います。 基的な話なので「今更かよ」って感じがしますが、実際に設計、運用する際には様々な考慮事項のあるものだと思うので、知ってる人にとっても復習にでもお役に立てればと思います。 そもそもレイヤードアーキテクチャって何? 概要 一言でいうと、アプリケーションを作る際にそれを構成する部品を、それぞれ責務が定義された論理的なグループにまとめて整理し、それぞれのグループ間のやり取りの仕方を決めておこうという事です。 このグループ間のやりとりにおいて、一方向かつ隣接するグループとしかやりとりを行えないようにする事が多く、層状になるのでレイヤードアーキテクチャと呼ばれます。

    レイヤードアーキテクチャを振り返る - Sansan Tech Blog
    toshikish
    toshikish 2022/11/28