Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

開発

マルチテナントSaaSのテナント分離をRow-Level Securityに移行した

こんにちは、クラウド請求書受領サービス「Bill One」の開発に携わっているソフトウェアエンジニアの加藤です。Bill OneはB2BのマルチテナントSaaSであり、データベースとして Cloud SQL 上のPostgreSQLを利用しています。従来はマルチテナントのデータを分…

新卒1年目エンジニアがぶつかった壁を振り返る

こんにちは。DSOCサービス開発部の阿部です。 私は、昨年4月に新卒アプリケーションエンジニアとして入社し、普段は名刺のデータ化システム「GEES」の開発をおこなっています。今回は、新卒入社してからの1年間を振り返って、エンジニアとしてぶつかった以下…

Visual Regression Testingで安心できるフロントエンド環境を作る

こんにちは。Eight事業部で主にフロントエンドを担当している青山です。 今回はEightのWebフロントエンドコンポーネント集にVisual Regression Testingを導入した事例を紹介します。 他社さんの事例や勉強会を見るに敷居も下がってきているようで、遅ればせ…

まだ間に合う!node-sass(LibSass)から sass(Dart Sass)への移行

こんにちは。 Eight で エンジニアをしている鳥山(@pvcresin)です。 違う違うと自分に言い聞かせていますが、おそらく花粉症になってしまいました 在宅勤務で良かったです。 今回は Sass のコンパイルに使用しているライブラリを node-sass(LibSass)か…

Jetpack DataStore入門〜Preferences DataStore実装編〜

こんにちは!Sansan事業部 プロダクト開発部のふるしんです。私は大阪のオフィスでSansanプロダクトのAndroidアプリの開発に従事しています。 play.google.comこの記事では、連載として2020年 9月 2日に1.0.0-alpha01として公開されたJetpack DataStoreにつ…

compass-mixins から PostCSS の Autoprefixer に移行する

こんにちは。 Eight でフロントエンドエンジニアをしている鳥山(@pvcresin)です。 最近、事業部長に Slack の絵文字をプレゼントするという実績を解除しました。 早く使われないかなとそわそわしています。 さて今回は、Sass の mixin を集めたライブラリ…

CircleCI Orbが最高だった件

はじめに こんにちは, Sansan株式会社プロダクト開発部エンジニアの北見です.最近, 個人開発でCircleCIを使ったビルド&デプロイを構築することができました.構築過程で「CircleCI Orb」という機能を見つけたのですが, これが非常に有用だったので, 紹介させ…

Sansan iOS アプリに XcodeGen を導入しました

こんにちは、Sansan プロダクト開発部 iOS アプリエンジニアの相川です。 本記事は Sansan Advent Calendar 2020 - Adventar の 24 日目の記事になります。 Sansan の iOS アプリに XcodeGen を導入することができたので、今回は XcodeGen 導入について以下…

チームのレビュー負荷を見える化するために簡易な Web アプリを作った話

こんにちは。 Sansan 事業部プロダクト開発部で iOS アプリエンジニアをしている中川です。 本記事は Sansan Advent Calendar 2020 の 23 日目の記事です。 今回は iOS アプリ開発ではなく、チーム開発する上での課題と解決へのアプローチに関する話なので、…

eslint-loader の使用をやめることで、ビルド時間を短縮した話

こんにちは。 Eight 事業部でエンジニアをしている鳥山(@pvcresin)です。 最近は、持ち手部分に適度な厚みと重さがあるいい感じのカトラリー(食卓用のナイフ・フォーク等)を探すのにハマっています。 おすすめのものがある方はご一報いただければ幸いで…

Elasticsearch 導入による Eight Career Design の検索機能の改善

こんにちは!Eight事業部でサーバーサイドエンジニアをしている常盤です。 今回は、Eight が提供しているダイレクト採用プラットフォームである Eight Career Design (ECD) の検索機能を検索エンジンの Elasticsearch を利用して刷新した話をしたいと思いま…

Android版SansanのtargetSdkVersionを30にしました

こんにちは、Sansan事業部プロダクト開発部に所属しているAndroidアプリエンジニアの荒です。 先日Sansan AndroidアプリのtargetSdkVersionを30に更新しましたので、その際に必要だった変更などについてお話していきます。 play.google.com targetSdkVersion…

【仕様を読み解く】第2回 Advanced Message Queuing Protocol (2) ~Transport~

こんにちは、プロダクト開発部 Data Hub プロダクトグループの秋田です。気付けばもう12月。随分肌寒くなってきましたね。こたつに入りながらリモートワークをしたいところですが、そういえば我が家にはこたつがないことに今気付きました。本連載では様々な…

iOS アプリで様々なファイルをプレビューできる QLPreviewController の紹介

こんにちは、Sansan プロダクト開発部 iOS アプリエンジニアの相川です。最近個人的に機械学習を勉強していて、数学の勉強もすることになり、毎日新しいことを学ぶことができているのと大学時代に塾講師をしていた経験も少し活きていて楽しいです。 今回は i…

EightでStripeの銀行振込機能(Pilot版)を活用してみた

こんにちは。 Eight事業部で企業向けプレミアムの開発チームのエンジニアリングマネージャーをしている鈴木です。 今はプレイングマネージャー的な働き方をしていたりします。 EightでStripeの銀行振込機能(Pilot版)を活用してみた話をJP_Stripes Advent Cal…

【仕様を読み解く】第1回 Advanced Message Queuing Protocol (1) ~Types~

初めまして、プロダクト開発部 Data Hub プロダクトグループの秋田です。20卒で入社して半年が過ぎ、月日があっという間に過ぎ去る恐ろしさを肌で実感する今日この頃です。本連載では様々なプロトコルやシステムの仕様を読み解いていくことで、それらに込め…

新卒が思う趣味と仕事のプログラミングの違い

新規事業開発室 新卒1年目の山邊です。新規事業開発室のエンジニアが多く集まる関西支店(大阪)でBill One | あらゆる請求書をオンラインで受け取るを開発しています。 私は学生時代に趣味としてプログラミングをしていました。仕事としてプログラミングを…

Eight 、TypeScript はじめました

こんにちは。Eight でフロントエンドエンジニアをしている鳥山(@pvcresin)です。 最近は UI デザインとアプリケーションのパフォーマンス改善、ビルド時間の短縮に興味があります。 Eight の Web フロントエンドは JavaScript(JS)で書かれていましたが、…

新規事業開発での技術選定の意思と意図 (フロントエンド編)

こんにちは、関西支店で新規事業開発室に所属するソフトウェアエンジニアの加藤です。Bill Oneという新規サービスの開発に携わっています。 バックエンド編の続きとして、フロントエンドで私たちが使用している技術やライブラリを振り返って、どんな意志と意…

【オンライン名刺開発の裏側】ビッグプロジェクトを高速に開発した際の工夫を共有します

こんにちは。Sansan事業部でSansanのAndroidアプリ開発を担当しています北村です。今回はSansanの中でもビッグプロジェクトとなる「オンライン名刺機能」のAndroid開発の裏側として、オンライン名刺開発で得た知見の一部を紹介します。iOS版の記事はこちらと…

新規事業開発での技術選定の意思と意図 (バックエンド編)

こんにちは、新規事業開発室に所属するソフトウェアエンジニアの加藤です。私は関西支店でBill Oneという新規サービスの開発に携わっています。 弊社にはSansanのカタチという企業理念があり、働く人々が体現すべきValuesの1つに「意思と意図をもって判断す…

テキストサイズを画面サイズに合わせて自動的に変化させる

こんにちは!Sansan事業部 プロダクト開発部のふるしんです。 私は大阪のオフィスでSansanプロダクトのAndroidアプリの開発に従事しています。 play.google.com 皆さん、Androidで画面をデザインしてる時にこんなことを思ったことはありませんか? Pixel3 XL…

【オンライン名刺開発の裏側】iOS アプリ開発で良かったことを紹介!

こんにちは。 Sansan iOS アプリエンジニアの中川です。 Sansan iOS アプリは今年の 6 月 15 日にメジャーバージョンアップをしました。 このバージョンアップにはオンライン名刺が目玉機能として含まれています。 オンライン名刺は昨今の新型コロナウイルス…

レガシーシステムをこえて

Sansanプロダクト開発部・基盤チームの加畑です。法人向け名刺管理サービスSansan(以下、Sansan)の開発をしています。 これまでに、レガシーシステムの改善を主題とした記事を2つ書きました。レガシーシステムのおそうじでは、レガシーシステムを改善するプ…

Goで作るテキストエディタ

はじめに みなさんこんにちは。Sansan事業部プロダクト開発部のiOSエンジニア荒川です。 以前はRDBMSの記事*1を寄稿し、好評いただいたこともあり、定期的に車輪の再発明系の記事を書いていこうと思います。 さて本日はタイトルの通り、VimやEmacsに代表され…

SCSS-Lint から stylelint に移行した話

こんにちは。Eight でフロントエンドエンジニアをしている鳥山(@pvcresin)です。 ついこの間新卒で入ったと思ったら、もう 2 年目に突入していました。時が経つのは早いものです。 今回は Eight の Web フロントエンドで使っているスタイルのリンター(コ…

GraphQLを導入してDX向上(フロントエンド編)

こんにちは。Eight事業部の青山です。現在は社内の名刺を一括管理できるEightのサービス"企業向けプレミアム"で主にフロントエンドを担当しています。 今回は以前投稿されたGraphQL導入記事のフロントエンド側について紹介したいと思います。 REST APIが主流…

REST APIが主流のプロジェクトの中でGraphQLを導入してみた話(サーバーサイド編)

こんにちは。Eight事業部の古本です。Eightで"企業向けプレミアム"という企業内で名刺を共有できるサービスのサーバーサイドの開発・運用を主に行っています。その企業向けプレミアムですが、去る2020年5月にバージョンアップが行われました。 そこでEightの…

「Go言語でつくるインタプリタ」をRustで実装しました。

はじめに こんにちは。DSOC 研究開発部 Architect Group Data Direction Teamの有山です。 気温が上がってきて夏っぽくなってきましたね。毎年夏用にTシャツを集めるのが趣味なのですが、今年は個人的にブームが再燃してるGOODENOUGH*1を古着で集めようかな…

GCP の Error Reporting に飛ぶエラーを Slack に通知したい

DSOC サービス開発部のエンジニアの小山です。 私のチームでは GCP を使っており、GCP の Error Reporting というエラーを収集してくれるサービスでアプリケーションで発生したエラーを確認しています。 Error Reporting ですが、この Error Reporting は現…

© Sansan, Inc.