Sansan Tech Blog

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

開発

ビルドシステムをcreate-react-appからViteに移行した話

こんにちは、技術本部 Bill One Engineering Unitの江川です。 2021年4月に新卒としてSansanに入社したのですが、早いものでもう1年が経ってしまいそうで驚いています。 今回は、そんな早かった1年に思いを馳せつつ、Bill Oneフロントエンドのビルド周りを高…

ロバストネス図を開発で活用してみた話

こんにちは。技術本部 Bill One Engineering Unit の前田です。普段はBill One のWebアプリケーション開発をしつつ、チーム内ではPdL(プロダクトリード)という役割を担っています。入社して初めてのSansan Builders Blogの執筆になります。よろしくお願い…

国際化を意識したWebアプリケーションにおける日付・時刻の扱い方

こんにちは、クラウド請求書受領サービス Bill One の開発をしている加藤です。 新しくアプリケーションを開発する際は、それが日本国内をターゲットにしたものであっても、グローバル対応するときに問題が発生したり、そもそもグローバル対応できなかったり…

変更に強いコンポーネント設計の方針と規約(Webフロントエンド)

技術本部 データ戦略部 Newsグループの木田です。 最近、初めて自作キーボードに挑戦しました。ちょうど2枚目のモニターも買ったので、モニター2台と自作キーボードで快適に記事を書いています。 予めお断りしておきますが、この記事は元々、社内向けに設…

GitHub Actions で Pull Request 作成時の手間を削減した話

こんにちは。技術本部 Mobile Application グループの多鹿です。 本記事は Sansan Advent Calendar 2021 15日目の記事です。 adventar.org この記事では、 GitHub Actions を用いて Sansan iOS チームでの Pull Request (以降 PR と記載) 作成時の決まり事を…

GIF しか残ってなかったオリジナルのローディングを CSS アニメーションで再現した話

こんにちは。 Eightでフロントエンドエンジニアをしている鳥山(@pvcresin)です。 気づいたら開発者体験(DX)向上の取り組みばかり記事にしていたので、たまには実装の記事も書いていこうと思います。 今回は、ローディングを CSS アニメーションで実装し…

EightからjQueryが消えた日

Eight Engineering Unitで主にEightのWebフロントエンドを担当している青山です。 今回はEightが長年利用していたjQueryを依存から削除した、という内容を、その経緯を交えながらお伝えします。 レガシーコードをリファクタリングされているエンジニアの方々…

EC2インスタンスのデプロイを CodePipeline + CodeDeploy + CodeBuildで改善した話

はじめまして、技術本部 サービス開発部の上島です。 私はSansanのプロダクトの裏側でデータ統合の役割を担う「名寄せシステム」の開発に携わっています。今回は、その名寄せシステムのEC2で稼働しているRailsアプリのデプロイの仕組みを、CodePipeline+Code…

Microsoft Teams ビデオ会議アプリの作り方の紹介

こんにちは。技術本部 Sansan Engineering Unit 所属の八藤丸です。私は中途採用で昨年9月に入社して11ヶ月ほどになる、関西支店で勤務するエンジニアです。今回の記事では、6月末にリリース*1した Microsoft Teams ビデオ会議連携機能の概要とビデオ会議の…

TypeScript を導入して 1 年が経って感じた良かったこと・困ったこと

こんにちは。Eight でエンジニアをしている鳥山(@pvcresin)です。 最近は、デザインとエンジニアリングの距離をもっと近くにできないかということばかり考えています。 なかなか難しい課題で、すぐには答えが出そうにありません。 さて今回は、以前書いた…

.NETなCDKで.NETなLambdaを自動デプロイしていく

はじめまして、今年の3月にSansan事業部プロダクト開発部にjoinしました辻田です。.NETは全くの未経験でしたが.NETエンジニアとして日々奮闘中です。 初投稿のこの記事ではわたしが趣味でちょくちょく触ってるAWS CDKについて書こうと思います。CDKの言語で…

TypeScript / JavaScript の import を自動でソートする

こんにちは。Eight でエンジニアをしている鳥山(@pvcresin)です。 マイブームはコンビニで買える GODIVA のベルギーダークチョコレート(アイス)を食べることです。 濃厚で甘すぎず、量も多すぎないところが気に入っています。 今回は TypeScript や Java…

Jetpack DataStore入門〜Proto DataStore実装編〜

こんにちは!Sansan事業部 プロダクト開発部のふるしんです。私は大阪のオフィスでSansanプロダクトのAndroidアプリの開発に従事しています。play.google.com この記事はJetpack DataStore入門〜Preferences DataStore実装編〜 の連載として、Proto DataStor…

Go言語とCloud Runを用いてチーム間のデータ連携システムを作成した話

1. はじめに こんにちは、DSOC サービス開発部 Bill One Entryグループの内田祐司です。 この投稿がSansan Builders Blog 初投稿となります。 今回は、Go言語とCloud Runを用いて他チームとのデータ連携を行う仕組みを開発した時のことを紹介したいと思いま…

Internet Explorer 11 (IE11) に対応するためにやったこと

こんにちは。DSOC サービス開発部 Bill One Entryグループの山﨑です。 クラウド請求書受領サービス『 Bill One 』で取り込まれた請求書のデータ化システム『 Bill One Entry 』を開発するチームでエンジニアをしています。 bill-one.com Bill One Entry の…

マルチテナント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…

© Sansan, Inc.