Sansan Tech Blog

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

開発

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

新規事業開発室 新卒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 は現…

Eight フロントエンド、Prettier 入りました

こんにちは。Eight でフロントエンドエンジニアをしている鳥山(@pvcresin)です。 最近は、Beat Saber という VR リズムゲームにハマっています。 音楽に合わせて、手に持ったライトセーバー的なものでブロックを切っていくゲームで、いい運動になっていま…

AWSを活用した大規模データのバックアップ

はじめに こんにちは。プロダクト開発部でインフラエンジニアをしている佐野です。 コロナの影響でここ数ヵ月、家に籠ってリモートワークで作業を行っていますが、椅子とモニターを新調して、やっと快適な作業環境が整ってきた今日この頃です。さて、今回の…

startActivityForResultがDeprecatedになった対応方法

こんにちは!Sansan事業部 プロダクト開発部のふるしんです。 私は大阪のオフィスでSansanプロダクトのAndroidアプリの開発に従事しています。 play.google.com 2020/04/29にActivityのVersion 1.2.0-alpha04が公開され、 startActivityForResult()とonActiv…

マルチモジュールへの第一歩

SansanでAndroidアプリケーションエンジニアをしている山口 です。Sansan Androidではマルチモジュールへの移行を徐々に進めています。今回はappモジュールからどうマルチモジュールに移行しているかについて書きたいと思います。 マルチモジュールにする意…

JavaMailでHTMLメールとTEXTメールを同時送信する方法と注意

新規事業開発室 新卒1年目の山邊です。 Sansan の新規事業で2020年5月11日にリリースされた「あらゆる請求書をオンラインで受け取る。」ことの出来るサービスBill Oneを開発しています。 その過程でメールを送信する際にHTML形式とTEXT形式をまとめて一つの…

ECSのDAEMONをDRAININGで直ぐに停止しないようにした

DSOCインフラチームの藤田です。コロナの影響で大好きなバスケットボールができずに悶々とした日々を送っていましたが、最近Netflixで配信されたマイケル・ジョーダンのドキュメンタリーを視聴して、更に悶々としています。マイケル・ジョーダンについて名前…

プロジェクトの成否を決める非機能要件を定義するには

こんにちは、Sansanプロダクト開発部 プロダクトグループの清水です。 直近で非機能要件の定義について頭を悩ませられる事もあったので、改めて非機能要件の定義について記事にしてみました。 非機能要件とは? ビジネス目的を果たす事に成功するソフトウェア…

B2BマルチテナントSaaSの認証にAuth0を使うときに知っておきたかったこと

こんにちは、新規事業開発室の加藤です。私たちのチームでは新規事業のプロダクトとしてB2BのマルチテナントSaaSを開発しており、その認証にAuth0を使っています。今回Auth0を初めて使用する中で試行錯誤することが多かったので、最初から知っておきたかった…

Eight、Sign in with Apple対応したよ!

はじめに こんにちは! Eight事業部でiOSアプリエンジニアをしている福尾です。 コロナウイルス大変ですね... 弊社も原則在宅勤務になっており、日々リモートでの業務をしております。*1 幸い、僕が所属するアプリチームには普段からリモートの方が数人いる…

Eightの品質を保ち続ける「Rails × RSpec × AWS」なローカル & CI環境

Eight事業部プロダクト部 Platform Group / Engineering Manager の 藤井洋太郎(yotaro) です。 さて、私が属するPlatform Groupは「アーキテクチャ刷新」「データ基盤整備」「セキュリティ」「環境整備」など多方面での開発・改善を行っています。 本記事で…

composed_of を使って Rails で値オブジェクトを扱う

DSOC サービス開発部でエンジニアをしている石畑です。普段は Rails で名寄せサービスを作っています。 今回は Rails で値オブジェクトを扱うのに ActiveRecord の composed_of が便利なので、紹介します。 値オブジェクト 値オブジェクトは DDD でも紹介さ…

AndroidのWorkManagerでDIする

こんにちは!Sansan事業部 プロダクト開発部のふるしんです。 私は大阪のオフィスでSansanプロダクトのAndroidアプリの開発に従事しています。 play.google.com WorkManagerを使うと、アプリの起動状態が変化しても実行してくれるような、延期可能な非同期タ…

Sansan iOS アプリの内側

こんにちは。 Sansan iOS アプリエンジニアの中川です。 Sansan iOS アプリは B to B アプリの性質上、 App Store のプレビューやログイン、新規登録くらいしか未登録ユーザーが触れられる領域がなく、ビジネスマンならともかく、エンジニアがそのアプリがど…

DeployGateで開発中アプリの配布をスッキリさせたはなし。

みなさまはじめまして! Sansan事業部プロダクト開発部Androidエンジニアの原田です。 今回は導入から1年半くらいが経つDeployGateというサービスについて、私のチームがどのように利用しているかご紹介いたします。 背景 突然ですがみなさんは、開発中のア…

レスポンス速度に向き合う

こんにちは、Sansanの杉原です。BtoBサービスのSansanのブラウザアプリケーションのエンジニア兼プロダクトマネージャーをしています。 今回はブラウザアプリのパフォーマンスにおける速度(*1)で苦い経験をしたエンジニアが、プロダクトマネージャーになっ…

VIPER の実装コストを下げるために

こんにちは! Sansan iOS チームの髙橋佑一朗です。 Sansan iOS アプリでは現在、 VIPER をアーキテクチャとして採用していますが、VIPER の構成で実装していくに当たって1画面作るのにコードを書く量が多いなぁと少しづつ感じてくるようになりました。 そこ…

© Sansan, Inc.