移転がてらカウンターとデスクを自作した

こんにちは、エンジニアの肥前です。今年はトレイルランの他にトライアスロンに出てみようと思って色々と調べていたのですが、スイムの練習はけっこう時間を取られそうで躊躇しています。ランとバイクは通勤とトレーニングを兼ねられるので都合がよいのですが。夏とか通勤スイムしたくないですか。 今回はオフィスのカウンターとデスクを自作した話を紹介します。5記事目にしてさっそく脱線気味ですが、一応、広義の技術の話として。私の通っていた高校では技術の授業でボール盤やベルトサンダーなどの工作機械を扱う実習があったので木工工作にはある程度馴染みがあります。そのかわり電子工作はあまりやらなかったので半田付けが下手で、昔同僚と自作PCを組んだ時には呆れられたりもしましたが。 背景 さて、本題です。我々HiCustomer社は今月オフィスを移転したのですが、その際にカウンターと追加のデスクを用意することにしました。既製品も検討しましたが、楽しそうだった用途に合ったものが比較的安価に製作できそうだったので自作に踏み切りました。下記の要件に沿って仕様を検討します: カウンター 8人以上座れる 打ち合わせ場所や休憩スペースとしてフレキシブルに使える 座位と立位のどちらでも使い勝手がよい 圧迫感を与えないデザイン デスク 以前に利用していたデスクと同じ天板の大きさ ディスプレイアームを取り付けられる 共通
Read more

シングルページアプリケーション(SPA)でページビューをトラッキングする方法

こんにちは、カスタマーサクセスエンジニアで丘サーファーの白坂です。 HiCustomer は SaaS として提供されるカスタマーサクセス管理プラットフォームで、各テナントから送信されてくるログデータに基づき顧客のスコアリングやその他の集計処理、またそれらをトリガーとした通知の送信などを行います。 そのためHiCustomerではページビューを含むログデータを送信する一つの手段としてトラッキングコードを提供しています。いわゆるGoogleアナリティクス(以下GA)のタグのイメージです。
Read more

JWTを使った今どきのSPAの認証について

TL;DR JWTはCookieを使った認証の代わりに使うのはきつい。 コードを静的にホスティングしているSPAの話。 JWTの有効期間を長くすれば危険で、短くすればUXが犠牲になるというトレードオフがある。 AWS AmplifyはlocalStorageにJWTを保存 悪意のあるThird partyライブラリが混ざっていたらJWTを抜かれる。 yarn.lockが依存している全ライブラリを監査することはつらい。 Auth0ではiFrameを活用してメモリ上にJWTを格納できる Auth0いいね😍
Read more

GoにおけるGraphQLライブラリ大横断

この記事は GraphQL Advent Calendar 2018 の22日目です。 どうも、HiCustomerのエンジニアの@m4s4k3xです。 GraphQLが広く使われるようになって久しいですが、弊社でも、以下の理由などからGraphQLを導入することにしました。 BFFを立てるほどのエンジニアリソースを割かなくてよい Union TypesやEnumと言ったスキーマの型表現が可能である エコシステムが豊富 大量のエンドポイントを増やさなくても良い 一度のリクエストでフロントエンドで必要なリソースが取得可能 Goにおいての採用事例もちらほら見かけるようになりました。GoにおけるサーバーサイドにおけるGraphQLライブラリはメジャーなものが5つほどあります。各々のライブラリの横断的に紹介した後、弊社での選定理由を紹介します。
Read more

サーバーレス失敗談 - テーブル設計編

こんにちは、エンジニアの肥前です。この記事は Serverless Advent Calendar 2018 の13日目です。 また、HiCustomer Tech Blog の最初の記事でもあります。今後もチームで継続して得られた知見を書き溜めていく場にしたいなと思います。 さて、いわゆる ”サーバーレスアーキテクチャ” を採用してスタートアップのプロダクト開発を開始しておおよそ一年が経過しました。もちろん恩恵に預かっている部分、省力化できた点は多々あるのですが、今改めて振り返るとアンチパターンを踏んでいたり、このまま放置すると負債化しそうな箇所が見えてきています。失敗した話というのはなかなか表に出しづらいものではあるのですが、少しでもこれから取り組む方の助けになればと思い記事に残してみようと思います。サーバーレス界隈の方々にはあるあるネタだと思うのでご笑納ください。 前提となる構成 事情により簡略化している部分があります
Read more