カミナシ エンジニアブログ

株式会社カミナシのエンジニアが色々書くブログです

2021-01-01から1年間の記事一覧

【登壇資料】Startup Issue Gym #3【AWS活用におけるIssue】に登壇してきました

カミナシ・エンジニアリングマネージャーの @dmi8a です。 先日行われた Startup Issue Gym #3【AWS活用におけるIssue】 にて「カミナシレポートが辿り着いたメンテナンスモードのあり方」というタイトルで発表してきました。 概要 カミナシは、フロントエン…

【登壇資料】Go Conference 2021 Autumn に登壇してきました

カミナシ・エンジニアの@issei です。 先日行われたGo conference にてgoldスポンサー枠にて登壇してきました。 gocon.jp kaminashi-developer.hatenablog.jp 本日は、その際のカミナシ側の登壇資料を紹介します。 発表趣旨 カミナシではバックエンドのAPIサ…

Go Conference 2021 Autumn に "Go"ld Partners として協賛・登壇します!

カミナシではバックエンドのAPIサーバーの開発にGolangを利用しております。 (Goの採用に関しては過去のこちらの記事もご覧いただけると幸いです) Go Conference に "Go"ld Partners として協賛させていただけることとなりました! OSSの恩恵を受けプロダク…

インフラ未経験エンジニアがGCPで爆速構築する奮闘記

こんにちは、株式会社カミナシのエンジニア @imu です。 はじめに 私はインフラに対して苦手意識(詳しく知らない)があり、issueに対して率先して改善しようとしませんでした。このまま深く触ることはないかなと思っていた矢先、新規プロダクトのインフラ構…

【GORM】V1からV2へアップグレードにチャレンジした話

こんにちは、株式会社カミナシのエンジニア @imu です。 はじめに 弊社のアプリケーションのバックエンドはGoでDBアクセスライブラリはGORMを使っています。 サービスリリース時からGORMを使っており、V1からV2にすることでパフォーマンス改善につながると思…

PMの自分が如何にユーザーの声をエンジニアの共通言語へ変えたか

初めまして。株式会社カミナシでPMをやっているGTOです。 先日6/30に、マネーフォワードさんと合同で勉強会を実施しました!当日お集まりいただいた皆様、ありがとうございます。 登壇者として出席させていただき、「PMの自分が如何にユーザーの声をエンジニ…

GolangでのAPI GatewayとLambdaを利用した認可設定をやってみる

こんにちは。エンジニアの @Taku です。 期間が空いてしまいましたが、過去にLambda オーソライザーを使った認証を作成した続きで、今回は認可の設定を行っていきたいと思います。 ※本記事の内容はプロダクトと関係なく、個人的にやってみたものになります。…

【登壇資料】製造現場を変えろ。ソフトウェアエンジニアが挑む爆速DX

カミナシ・エンジニアの浦岡です。 先日、CADDiさんと共催で勉強会を開催しました。その際のカミナシ側の登壇資料を紹介します。 勉強会の概要 製造現場向けのサービスを開発しているCADDiさんと弊社カミナシが共催でオンライン勉強会を開催しました。 今回…

サービスの開発途中から、厳しめのESLintのルールを導入するためにしたこと

こんにちは、株式会社カミナシのエンジニア@tomiです。 今回は、開発途中からESLintのルールを見直す際にどうやって行ったかを書こうと思います。 開発途中からESLintを見直すとなると、膨大にあるコードがあるので一気に直すとなると、恐ろしい量の修正が必…

テスト駆動開発で文字列が日付か正規表現で調べる関数を実装してみた

こんにちは、株式会社カミナシのエンジニア @imu です。 はじめに テスト駆動開発(以下、TDD)は知っているけど、業務でTDD使ってみようと思ってもリリースに追われてしまい、時間が取れなかったりしてチャレンジ出来ていませんでした。今回は時間に余裕があ…

品質と新規開発のバランスというタイトルで登壇してきました

こんにちはカミナシでアプリケーションエンジニアをやっている沼田( @keinuma15 )です。 先日行われた Startup Issue Gym #1【開発プロセスのIssue】 にて「品質と新規開発のバランス」というタイトルで発表してきました。 概要 スタートアップのプロダクト…

react-native-svgで手書きアプリを作ろう

カミナシの浦岡です。弊社が開発している「カミナシ」には、 以下のような用途を想定して、手書きメモ機能を組み込んでいます。 カメラで撮影した写真の上に矢印マークやメモを追加したい キーボード入力に不慣れなユーザーでも素早く簡単にメモを録りたい …

【Expo Go】アプリケーションがクラッシュして解決するまでの話

こんにちは、株式会社カミナシのエンジニア @imuです。 はじめに アプリケーションが急にクラッシュすることありますよね? 昨日まで動いていたのに何故かクラッシュ…。 アプリケーションがOSSの場合、特に切り分けが大変ですよね。 カミナシでは『Expo Go』…

StoryShotsの可能性を探る

こんにちは、カミナシの@tomiです。 前回は、Expo ReactNativeにStorybookの導入を行いました。 今回は、StoryShotsを入れてみたいと思います。 StoryShotsとは、自動スナップショットテストができるStorybookのアドオンです。 内部的には、JestのSnapshotが…

ABDでSCRUM BOOT CAMPの輪読会を開催しました

カミナシのエンジニア@Takuです。 先日エンジニアチームにてABD(アクティブ・ブック・ダイアローグ)という形式で輪読会を開催したところ、とても良かったので共有させていただこうと思います。 はじめに ABD(アクティブ・ブック・ダイアローグ)とは 私もこの…

Expo ReactNativeのStorybookを0から入れ直す

Expo ReactNativeにStorybookの導入をしてみました。StorybookのサイトにReactNativeでの導入方法が記載されていますが、それ通りだけでは上手く動かなかったので、ExpoでStorybookを使いたい人の参考になればと思います。

React3Dチュートリアル

カミナシの浦岡です。 この記事ではreact-three-fiberというライブラリを使って、reactで3Dアプリケーションを作成してみます。 github.com このライブラリを使うことでアプリの開発者からすると、 通常のreactアプリ(DOMにレンダリングするもの)を作るの…

【React Native + Expo】Push通知を試してみた

こんにちは、株式会社カミナシのエンジニア @imuです。 はじめに と、いうことでPush通知の話です! カミナシではReact Native(Expo)でアプリケーションを開発しています。 Push通知の実装って意外と難しいイメージありませんか? アプリケーション側での監…

Raspberry PiでKubernetesクラスタを作る〜準備編〜

株式会社カミナシのエンジニア(まぁ当たり前か)の@nasum(id:Tomato-360)です。 以前個人でやってた活動で、Raspberry Pi 4でKubernetesクラスタを立てました。そのときは3台で、master 1台 worker 2台で構築しました。このときはKubernetesクラスタをただ…

AWS SAMを利用してAPI GatewayとLambda Authorizer(Golang)の構築をやってみた

こんにちは、株式会社カミナシのエンジニア @Taku です。 前回、GolangでLambda Authorizer用関数をやってみましたが、 Golangはコードエディタが使えず、テストするには毎回zipで固めてアップするという一手間がありました。 kaminashi-developer.hatenablo…

BtoB SaaSスタートアップのインフラの失敗と選択の歴史を登壇の中で暴露してきました

初めまして。株式会社カミナシPMの@gtongy1です。 先日行われた BtoB Startup Engineers Meetup 〜BtoB SaaSを支えるインフラ〜 - connpass にて「失敗しても前に倒れる。高速検証のための壊しやすいインフラ」というタイトルで登壇してきました。 登壇資料 …

ScrapboxからNotionへの移行

概要 カミナシはこれまでドキュメント管理ツールにScrapboxを使っていました。 手軽にかけ、リアルタイムに複数人で編集できるのでチームで議論しやすかったです。一方でドキュメント管理ツール以外に使ってるツールが増えたり、ストックしたい情報が探しに…

エンジニア転職でのポートフォリオ・ネタに困ったら

カミナシの浦岡です。 みなさん、ポートフォリオの成果物や学習目的でプログラムを作る場合に 課題や題材を設定していますか? これの有無で、最初の一歩を踏み出す動機づけ、モチベーションの持続に影響します。 この記事では、以下のような人に向けてネタ…

【Expo SQLite + TypeORM】Jestでexpo-sqliteの接続テストが書けなかった話

こんにちは、株式会社カミナシのエンジニア @imuです。 はじめに みなさんのプロダクトでテスト書いてますか? 『カミナシ』はオフライン機能を提供しており、ローカルデータベースはSQLite(expo-sqlite)を利用しています。 オフライン機能って何?という…

RDBMSの先を行く?NewSQLを支えるアルゴリズムRaftをGoで紐解く

初めまして。株式会社カミナシPMの@gtongy1です。 みなさんはNewSQLをご存知ですか? 強い整合性を持つ分散型のSQLデータベースサービスのことをNewSQLと呼びます。 RDBMSではなし得なかった分散アーキテクチャを、またNoSQLではなし得なかった強い整合性を…

開発環境で送信したメールを確認するためにMailHogを導入しました(勝手に)

Go

こんにちは、カミナシの@tomiです。 開発環境で送信したメールを確認するためにMailHogを導入してみました。 MailHogとは送信したメールをブラウザで確認できるツールです。 導入のきっかけ 以前、Ruby on Railsで開発している際に、letter_openerという送信…

【Golang】で【Amazon API Gateway Lambda オーソライザー】と【FirebaseAuth】を利用しての認証をやってみた

初めに 初めまして。2021年3月より株式会社カミナシにジョインすることとなりました、エンジニアの@Takuと申します。 業務とは直接関係ないのですが、API Gateway Lambda オーソライザーとFirebaseAuthを組み合わせた認証をやってみたので記載させていただき…

NoSQLで悩ましいインデックスとアクセス権限管理を、Firestoreのサブコレクションで実装する

概要 FirestoreはNoSQLの中でもデータ構造に特徴があります。 本記事では私自身が実際に設計したデータ構造がサブコレクションでどう変わったかをみていくことで、サブコレクションでできることを書いていきたいと思います。 開発環境 Node (14.15.4) Fireba…

React Native Debuggerを使った、React Native+Expo開発の流れ

こんにちは、カミナシの@tomiです。 React Native + Expoで開発する上で、React Native Debuggerが自分にとって必須のものとなっています。 このツールを使って日々どういった感じで開発しているかをまとめました。 他にもReactotronやReact Native Toolsな…

UIが嘘をつく? UXデザインにおける「楽観的な更新」とSPAでの作り方

こんにちは、デザインエンジニアのショウです。 突然ですが、UI/UX デザインにおいて、「楽観的な更新」という言葉を聞いたことがありますか?あまり聞いたことがなくても、実は日常にたくさん存在しています。 例えば、 twitter や facebook のいいねボタン…