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

  • インボイス管理サービス「Bill One」の認証を内製認証基盤に置き換えて認証基盤のコストを削減した話 - Sansan Tech Blog

    Bill One Engineering Unit 共通認証基盤チームの樋口です。 Bill Oneでは昨年までAuth0を認証基盤として利用してきましたが、認証基盤を内製化することでコストを大幅に削減しました。 この認証基盤は、昨年12月に無事リリースされ、Bill Oneの認証を支えています。 今回は認証基盤の内製化に至った経緯と設計、移行プロセスについて紹介します。 Bill Oneについて 認証基盤に関する課題 解決方法の検討 IDaaS(Identity as a Service)について 設計とシステム構成について 認証基盤の設計 システム構成 アカウントの移行について メールアドレス・パスワードでのログインを利用しているユーザーの移行 SSO(Single Sign-On)の移行 振り返りと今後 ドメイン変更による問い合わせの増加 内製化によって体験の改善がスムーズに Bil

    インボイス管理サービス「Bill One」の認証を内製認証基盤に置き換えて認証基盤のコストを削減した話 - Sansan Tech Blog
  • 30代からプログラミングを本格的に始めたエンジニアが生産性について思うこと - Sansan Tech Blog

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

    30代からプログラミングを本格的に始めたエンジニアが生産性について思うこと - Sansan Tech Blog
  • 全社横断データ基盤へdbt導入を進めている話 - Sansan Tech Blog

    こんにちは。研究開発部 Architectグループの中村です。 記事は Sansan Advent Calendar 2023 の16日目の記事です。 今回は、私達のチームで開発&運用している全社横断データ分析基盤のデータレイヤの再設計、及びdbtの導入を進めているという事例について紹介します。 既存のデータ基盤に対して、dbtの導入を検討されている方の参考になれば幸いです。 (稿ではdbtとはについては触れませんので、ご了承ください) TL;DR 歴史的経緯 全社横断データ基盤が生まれる前 全社横断データ基盤 立ち上げ期 課題 立ち上げ期に作られたデータマートがカオスに・・・ 課題の解決に向けて データレイヤの再設計 Transformツールの選定 dbtへの移行戦略 その他dbt移行におけるTips チームでの開発の標準化 Cosmosの導入検証 データカタログのホスティング まと

    全社横断データ基盤へdbt導入を進めている話 - Sansan Tech Blog
  • 入社して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
  • 全社横断データ基盤における部分的セルフサービス化への取り組み - Sansan Tech Blog

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

    全社横断データ基盤における部分的セルフサービス化への取り組み - Sansan Tech Blog
  • 学びを仕事に繋げる / 外貨を稼ぐ / 継続的に成長する - Sansan Tech Blog

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

    学びを仕事に繋げる / 外貨を稼ぐ / 継続的に成長する - Sansan Tech Blog
    hem6
    hem6 2023/01/25
  • Goで作るテキストエディタ - Sansan Tech Blog

    はじめに みなさんこんにちは。Sansan事業部プロダクト開発部のiOSエンジニア荒川です。 以前はRDBMSの記事*1を寄稿し、好評いただいたこともあり、定期的に車輪の再発明系の記事を書いていこうと思います。 さて日はタイトルの通り、VimEmacsに代表されるターミナルで動作するインラインテキストエディタをGoで開発してみました。 ソースコードは以下のリポジトリに置いているため、ぜひ参考にしてください。 github.com 完成品 文字だけだとイメージも湧きにくいので、まずは完成品をお見せします。 最低限エディタの動きは出来ている、というレベルの完成度ですね🙏 特徴 1000行インラインエディタ 文字入力/挿入/削除 画面スクロール キーボードショートカット ファイル読み込み/保存 Goのコードハイライト機能 実装の方針 今回はただ開発するだけではなく、いくつかのこだわりポイン

    Goで作るテキストエディタ - Sansan Tech Blog
  • 「Go言語でつくるインタプリタ」をRustで実装しました。 - Sansan Tech Blog

    はじめに こんにちは。DSOC 研究開発部 Architect Group Data Direction Teamの有山です。 気温が上がってきて夏っぽくなってきましたね。毎年夏用にTシャツを集めるのが趣味なのですが、今年は個人的にブームが再燃してるGOODENOUGH*1を古着で集めようかなと考えています。 ところで皆さんは普段何の言語を書いていますか? Data Direction Groupでは主にPythonを使用していますが、ある時から四則演算の計算順序やif文の条件分岐はどうして正しく動くのだろうと疑問に思うようになり、実際に正しく動かしているシステムを理解してみたくなりました。色々検討した結果、「Go言語で作るインタプリタ」というが内容的にも分量的にもちょうどよく、これを読み進めることにしました。 初めは読みながらコードを写経していましたが、複雑なロジックについては理解した

    「Go言語でつくるインタプリタ」をRustで実装しました。 - Sansan Tech Blog
  • 技術力を底上げする、Sansanの社内勉強会補助制度 - Sansan Tech Blog

    Sansan事業部プロダクト開発部の基盤チームに所属する佐藤です。Sansanでは社員が自発的に開催する社内勉強会で会社からの支援を受けることができ、月に50種類以上の勉強会が開催されています*1。各勉強会は単発のものもありますが、週に1回、1~2ヶ月継続して開催されているものが多く、中には1年半以上続いている勉強会もあります。 今回は、社内勉強会を支える制度「Geek Seek Workshop」について紹介しつつ、社内で行われている勉強会から分野や目的の異なるものをピックアップして紹介し、Sansan社内の勉強会の雰囲気や参加によるメリットを参加者の立場から多面的に伝えたいと思います。人事制度に携わる人間ではありませんが、制度を用いた社内の技術力向上のアイデアの種になれれば嬉しいです。 Geek Seek Workshop 1人あたり1000円の補助が出る 申請のハードルが低いから開催

    技術力を底上げする、Sansanの社内勉強会補助制度 - Sansan Tech Blog
  • DBMSをGoで実装してみた - Sansan Tech Blog

    こんにちは。プロダクト開発部の荒川 id:ad-sho-loko です。突然ですが、皆さんはこんな疑問を持ったことはありませんか? データベースの内部実装はどうなっているのか? トランザクションとはどのようなアルゴリズムで実現されているのか? NoSQLが遅いのはなぜか? 古典的なデータベースとは内部的にどのように違うの? データベースを何かしらの形で利用しているのにも関わらず、意外と内部の仕組みを理解していない場合が多いかと思います。僕もそうです。*1 しかし、エンジニアたるもの、その仕組みを知ることは非常に重要です。僕もデータベースについて勉強しようといくつかのやサイトを調べていたのですが、なかでもCMU(カーネギーメロン大学)のDatabase System Groupがアップロードしている講義が最も勉強になりました。 www.youtube.com そしてブログでは、上記の講義

    DBMSをGoで実装してみた - Sansan Tech Blog
  • ソースコードで理解するクリーンアーキテクチャ - Sansan Tech Blog

    はじめに こんにちは。プロダクト開発部の荒川です。 これまで最年少を謳っていましたが、ついに新卒の子にその座を奪われてしまいました。とても残念です。 さて今回のテーマは、皆さんお馴染みクリーンアーキテクチャ(Clean Architecture)です。 クリーンアーキテクチャは一時期流行し、その流れに乗って私もある程度の理解はしていました。 しかし、それはあくまでも感覚的な理解であって、他人に説明や良さを語れるレベルまで自分の中で落としこめていませんでした。 そこでより具体性のあるソースコードを読み込むことで、アーキテクチャへの理解を深めたいと思います。 クリーンアーキテクチャとは? クリーンアーキテクチャの定義や解説に関しては、ネット上にいくらでも公開されているので、このエントリでは詳しく話しません。 私自身が勉強に使った書籍やサイトを記事末尾の「参照」に掲載しているので、そちらを参考に

    ソースコードで理解するクリーンアーキテクチャ - Sansan Tech Blog
  • チームにE2Eテストの文化を広めた話 - Sansan Tech Blog

    こんにちは。Sansan 事業部プロダクト開発部の奥野です。 私は中途採用で昨年11月に入社して4ヶ月ほどになる、関西支店で勤務するエンジニアです。MAIDO という開発チーム*1 に所属しています。 今回の記事では、1月に私が主催した Selenium のチーム内勉強会を起点にして始まった、E2E テスト導入に向けた動きについてレポートします。なお、E2E テスト(End to End テスト、詳細は後述)の技術的側面については深掘りせず、新しい文化の導入に主題を置きます。 Seleniumとは まず、勉強会の題材とした Selenium について簡単に紹介します。 Selenium とは、ブラウザを使用する E2E テストを自動化するテストフレームワークです。その歴史は2004年から始まっているため*2、ご存知の方も多いかと思います。 E2E テストは、システム全体を一通り動作させて行

    チームにE2Eテストの文化を広めた話 - Sansan Tech Blog
  • 1