Safie Engineers' Blog!

Safieのエンジニアが書くブログです

エンジニア出身プロダクトマネージャー1年目でやったこと、できなかったこと

この記事はSafie Engineers' Blog! Advent Calendar 2022 16日目の記事です。

こんにちは、開発本部 モバイルグループの池田です。

2016年入社以来、セーフィーのWebフロントエンドやモバイルアプリの開発に関わり、近年は Safie Viewer for Mobile(iOS, Android)の開発チームリーダーとして、そして今年の5月ごろからは同プロダクトのPdM(プロダクトマネージャ)という立場でも活動しています。

この記事では、エンジニア出身のPdMがセーフィーのモバイル開発においてどのような取り組みをして、またどんな課題に直面していたのかを振り返ってみたいと思います。

  • セーフィーにおけるPdMの役割
  • B2B SaaSとモバイルアプリとPdM
  • 今年の主な活動とアウトプット
    • デザイナーとのチーム組成とFigma導入
    • VoC収集
    • ユーザーテスト
    • UX改善リリース
    • Map Viewerデモアプリ作成とPoC(進行中)
  • まとめと課題
  • おわりに
続きを読む

Amazon Aurora MySQL をバージョンアップグレード (5.6 -> 5.7) しました

はじめに

この記事は Safie Engineers' Blog! Advent Calendar 2022 23日目の記事です。

セーフィー株式会社 開発本部のソフトウェアエンジニア 斎藤です。 Safie のクラウド録画サービス の安定運用に寄与するべく、インフラ周りの構築・運用を主に担当しています。

今回は Amazon Aurora MySQL をバージョンアップグレード (5.6 -> 5.7) したお話です。

前回、私が執筆したブログ記事は GitHub Actions で小さな不便を解消してみた でした。約2年振りですね。

  • はじめに
  • アップグレードする必要性
  • アップグレード手順候補案
    • インプレースアップグレード方式
    • レプリケーション && DNS 切り替え方式
  • 検討する上での比較項目
  • 実際に採用した手順
    • 実際の作業イメージ
      • 前提条件
      • step1
      • step2
      • step3
      • step4
    • step4 の詳細手順
      • 万が一の rollback 手順
  • おわりに
続きを読む

driftctlによるIaC化推進に向けた取り組み

こんにちは。セーフィー株式会社 バックエンドエンジニアの村田 (@naofumimurata)です。

この記事はセーフィー株式会社 Advent Calendar 2022 の12月15日の記事です!

本記事ではセーフィーにおけるdriftctlというツールを活用したIaC化推進に向けた取り組みについてご紹介したいと思います。

  • セーフィーのインフラ環境と課題
  • driftctlとは
  • driftctlの使い方
    • 準備
    • スキャンの実行
    • 出力形式の変更
    • .driftignoreファイルによるスキャン対象からの除外
  • GitHub Actions による定期実行
    • ワークフローの解説
  • 取り組みの結果
  • driftctlを使ってみて
    • 良い点
      • カバレッジが出せる
      • 「何をコード管理しないか」をコード管理できる
    • 気をつける必要がある点
      • リソースが多い環境だとrate limit 超過のエラーで失敗する
  • まとめ
続きを読む

AWS Cost Categories でコスト集計作業を効率化

こちらは セーフィー株式会社 Advent Calendar 2022 の 14日目の記事になります。

はじめまして。セーフィーでインフラエンジニアをしている近江です。 セーフィーでは AWS の各サービスごとのコストを詳細に把握するため、"AWS Cost Categories" という AWS のサービスを使用しています。本記事では AWS Cost Categories とは何か、どのようなシーンで活用できるのか、実際の設定方法、気をつけるポイントについて書いていきたいと思います。

  • AWS Cost Categories とは
    • コストカテゴリとは
    • 利用料金
  • AWS Cost Categories を活用できるシーン
  • コストカテゴリの作成とルール設定
    • ルールに継承された値 (INHERITED VALUE) を使用する
  • 気をつけるポイント
    • コストカテゴリで使用できるディメンション
    • OR 条件は root レベルでは使えない
    • コストカテゴリの削除
  • まとめ
続きを読む

AIとローコードツールの組み合わせにプロトタイプ開発の夢を見た

はじめに

こんにちは、セーフィーのイマドです。

この記事はSafie Engineers' Blog! Advent Calendar 13日目の記事です。

セーフィーでは「映像から未来をつくる」というビジョンのもと、AIなどの技術をクラウドや映像と紐付けることでさまざまな業界の不を覆すソリューションを日々模索しています。

そんな折、画像生成AIのStable Diffusionや人間のように自然な対話ができるChatGPTなど、様々な技術がソーシャルメディア上で話題になってきました。実際に使ってみるとその完成度に衝撃を受けたという人も多いのではないでしょうか、私もその一人です。

これらの最新技術は別に雲の上の話ではなく、実は全ての人が少し手を伸ばせば届く距離にあるわけです。

そこである考えが浮かんできました。

世の中にある最新技術や既存の技術要素を部品に見立てて、レゴのように組み合わせることで業界や顧客の課題を解決できる価値を簡単に作れてしまうのではないか… そしてあわよくば、プログラミングとか面倒なことはAIにまかせてしまいたい…

AI「ボクタチ ハタラク アナタ ラクスル」

今回はそんな夢みたいな話を現実にしてくれるかもしれない組み合わせを見つけたのでご紹介します。

それが「対話AIのChatGPTと、ローコードツールPipedreamの組み合わせ」です。 次章からそれぞれを解説していきます。

  • はじめに
  • 各種技術の紹介
    • OpenAI ChatGPT
    • OpenAI API(GPT-3 text-davinci-003)
    • Pipedream
      • WEB上でコーディングが完結する。
      • 価格
  • 15分でAIチャットボットを作ってみる
    • 背景
    • ざっくり構成を考えてみる
    • STEP1:特定のチャンネルで特定の文字列を検知(Slack)
    • STEP2:文字列から必要な部分だけを取り出す(Function)
    • STEP3:回答文を生成する
      • Open AIアカウント設定
      • APIキーの発行
      • Pipedreamの環境変数にAPIキーを設定
      • OpenAI APIへのリクエスト
      • AIにキャラクターを付与する
    • STEP4:回答をスレッドに投下する。
    • テスト/デプロイする
  • 結果
  • おわりに
続きを読む

セーフィーで長期インターンシップを終えて

こんにちは、セーフィー株式会社の23卒、新卒エンジニア職入社予定の伊東です。

この記事はSafie Engineers' Blog! Advent Calendar 10日目の記事です。

私たち新卒一期生は入社前に5ヶ月間インターンシップを行ってきました。 このインターンシップの振り返りをしつつ皆さんにセーフィーという会社の教育環境や会社の雰囲気をお伝えしようと思います。

  • 自己紹介
    • 伊東
      • スキルセット
      • セーフィーを選んだ理由
      • インターンで期待していたこと
    • 土田
      • スキルセット
      • セーフィーを選んだ理由
        • 1.会社と事業のビジョンに共感できる
        • 2.エンジニアとして成長できる環境
      • なぜインターンをしようと思ったか
  • インターンで取り組んだこと
    • Udemy講座
    • チーム開発
      • 1. 仕様書作成(半月)
        • 難しかった点
        • 心がけた点
        • 画面遷移図
        • ER図
      • 2.開発環境構築(2週間)
        • フロントエンド
        • バックエンド
        • ぶつかった壁
        • 心がけたこと
      • 3. 実装(2ヶ月)
        • ぶつかった壁
      • 4. 結合テストとデプロイ(1週間)
        • 結合テスト
        • デプロイ
      • 完成したアプリケーション
        • 1. ログイン画面
        • 2. ユーザー一覧表示画面
        • 3. ユーザー情報詳細表示画面
        • 4. ユーザー情報変更画面
  • インターンで学んだこと
    • 伊東
    • 土田
続きを読む

Safie APIとNode-REDを連携して入退室された方の時間と体温を把握する

こんにちは、セーフィー株式会社 サーバサイドエンジニアの河津です。

この記事はSafie Engineers' Blog! Advent Calendar 6日目の記事、またenebular Advent Calendar 23日目の記事です。

約1年前に、弊社から提供しているSafie APIとNode-REDを連携して、ローコードな仕組みで会議室の空き状況を見る試みを記事にさせていただきました。

engineers.safie.link

今回はその続編ということで、この1年でSafie APIに追加された機能を用いて、部屋に入退室された方の時間と体温を把握するような試みをしてみようと思います。特に体温を取得できるというのは、ご時世的にもかなり需要があるのではないでしょうか。

Safie APIやNode-REDについての説明も上記記事内でさせていただいています。この記事内では説明を省略しますが、もし良ければ上記記事を読んでいただけると、この記事もわかりやすくなるかもしれません!

  • 今回作るもの
  • Safie Entrance2とは
  • フローの解説
    • injectノード
    • functionノード(Safie APIへ送るリクエストパラメータ作成)
    • http requestノード
    • functionノード(Safie APIからレスポンスパラメータを受け取り加工する)
    • slackノード
  • フロー実行
  • まとめ
続きを読む

会社のショールームをスマートホームにしてみた。Advent Calendar (12/5)

Safie Engineers’ Blog! Advent Calendar 12月5日を担当します。yokと申します。

Safie の本社には、「テックステージ」と呼ぶショールームスペースがあります。 (一般公開しているものではなく、打ち合わせなどでご来社いただいた方へのサービス紹介が主です。)

テックステージ

  • スマートプラグ
  • スマートリモコン
続きを読む

セーフィーではなぜフレームワークにFastAPIを採用することになったのか

こんにちは、セーフィーでバックエンドのエンジニアをしております神田です。
今回は、バックエンドのAPIを開発する際に使用しているフレームワークについてお話ししていこうと思います!

  • API開発で使用しているフレームワークの紹介
    • Tornado
    • FastAPI
  • FastAPIを使用するまでの流れ
  • FastAPIの何がよくて採用したのか
    • 速い
    • ドキュメントが自動生成される
  • 実際に使ってみて感じること
    • ドキュメント自動生成が本当に助かる
    • 簡単にデータの堅牢性が保たれる
  • まとめ
続きを読む

AIモデル作成は簡単ではなかった

サーバサイドエンジニアの松木 (@tatsuma_matsuki) です。Safie解析プラットフォームやSafie APIの開発を主に担当しています。

この記事はSafie Engineers' Blog! Advent Calendar 4日目の記事です。

解析プラットフォームでは、学習済みモデルおよびランタイムをSafieクラウド上に登録することで、Safieサービスで録画したカメラの映像・画像に対して、任意の推論処理を実行し、その実行結果をイベントとして保存することができます。

まだサービス公開はされていませんが、まずは社内エンジニアで利活用の推進したいという思いから、Safie解析プラットフォームを利用したアプリケーションの開発を実践しています。

私はサーバサイドのエンジニアで、機械学習の分野には明るくないのですが、今回解析プラットフォーム上でのアプリ構築を一から自力で開発可能にするために、学習済みモデルの作成と推論処理の実装を初めてやってみました!

結果として、なかなか高い精度を出すまではまだ少し時間がかかりそうですが、その作業・開発工程をこの記事で共有したいと思います。

  • 開発するアプリケーション
  • 画像や動画の収集は簡単!
  • 学習(モデル作成)
    • データの分割
    • データの拡張
    • ベースモデルの読み込み
    • 学習の実行
  • 推論処理の実行
  • 精度の評価
  • AIモデル作成は簡単ではなかった
続きを読む

© Safie Inc.