Slide 1

Slide 1 text

デスク環境のアイディア探しサービス 「setups.」の技術選定 たかD

Slide 2

Slide 2 text

0 株式会社DINAMICAでテックリー3 0 DINAMICAではバチャナビやToursを開 0 個人でデスク環境のアイディア探しサービス 「setups.」を開発 0 Next.js, TS, Goあたりが好き 0 ドライブ、サウナ、犬と遊んだりすることが好き 自己紹介 たかD @tkd_dev

Slide 3

Slide 3 text

会社紹介 DINAMICAについて

Slide 4

Slide 4 text

会社紹介 DINAMICAのサービス

Slide 5

Slide 5 text

会社紹介 エンジニア募集中! フロントエンドエンジニア、バックエンドエンジニ アを募集しています! ぜひ一度カジュアルにお話しさせてください! Wantedlyが開きます

Slide 6

Slide 6 text

これから個人開発を始めてみたい人、個人開 発の技術選定で悩んでいる人 個人開発における技術選定のアイディアが得 られること ターゲット ゴール

Slide 7

Slide 7 text

結論 個人開発の技術選定は牛丼屋に学べ!

Slide 8

Slide 8 text

目的を明確にし、シンプルかつ安価に持続可能な選択をする 結論 個人開発の技術選定は牛丼屋に学べ!

Slide 9

Slide 9 text

背景とモチベーション 個人開発を始めたきっかけ エンジニアとしての人生を考えたときに、 自分のサービスを何か持ってみたかった Goで開発ができるようになりたかった 既存のサービスではデスク環境のアイディ アを探しづらかった

Slide 10

Slide 10 text

デスク環境のアイディア探しサービス「setups.」 H デスクアイディアで使われているデバイスやガ ジェットの商品ページにシームレスにアクセスで きC H ニッチな領域だけど、熱狂的な人が多い

Slide 11

Slide 11 text

setups.は技術選定に失敗した

Slide 12

Slide 12 text

setups.は技術選定に失敗した 経験がないのに自分が使ってみたい技術を寄せ集めた結果、 開発スピードを思うように出せず膨大なタイムロスが発生してしまった 開発初期のアーキテクチャ Frontend Storage Server Database Authentication

Slide 13

Slide 13 text

setups.は技術選定に失敗した 経験がないのに自分が使ってみたい技術を寄せ集めた結果、 開発スピードを思うように出せず膨大なタイムロスが発生してしまった Frontend Storage Server Database Authentication その結果モチベーションを維持することが困難になり、 さらにタイムロスが発生。 まさに負のスパイラル。 恐らく3ヶ月以上はタイムロスした...

Slide 14

Slide 14 text

モチベーション維持のためにしていたこと デスク関係のブロガーさん、インフル エンサーさんなどに壁打ちをさせても らい、良いFBをもらってニヤニヤする 新しい技術が扱えるようになった自分の 市場価値を想像してニヤニヤする Githubの草を眺めてニヤニヤする 壁打ち 妄想 実感

Slide 15

Slide 15 text

最終的に... アーキテクチャなどには多少の変更を加えたが Goのまま時間をかけて完成させた

Slide 16

Slide 16 text

現在の技術選定の基準 学習コストの低さ ランニングコスト ちゃんと動く 使い慣れた技術か、ドキュメントが 充実しているか 無料枠が利用できたり、 低コストで運用が可能か ユーザーに正しく体験を 届けられるか

Slide 17

Slide 17 text

現在のアーキテクチャ Frontend Server Auth Database Embeddings Storage

Slide 18

Slide 18 text

GCPメインに変更した理由 A 安い8 A 今のところ毎月500円くらB A ドキュメントが充実してい A 先人の知恵が豊富 AWSメインだった時は、リリースすらしていない のに毎月5000円くらいかかっていた。笑

Slide 19

Slide 19 text

Supabaseを選んだ理由 ` 無料で利用できる範囲が広X ` PostgreSQLをDBとして利用できP ` 認証基盤も利用できP ` ドキュメントが充実していP ` コンソールUIがかっこいい(笑) 現在はDBのバックアップのために課金している。 $30/month

Slide 20

Slide 20 text

Cloudflare R2を選んだ理由 4 安い) 4 今のところ無料でたくさんの画像ファイルを 管理できている。

Slide 21

Slide 21 text

Amazon Bedrockを選んだ理由 ` 画像のあいまい検索を実現するために、 Multimodal Embeddingsを生成するた5 ` Titanというモデルを使うことで生成できる いずれGoogle Vision AIに乗り換えるかも

Slide 22

Slide 22 text

個人開発の技術選定における「極意」 牛丼屋から学ぶことができる...w はやい! やすい! うまい! ” 自分の技術スタックの範囲でま ずは最速で作ってみ„ ” テストとかも初期はなくて良I ” ブランチ分けさえしなくて良I ” さっさと作ってさっさとリリー スしてユーザーの反応を見る ” ランニングコストを最小限に抑 えるr ” 継続性こそが個が勝つ道筋。 ” ちゃんと動くr ” かけた労力に対してリターンが 大きいr ” まずは動けば良い。品質向上は 二の次。

Slide 23

Slide 23 text

v フルTSで作るx v インフラはSupabase(or Firebase)にできるだけ任せるx v バックエンドは作らないかも。Next.jsのAPI Routeで十分動くものは作れるx v 動くものを作った上で、Goにリプレイスする。その過程でGoを学ぶx v デザインはAIに作ってもらう。or 作らない(コーディングしながらデザインしていく) もし今自分が1年前に戻ったら...

Slide 24

Slide 24 text

まとめ 個人開発の技術選定は牛丼屋に学べ! はやい! やすい! うまい! @tkd_dev 自分の技術スタックの範囲でまずは最速で作ってみる さっさと作ってさっさとリリースしてユーザーの反応を見る 自分の技術スタックの範囲でまずは最速で作ってみる さっさと作ってさっさとリリースしてユーザーの反応を見る まずは動けばOK かけた労力に対して大きなリターンを目指す