タグ

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

  • Sansan Mobile iOS/Androidエンジニア全13名でKotlin Multiplatform導入に向けた開発演習を実施しました - Sansan Tech Blog

    技術部Mobile Application Groupの赤城です。最近は、Sansan Mobileアプリの開発チームのエンジニアマネジャーとして活動しています。 この度、Sansanのモバイルアプリ開発を加速させるためKotlin Multiplatformの導入を決定しました! それに際して、普段KotlinになじみのないiOSエンジニアも全員KMPでコードが書けるよう、キャッチアップ期間を設けました。 そして、今年5月にその集大成としてKotlin Multiplatform(以下、KMP)開発演習を実施しました。 今回はその開発演習の準備から、当日の様子に至るまでをお話します。 開発演習の目的・目標 ただ「開発演習をしよう」だけだと、実際の業務でKMPを使いこなすには不十分なキャッチアップと成果を上げづらいと考え、最初に目的・目標を設定しました。 目的 Kotlin Multip

    Sansan Mobile iOS/Androidエンジニア全13名でKotlin Multiplatform導入に向けた開発演習を実施しました - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/07/18
    参考になりました。
  • 雑談が苦手だけど1on1をやった話 - Sansan Tech Blog

    技術部Mobile Application Group Eight Androidチームの山です。今回は雑談が苦手な自分がどう1on1を行ったかという話をします。 自分は雑談が苦手です。目的があって話すことは問題ないのですが、雑談自体が目的化している場が苦手です。 自分がチームリーダーになった後も、メンバーとの1on1はマネジャーにお願いしていました。しかしマネジャーが育休を取得することになり、その期間中は自分が1on1を担当することになりました。この時、自分が採ったやり方について紹介します。 1on1はいろいろなやり方があり、自分の採った方法は推奨されないやり方とされている場合もあります。あくまでこういうやり方もあるという認識でお願いします。 1on1の目的 1on1の目的ですが、今回は「メンバーが1on1という形でしか話せない問題を拾い上げて解決方法を考える」ことにしました。 メン

    雑談が苦手だけど1on1をやった話 - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/06/28
    参考になりました。
  • 【Sansan Tech Talk】モバイル開発の技術的挑戦 〜KMP導入で目指す開発生産性の向上〜 - Sansan Tech Blog

    こんにちは、Sansan Engineering Unitの部長を務める、笹川 裕人です。今回で4回目となる「Sansan Tech Talk」。この企画はSansanのテックリードたちが直面している技術的な課題や取り組みについて深掘りする連載企画です。 今回はMobile ApplicationグループのAndroidエンジニアである北村 研二にインタビューしました。 ▼連載記事はこちら buildersbox.corp-sansan.com (写真左から)Mobile Applicationグループ 北村 研二、Sansan Engineering Unit 部長 笹川 裕人 笹川:今回のゲストは、Mobile Applicationグループの北村さんです。北村さん、まずは自己紹介をお願いします。 北村:技術部のMobile Applicationグループで、プロダクト横断チームのA

    【Sansan Tech Talk】モバイル開発の技術的挑戦 〜KMP導入で目指す開発生産性の向上〜 - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/06/21
    参考になりました。
  • Vol.03 Kover CLIでKotlinのTest Coverage Reportをあとからマージする - Sansan Tech Blog

    こんにちは。2024年4月に新卒として入社しました、技術部Strategic Products Engineering Unit Contract One Devグループの髙野です。 2023年3月に内定者インターンを開始して以来、契約データベース「Contract One」を開発しています。 記事では、自動テストの改善活動の一環として、Gradleのマルチプロジェクト構成でTest Coverage Reportを生成するために調査したことについてまとめます。 なお、記事は【Strategic Products Engineering Unitブログリレー】という連載企画の記事です。 buildersbox.corp-sansan.com 背景 なぜTest Coverageを取るのか プロジェクト構成 Test Coverage Reportの作成 Kover CLIのartif

    Vol.03 Kover CLIでKotlinのTest Coverage Reportをあとからマージする - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/06/11
    参考になりました。
  • 2024年度人工知能学会に参加しました - Sansan Tech Blog

    こんにちは!研究開発部の山内敏嗣です! 浜松で行われた2024年度 人工知能学会全国大会 (第38回)において、企業ブースの出展、ポスター発表を行いました。 ブログでは、その様子について紹介します。 準備 研究員4名、デザイナー3名で参加しました。参加初日の午前中は、ディスプレイ、ポスター、資料を設置して、デモの接続確認などを行いました。 完成した姿がこちらです。 準備はバッチリです! ブース展示 ブースにて、Sansanの研究開発部による取り組みとして、「OCR、LLM、その他の画像分野や自然言語処理分野の機械学習を活用したデータ化およびデータ活用の事例」を紹介しました。 ブースには、たくさんの方々が訪れてくださりました。私たちが得意とするデータ化での知見を共有したり、逆に私たちにはなかった知見をいただいたり、有意義なお話ができました。 参加研究員のブース対応の様子です。 デモ ブース

    2024年度人工知能学会に参加しました - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/06/07
    参考になりました。
  • EightのエンジニアでRubyKaigi 2024に参加してきました! - Sansan Tech Blog

    はいさい!名刺アプリ「Eight」でエンジニアをしている鳥山(@pvcresin)です。 沖縄で行われたRubyKaigi 2024に、Eightのエンジニアメンバーで参加してきました! Eightロゴのポーズをする参加メンバー 今回は、それぞれの視点からRubyKaigiの感想や印象に残ったセッションについてまとめた記事をお送りします。 目次 鳥山(@pvcresin) 大久保(@kotaohkubo) 坂田 井上 まとめ 鳥山(@pvcresin) RubyKaigiへの思い RubyKaigiは今回が初参加です。Eightと同じようにRuby on Railsを採用している企業の方々に、アーキテクチャの課題や取り組みなどをヒアリングしたいと思い、参加しました。 ちなみに個人的にはRubyの型やWebAssembly活用に興味があるので、セッションはその辺りを中心に聞いてきました。 気

    EightのエンジニアでRubyKaigi 2024に参加してきました! - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/06/06
    参考になりました。
  • 【Turning Encounters into Innovation in Cebu】 Vol. 2: Development insights - Sansan Tech Blog

    Welcome back to Sansan Global Development Center blog! I'm Vani from the Engineering Team, and I'm excited to share our team's journey and development process with you. In this blog post, we'll dive into the evolution of our engineering team in Cebu, our adoption of Agile Scrum methodology, and our exploration of the Bill One architecture and its technology stack. From team building to embracing A

    【Turning Encounters into Innovation in Cebu】 Vol. 2: Development insights - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/05/08
    It was helpful
  • 同期的なコミュニケーションでチーム内の距離を縮める - Sansan Tech Blog

    研究開発部 Architectグループ ML PlatformチームのKAZYこと新井です。 名古屋の中部支店に所属しています。 普段はCircuitというアプリケーション基盤を作っています。 先日、チームメンバーと同じ会議室に集まり、業務とワークショップを行いました。 関西支店に集う 私たちのチームは現在5人です。 東京の社所属が3人、中部支店が1人、関西支店が1人です*1。 各々が所属拠点に出社することはあれど、実際に顔を合わせて業務を行う機会はほとんどありません。 直近では、新しいメンバーの加入と数ヶ月に渡る育休から復帰*2という2つのイベントがありました。 少しでも早くチームに馴染んでもらえたら、という気持ちで1つの拠点に集まって業務を行う日を作りました。 表参道社、関西支店、福岡支店、中部支店、Sansan神山ラボ...といくつかオフィスがあります。 今回選ばれたのは関西支店

    同期的なコミュニケーションでチーム内の距離を縮める - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/04/30
    参考になりました。
  • Node.jsによるReverse Proxy実装をGoでリプレイスした話 - Sansan Tech Blog

    Node.jsによるReverse Proxy実装をGoでリプレイスした話 技術部 Bill One Engineering Unit(以下、Bill One EU)の川原です。23卒としてSansan株式会社に入社し、インボイス管理サービス「Bill One」の開発をしています。今回はNode.jsによるReverse Proxy実装をGoでリプレイスした話をします。 リプレイスしたReverse Proxy Bill Oneの機能の1つに、メールで送られた請求書をBill Oneが代理で受領する機能があります。 Bill Oneでは、SendGridという外部サービスを介してメールを受信しており、Cloud Run上のマイクロサービスへリクエストを送っています。 SendGridとCloud Run上のマイクロサービスの間には、SendGridからのWebhookイベントをプロキシす

    Node.jsによるReverse Proxy実装をGoでリプレイスした話 - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/04/25
    参考になりました。
  • 【Sansan Tech Talk】名刺アプリ「Eight」の技術的挑戦 〜EC2からの移行とモジュラーモノリス化への道〜 - Sansan Tech Blog

    こんにちは。Sansan Engineering Unitで副部長を務めている笹川 裕人です。新たにスタートする、この「Sansan Tech Talk」。Sansan技術部のテックリードたちが取り組んでいる技術的な取り組みやチャレンジを対談形式で深掘りします。初回となる今回はEight Engineering Unitで部長を務める大熊 秀治にインタビューしました。 笹川:それではよろしくおねがいします。まずは私の自己紹介をしますね。私はコンピューターサイエンスの博士号を持っています。学生時代の友人や研究者の同僚と飲み会でアルゴリズムの話をするのが好きで、ときどき白熱してきたところを店員さんに聞かれて困惑されてしまうことがあります(笑)現在は営業DXサービス「Sansan」を楽しく開発しています。よろしくお願いします。 それでは大熊さんも自己紹介をお願いします。 大熊:名刺アプリ「Ei

    【Sansan Tech Talk】名刺アプリ「Eight」の技術的挑戦 〜EC2からの移行とモジュラーモノリス化への道〜 - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/04/19
    参考になりました。
  • BigQueryを使ってCrashlyticsのデータを分析する - Sansan Tech Blog

    技術部 Mobile Applicationグループ所属の大塚です。 名刺アプリ「Eight」のAndroidアプリの開発と、営業DXサービス「Sansan」とEightの両プロダクトをまたぐプロダクト横断チームの一員として、モバイル領域の中長期的な技術的課題の解決や、PoCの開発を担当しています。 今回は、昨年9月にリリースしたEightのタッチ名刺交換機能の品質調査でBigQueryを利用する機会があったため、弊社の事例を参考に分析方法を共有します。 jp.corp-sansan.com タッチ名刺交換とは、Eightのアプリを開いた状態で、同じくEightのアプリを開いた他のAndroid端末やiOS端末と自端末をタッチすることで、デジタル名刺が交換できる機能です。 その際に、Bluetooth Low Energy(以降BLE)を用いたタッチの検出や、デジタル名刺の交換に必要な通

    BigQueryを使ってCrashlyticsのデータを分析する - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/04/16
    参考になりました。
  • MongoDBのoplogについて理解を深めた話 - Sansan Tech Blog

    こんにちは、Sansan Engineering Unit マスターデータグループの金子です。 私たちが開発しているシステムの中に、MongoDBを採用しているシステムがあります。私自身NoSQLを使用しているシステムの開発に携わるのは初めてなので、毎日いろいろな学びを得ています。 ある時、そのシステムで大量のデータをDBに書き込む処理を行うと、MongoDBのoplog関連のエラーが出てしまったことがありました。今回はその時の原因と対応について紹介し、MongoDBのoplogについて理解を深められた話をします。 環境 MongoDB 5.0 MongoDB Atlas 発生したエラー エラーの文言はこちらです。 PlanExecutor error during aggregation :: caused by :: Resume of change stream was not po

    MongoDBのoplogについて理解を深めた話 - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/04/15
    参考になりました。
  • Sansan iOSアプリにおけるPrivacy Manifests対応の詳細と詰まったこと - Sansan Tech Blog

    こんにちは、技術部 Mobile Applicationグループで iOSアプリケーション開発しています。武田です。 2月29日にAppleから発表がありました。それは5月1日からPrivacy Manifestsに対応していないアプリはアップデートができなくなる、という内容です。これに向け、営業DXサービス「Sansan」のiOSアプリでもPrivacy Manifestsに対応中です。記事ではその対応の詳細と対応中に詰まったことをご紹介します。 やることは大きく次の2つです。 1. アプリでPrivacy Manifests対応をする 2. サードパーティSDKをPrivacy Manifests対応バージョンに上げる*1 Privacy Manifests対応で何をするのか、その調査に関しては以前投稿した記事をご参照ください。 buildersbox.corp-sansan.co

    Sansan iOSアプリにおけるPrivacy Manifests対応の詳細と詰まったこと - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/04/09
    参考になりました。
  • 【R&D DevOps通信】Google Compute Engine + GPUで動作するMLサービスの基盤を刷新した話(技術選定編) - Sansan Tech Blog

    技術部 研究開発部 Architectグループの島です。見習い12年目です。 今回は、当社のデータ化技術の粋である「NineOCR」について、そのインフラ・デプロイの基盤を刷新したお話をします。NineOCRに関しては、以下の記事などをご参照ください。 buildersbox.corp-sansan.com ということで「NineOCR」をテーマに以下の2回に分けて記事にする予定です。今回は前編、技術選定の過程です。 前編: 技術選定の過程 後編: GCEにおけるサービスの基盤を変更 タイトルに「刷新」と華々しく書いていますが、プランが二転三転した末の着地だったりします。記事である技術選定編の結論を先に言ってしまえば、結局インフラは変えないことになりました。きっとこの過程が何らか役立つこともあろうかと思い、ここに記します。 ただし終わってみれば、出来上がりには満足しています。良い意味で

    【R&D DevOps通信】Google Compute Engine + GPUで動作するMLサービスの基盤を刷新した話(技術選定編) - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/04/05
    参考になりました。
  • Metalシェーダーで形状のアニメーション - Sansan Tech Blog

    技術部の堤です。弊社には「Geek Seek Workshop」という社内勉強会を支援する制度がありまして、かなり活発に利用されています。私もその制度を利用して、もう1名の同僚と「リアルタイムグラフィックスの数学 - GLSLではじめるシェーダプログラミング」という書籍を一緒に読み進めていました。 gihyo.jp 書はリアルタイムグラフィックスの解説書です。基礎から積み上げていくので、勉強会を続けていくうちに、以前だったらおまじないのようにしか見えなかった次のようなシェーダーのコードが理解できるようになってきました。 9_3 smoothMin サンプルを動かした様子 書を読み進めていく中でとくに感動したのが、SDFと呼ばれる関数を用いて形状を描画することで、形状同士の結合や形状間のモーフィングといった形状の操作を非常にシンプルな演算で行えるという点です。 たとえば次のようなモーフ

    Metalシェーダーで形状のアニメーション - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/04/04
    参考になりました。
  • Jest のメモリまわりでハマった話 - Sansan Tech Blog

    こんにちは、Sansan Engineering Unit の渡邉です🦐 私たちのチームではTypeScriptで開発しており、テストはJestを用いて書いています。ある日からテストが結構な頻度で落ちてしまうように(FLAKY *1に)なっていました...。 そこで、テストがFLAKYになっている原因を深掘り調査したところ、Jestのメモリまわりについて解像度が高まったので、備忘録代わりに残します。 結論 Jestにおけるタイムアウトエラーとメモリエラー(Out Of Memory)を次のオプションを設定し、防止できました。 `jest.config.js` ... testTimeout: 30000, // タイムアウト時間を延長 workerIdleMemoryLimit: '1024MB', // ワーカーが使用できるメモリ上限を制限 maxWorkers: 4, // テストを

    Jest のメモリまわりでハマった話 - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/04/02
    参考になりました。
  • 「エンジニア組織の成長を加速させる」Sansan技術本部 新VPoE 就任インタビュー - Sansan Tech Blog

    こんにちは、Sansan Tech Blog編集部です。今回は2016年に入社し、関西開発拠点の立ち上げを経て新規事業のプロダクト開発責任者となり、4月1日にSansan株式会社のエンジニア組織全体のマネジメント責任者であるVPoE(Vice President of Engineerの略)に就任した大西に、就任の経緯や今後の展望についてインタビューしました。 大西真央のキャリアパスなどの情報を集めたページはこちら sansan-engineering.notion.site ――VPoEに就任したきっかけや経緯を教えてください。 前任の西場がVPoEとして注力してきた評価制度や生産性向上に向けた環境改善、そして採用力の強化等により、技術部は組織力を高めることができました。次のステップとして、自分の得意領域でもある「強くなった組織を大きくスケールさせる」フェーズに入ったこと、そして自分自

    「エンジニア組織の成長を加速させる」Sansan技術本部 新VPoE 就任インタビュー - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/04/01
    参考になりました。
  • チーム開発合宿 2024 in 徳島県神山町(技術編) - Sansan Tech Blog

    こんにちは、研究開発部 Architectグループの辻田です。 この記事はチームメンバー合同で作成した記事です。 先日、神山ラボへ開発合宿に行ってきました。この記事では合宿中に取り組んだ内容について紹介します。合宿の目的や、全体の様子はチーム開発合宿 2024 in 徳島県神山町(レポート編)をご参照ください。 記事は【R&D DevOps通信】という連載記事のひとつです。 背景 Sansan Labsで大きめのリリースを控えているため、それまでに障壁となる課題を短期間で改善することが目的です。通常はLabs開発に関わりのないメンバーも含めて、全員で集中して取り組むことで、効率的に課題を解決することがこの合宿に期待していることです。 期待される成果 Sansan Labsの全アプリケーションを、簡単かつ安全にリリースできる状態になっていることが期待される成果です。 タスクの消化量は、通常

    チーム開発合宿 2024 in 徳島県神山町(技術編) - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/03/27
    参考になります。
  • 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
    shiina-saba13
    shiina-saba13 2024/03/26
    参考になりました。凄いアクセス数ですね。
  • チーム開発合宿 2024 in 徳島県神山町(レポート編) - Sansan Tech Blog

    こんにちは、研究開発部 Architectグループの辻田です。 今年も神山ラボへ開発合宿に行ってきました!新メンバーも加わり、チームとしては2回目の開発合宿*1です。記事では合宿レポートを紹介します。合宿で取り組んだ技術的な内容は別記事で出しますので乞うご期待です。 記事は【R&D DevOps通信】という連載記事のひとつです。 開発合宿の概要 目的 今回の合宿の目的は以下の通りです。 チームメンバー変更に伴ってメンバーの親睦を深める Sansan Labsリリースの障壁となる多くの課題を短期間で改善する リモートワークが中心かつ、チームメンバーも東京と大阪にいるためなかなか全員が集まれる機会はありません。この1年間で新卒や中途のメンバーの加入もあり、オフラインで顔を合わせてチームの親睦を深めておきたいところでした。 そしてSansan Labsで大きめのリリースを控えているため、それ

    チーム開発合宿 2024 in 徳島県神山町(レポート編) - Sansan Tech Blog
    shiina-saba13
    shiina-saba13 2024/03/25
    お疲れ様でした。食事も充実してますね。