ID:78060さん

3年後の目標や野望


プログラミングで日本を平和にしたい。

私は、譲り合い助け合いの精神が息づく日本の良さを取り戻したいと考えています。最近は、炎上やいじめといった悪意に満ちたニュースが多く、心が痛みます。数年間海外に住んだ経験からこそ、日本の良さを強く感じています。私が開発しているスマホアプリは、悪口で傷つく人を減らし、誰もが安心して生きられる社会を作ることを目指しています。少しでも、世界中の人々が生きやすい環境を作るために、アプリや会社での業務を通じて貢献していきたいです。そして、その目標を実現するためには、技術面でのリーダーシップを発揮することが重要だと考えています。私は少なくとも5年後にはテックリードとして、チームの成長を支援し、品質の高いシステムを作る役割を担いたいです。コードレビューを通じてチーム全体の技術力を向上させ、アーキテクチャ設計や技術選定をリードすることで、より多くのエンジニアと協力して、より良いサービスを生み出していきたいと考えています。最終的には、私の技術とチームの力を合わせて、アプリや会社での業務を通じて日本や世界にポジティブな影響を与える社会を実現することが私の目標です。

プロジェクト経験

2024年/1年以内

SNSネイティブアプリ開発(個人開発)

## SNSアプリ開発 Androidアプリ開発は学習期間は設計などの学習を含め2ヶ月(2024年5月、6月) アイデア出しから設計までで3ヶ月半(7月〜10月) 実装で4ヶ月です。 <!-- 読んだら何がわかるようになるのか、何ができるようになるのかを書きましょう。 --> ## アプリの紹介 ### サービス概要 このアプリは、悪口や意見を投稿し、反論を受けて「いいね」の数で実質的な勝敗が決まる議論型SNSです。 他のアプリやサイトで蔓延る悪口やアンチコメントをこのアプリに限定したいと考えています。 悪口を言われている人が見える範囲から隔離することで、傷つく人を減らすことができます。 見たい人だけがインストールし、見たくない人は避けることで、無意識に傷つくことを避けられます。 #### ▼インストール方法 まだ内部テスト中ですので、以下リポジトリと同様にメールにてgmailをお伝えください。招待いたします。 #### ▼GitHubのリポジトリ ポートフォリオとしておりますが、今後サービスとして運用する予定なのでプライベートリポジトリとなっております。 そのためお手数ですが、人事の方はgitのアカウントをメールにてお伝えいただければ招待いたします。 ryo.hasegawa.work@gmail.com ### 開発背景 私はアンチコメントに苦しむ配信者やXで見たくもない悪口を見た時に胸が苦しくなります。 そのためどうしたら悪口を減らせるかとよく考えていました。 しかし結局、悪口を無くすことはできないという結論にいたりました。 ではせめて悪口を隔離して傷つく人を減らせないかと考え、開発することにしました。 ### 意識したこと できる限りこのアプリ内では悪口を言ってもらいたく、設計の段階で選択を迫られることがでた場合はよりアプリがカオスになるように選択しました。 例えば普通のアプリでは投稿などは削除することができません。 現実で言ってしまったことは取り消せませんよね。 ### メイン機能の使い方 |悪口を投稿する|悪口に反論する|討論を閲覧、コメントする| |---|---|---| |<img width="230" alt="VenTal GIF 2025年2月26日.gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3913183/60d31b91-3a44-4aab-8c19-8d2481845844.gif">|<img width="230" alt="VenTal GIF Feb 26 2025 (2) (1).gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3913183/cd7d5c58-f876-46c0-8bfc-852a22c7359e.gif">|<img width="230" alt="VenTal Video Feb 27 2025.gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3913183/2e6b095a-a08f-4854-bf2d-90e848f93d62.gif">| |まず下の+ボタンを押して、作成画面へ。ストレスが溜まっていることや普通に悪口を記入して送信ボタンを押す|他人の悪口はボトムバーの左から2つ目の画面で閲覧可能。右にスライドでいいね。左にスライドで反論作成画面へ。記入して送信すればVSがスタート|VSはタイムラインに流れます。いいねは2人のうちどちらしかいいねできません。VSにメッセージを送れるのは参加者の2人のみ。コメントは全員できます。| ![]() ## 要件定義 SNS開発 Vental 要件定義 ※モデリングもあるので最重要ポイントだけに絞っています #### ■アプリ概要 悪口や意見などを投稿して、他のユーザーから反論があれば全ユーザーが閲覧するタイムラインに表示され二人のユーザーでいいねの数を比較する。 実質的に優劣がつく #### ■アプリを作る背景 YouTubeのコメント欄などでで喧嘩したり誹謗中傷している人を減らしたい ストレスの吐口になるアプリにしたい コメントで優劣がつけられずはっきりさせたい 他のSNSでは悪口を言いづらい #### ■現状の問題点 クラウド・セキュリティの知識が薄い #### ■目指すゴール 3年で月間利用者数平均500万人を作る リリース後6ヶ月で 月間利用者数 20万人 リリース後12ヶ月で 月間利用者数 50万人 リリース後24ヶ月で 月間利用者数 100万人 リリース後36ヶ月で 月間利用者数 500万人 #### ■クリアすべき課題 システムのセキュリティを強化 Udemy・書籍 で学習する セキュリティ面のテストを行いブラッシュアップ マーケティング、集客 1年目:売上 1,000万円 2年目:売上 2,000万円 3年目:売上 5,000万円 4年目:売上 7,000万円 5年目:売上 1億円 #### ■システム開発のポイント ユーザー目線 安心してアプリを利用できる シンプルに使えてアプリがごちゃごちゃしていない 悪口を言いやすい環境 適度なストレスと解放感を感じることができる ビジネス目線 犯罪を助長する投稿やコメントは通報してもらって適切な対処ができるようにする ユーザーの年齢層と性別を統計でき、アプリのブラッシュアップに繋げられる #### ■開発予算、スケジュール 予算:50,000円 スケジュール(最初違うアプリ想定していたので記載の名前違います) ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3913183/556cec97-fc2d-4928-930d-3b4cd558a93f.png) ## モデリング qiitaにdrawioを開けるURLがございます。 ポートフォリオの記事をご参照ください。 内訳 ・ユースケース図 ・状態遷移図(未使用) ・アクティビティ図 ・ドメインモデル ・ちょっとした概念のメモ ## 基本設計 <!-- 章全体の要約や、何について書くのかをここに書きます。 記事が長い時や資料として作るときは番号を振ることをおすすめします。 章を増やすときは章から項までをコピーしてください。 --> こちらもqiitaにdrawioを開けるURLがございます。 ポートフォリオの記事をご参照ください。 内訳 ・機能設計(画面遷移図と画面詳細) ・ER図 ・データフローダイアグラム <!-- 記事の主要な部分です。ここに思い思いの内容を書いていってください。 画像やGIFがあると分かりやすいです。 画像があるとUIが変わったとしても読者がアタリをつけて対応しやすくなります。 コードを記載する場合は必ずコードブロックを使いましょう。 バッククオート3つで囲んでください。 ```python:表示名 print('Hello World') ``` --> ## 詳細設計 機能一覧 https://drive.google.com/file/d/1iEn-RsRa66e3Oa47MsSZ2zD8mZfdOOJG/view?usp=sharing こちらもqiitaにdrawioを開けるURLがございます。 ポートフォリオの記事をご参照ください。 内訳 ・ロバストネス図 ・シーケンス図 ## インフラ構成図 ![構成図.drawio.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3913183/18433680-edec-4c5c-a81f-2f2df244ba5f.jpeg) ### NoSQL設計(元々はRDB想定だったので上の方ではER図を紹介しています。) ``` users: # collection - user_id: "user123" user_name: "山田太郎" user_imageURL: "https://example.com/image123.jpg" self_introduction: "はじめまして!スポーツが好きです。" new_user_flag: "true" following: # collection - followingUserId: "user456" follower_count: 120 user_created_datetime: "2024-01-10T10:00:00Z" age_group: "20-29" gender: "male" account_closing_flag: false liked_SwipeCards: # collection - swipeCard_id: "card789" - liked_date: "2024-01-10T10:00:00Z" skipped_SwipeCards: # collection - swipeCard_id: "card678" debating_swipeCards: # collection -swipeCard_id: "card789" liked_discussions: # collection - discussion_id: "discussion456" user_type: "poster" # いいねしたユーザーがposterかdebaterか notifications: # collection - notification_id: "notification123" link_id: "discussion456" #TODO これだとユーザー情報が変更されたときに対応できない。たぶんidだけが正解 action_user_name: "佐藤花子" # お知らせの内容 action_user_imageURL: "https://example.com/image789.jpg" # お知らせの内容 action_user_id: "kdkkjojd", timestamp: "2024-11-03T12:00:00Z" # ISO 8601形式での日時 type: "comment" # お知らせの種類 read_flag: false # 既読フラグ swipeCards: # collection - swipeCard_id: "card123" poster_id: "user123" # TODO: 冗長。以下2行はCloudFunctionsを使用してユーザー情報更新時に更新する予定。なしなら削除 poster_name: "山田太郎" poster_imageURL: "https://example.com/image123.jpg" swipeCard_content: "これは私の投稿です!" swipeCard_imageURL: "https://example.com/card123.jpg" likeCount: 45 tags: # array - tag: "school" - tag: "game" swipeCard_report_flag: false swipeCard_deletion_request_flag: false swipeCard_created_datetime: "2024-11-01T10:00:00Z" debates: # collection - debate_id: "discussion456" swipeCard_id: "card123" swipeCard_imageURL: "https://example.com/card123.jpg" poster_likeCount: 10 # TODO: 冗長。以下3行はCloudFunctionsを使用してユーザー情報更新時に更新する予定。なしなら削除 poster_id: "user123" poster_name: "山田太郎" poster_imageURL: "https://example.com/image123.jpg" debater_id: "user789" # TODO: 冗長。以下2行はCloudFunctionsを使用してユーザー情報更新時に更新する予定。なしならIDのみ保持 debater_name: "佐藤花子" debater_imageURL: "https://example.com/image789.jpg" debater_likeCount: 5 first_message_content: "基礎みたいなもんだろ" first_message_imageURL: "https://example.com/card123.jpg" debate_report_flag: false debate_deletion_request_flag: false debate_created_datetime: "2024-11-02T15:00:00Z" # TODO: sender,debater側の視点では右寄左寄せは変えたいので、userTypeだとそれができないと思ったが、討論のほうで照合すればいいのか messages: # collection - message_id: "message123" userType: "debater" # posterかdebaterか message_content: "それは面白いですね!" sent_datetime: "2024-11-02T16:00:00Z" comments: # collection - comment_id: "comment123" commenter_id: "user789" # TODO: 冗長。以下2行はCloudFunctionsを使用してユーザー情報更新時に更新する予定。なしならIDのみ保持 commenter_name: "佐藤花子" commenter_imageURL: "https://example.com/image789.jpg" comment_content: "そうですね!" commented_datetime: "2024-11-02T16:05:00Z" #withdrawals: # # collection # - withdrawalDate_userId: "2024-10-01_user123" # reason: "個人的な理由" # reLoginDate: "2024-10-20" withdrawals: # collection - userId: "user123" withdrawalDate: "2024-10-01" reason: "個人的な理由" reLoginDate: "2024-10-20" tags: # collection #IDはいらないかも #まだ実装できてない - tagId: "tag001" tagContent: "スポーツ" usedCount: 100 - tagId: "tag002" tagContent: "音楽" usedCount: 5 # TODO ここにdeviceTOkenありじゃね notificationSettings: # collection -userId: "user123" debateStartEnabled: true messageEnabled: true commentEnabled: true reports: # 通報の親コレクション debates: # 議論に関する通報親コレクション debateId: # 各議論に関する通報コレクション - reporterId: "user789" reason: 1 reportedDateTime: 2024-01-10T10:00:00Z deleteRequests: #削除依頼の親コレ debates: #討論の削除依頼 debateId: #討論ごとの削除依頼コレ - requesterId: "user789" contentId: userType: "poster" reason: 3 requestedDateTime: 2024-01-10T10:00:00Z notificationsLog: #将来入れるかも ``` ## 選定技術の採用理由 <!-- https://qiita.com [リンク1](https://qiita.com) --> #### FirebaseかAmplifyか ・Firebaseは無料枠が大きいので、予算5万ということを加味しました。 ・udemyでFirebaseを組み合わせている講座が多く、学習コストが安いと考えました。 ・Amplifyの方がスケーラビリティや大規模になった際のコストは良いと思いましたが、このアプリの目標ユーザー数の推移が緩やかであるので推移に合わせて移行することもありかと考え、初期構築コストを優先しました。 #### なぜRDBではなくNoSQL? 実はこのアプリの前にJava、spring bootでTODOリストを作成した際にRDBを使った上に、DBAシルバーとSQLシルバーの資格も取っていたのであえてNoSQLを選びました。 設計段階ではRDB以外考慮していなかったのですが。 #### Kotlin このアプリ作成の直前までJavaを使っていたので、Javaに似ているというか進化系のようなKotlinを使ってみたかったからです。 ## ポートフォリオ作成までに学習したこと ### Udemy ・【超初心者向け】【システム開発の流れから学ぶ】エンジニアとして活躍するための知識・スキルを明確化!【現場を知る】 ・【入門】システム要件定義と基本設計(実践ワークで理解する上流工程の進め方) ・【超実践】ビジネス要件分析・基本設計・詳細設計をやり抜く実践ワーク講座 ・はじめての Kotlin【Java 知らなくてOK!丁寧な解説で Android に必要な Kotlin の基本を学習】 ・Udemy The Complete Android 14 & Kotlin Development Masterclass ## アプリ作成の進め方 #### 1.アイデア出し なるべく誰かのためになるようなアプリ、経験できる機能を網羅できることを意識しました。 #### 2.要件定義 以降の設計で判断を迫られた際に基準となるように使用するユーザーの層やアプリの方向性を決めました。 実際に若い層を想定していたので丁寧すぎず、シンプルに若い層が直感的に使えるような設計を心がけていました。 #### 3.モデリング ・ユースケース図 ・状態遷移図(未使用) ・アクティビティ図 ・ドメインモデル ここでかなりアプリのイメージが沸きました。 ユースケース図の段階で何ができて、何をできないアプリにするかを考えられたので基本設計をスムーズに進められました。 #### 4.基本設計 ・機能設計(画面遷移図と画面詳細) ・ER図 ・データフローダイアグラム 実装では特に機能設計が重宝しました。 画面遷移図を丁寧に作成したので詳細設計で楽できたと思います。 #### 5.詳細設計 ・機能一覧 ・ロバストネス図 ・シーケンス図 ここまで必要かと思われる方もいるかと思いますが、実際作ってみると要件漏れなどが多く見つかり全体の質がかなり上がりました。 #### 6.コード実装 ただ一言。 「楽しい」 エラーが出ても楽しい。 自分が設計してきたものが形になって手で触れることがとても幸せでした。 #### 7.テスト まだ終わってません... ## おわりに <!-- どちらかを書きます。あってもなくても良いです。 --> ポートフォリオを作成される方には、ここまで綿密に設計することはあまりおすすめしません。途中で心が折れてしまうかもしれません…(笑)。 私は「1からすべて自分でやってみたい」という思いが強かったので、しっかりと設計に取り組みましたが、正直なところ、経験が足りずに設計の半分以上が無駄になってしまった部分もありました。ただ、それも覚悟の上で進めていたので、大きな問題ではありませんでした。 設計の段階では、理解しきれていないまま進めることも多かったのですが、その過程で要件の抜け漏れに気づくなど、多くの学びがありました。また、次の設計工程に進むことで、前の段階で行ったことを後から理解できるようになり、何度も修正を繰り返していました。 そうした試行錯誤の積み重ねがあったからこそ、今回のアプリではある程度、責務を意識して作ることができたのではないかと思っています。 時間は思った以上にかかってしまいましたが、実際に形になり、手で触れられるようになったときの感動は何にも代えがたいものがあり、とても良い経験になりました。

2024年/1年以内

TODOリスト

## プロジェクト概要 ### 目的、背景 本プロジェクトでは、TODOリストアプリケーションを開発しました。目的は、タスク管理の効率化を目指すシンプルなアプリケーション開発を通じてCURDアプリケーションの作成手順を網羅することです。バックエンドはJava Spring Bootを使用し、データベースにはMariaDBを採用しました。フロントエンドはHTMLとCSSでシンプルなUIを実装し、直感的な操作を可能にしました。タスクの追加、削除、更新、一覧表示の機能を実装し、ユーザーが簡単にタスクを管理できるようにしました。 ### 規模感、チーム構成、担当した役割 - **チーム構成**: 会社の研修なので一人で開発を行いました。 - **担当した役割**: バックエンドの設計・実装、フロントエンドの実装、手動テストの実施 ### 使用技術や開発環境等 - **バックエンド**: Java (Spring Boot) - **データベース**: MariaDB - **フロントエンド**: HTML, CSS - **開発環境**: Eclipse, Git, - **テストツール**: 手動テスト(DBにデータ入力し、画面で実際に動作確認) --- ## 取り組んだ課題 ### どんな課題だったのか 1. **詳細設計**: 基本設計をもとに詳細設計を行いました。タスク管理に必要な項目(タスク名、期限、ステータス、優先度など)をどのようにデータベースで管理するかを検討し、効率的なテーブル設計を行いました。 2. **コード実装**: Spring Bootを使用して、タスクのCRUD操作(作成、読み取り、更新、削除)を行うための機能を実装しました。フロントエンドでは、HTMLとCSSでシンプルで直感的に操作できるユーザーインターフェースを構築しました。 3. **テスト実施**: 手動でDBにデータを入力し、画面で動作を確認する形でテストを行いました。特に、タスクのCRUD操作が正しく機能するかどうかを重点的に確認しました。 ## 取り組みの成果 - **機能実装の完成**: タスクの追加、編集、削除、一覧表示機能を全て実装しました。タスク管理をシンプルに行えるシステムを提供し、ユーザーの利便性を向上させました。 - **ユーザビリティ向上**: シンプルで直感的なUIを実装し、ユーザーがストレスなくタスクを管理できる環境を提供しました。 - **手動テストの実施**: 単体テストや結合テストを手動でテストケースを作成し、DBにデータを入力した後、実際に画面で動作を確認しました。これにより、ユーザーインターフェースとバックエンドの連携を細かく確認しました。この経験から境界値などのテストの基本的な必要事項を学ぶことができました。 ---

マネージメント能力

アピール項目


アウトプット

GitHub アカウント
あり
Qiita アカウント
あり
Zenn アカウント
未入力です
Speaker Deck アカウント
未入力です
SlideShare アカウント
未入力です
特にアピールしたいアウトプット
あり

今後、身につけなければいけないと思っている技術は何ですか?

・IOS、Flutterでのアプリ開発 ・テスト駆動開発 ・AWS ・アプリのパフォーマンス向上 ・クリーンアーキテクチャやデザインパターンの実践 ・コードレビューを通じたチームの技術力向上 ・パフォーマンス最適化やスケーラビリティやセキュリティを意識した設計 ・CI/CDやテスト自動化による開発効率の向上 ・技術選定やシステムアーキテクチャの設計 ・高負荷環境への対応やシステムの拡張性向上 ・カンファレンスへの登壇

あなたが一番パフォーマンスを出せるのはどんな環境ですか?

未入力です

キャラクター

直近で一番やりたいこと
技術を極めたい
好きなスタイル
好きな規模
自信を持って人より秀でていると言える点
学習能力 / 分析力 / 問題解決力
スキルのタイプ
得意なフェーズ
会社を選ぶ一番の基準
一緒に働く人
やりたくない分野
未入力です
その他の特徴
未入力です
その他のやりたいこと・やりたくないこと

モバイルアプリ開発

やりたい事

手を動かして設計してコードを書きたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
価値あるプロダクトを作り成長させたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
学び続けて技術力でプロダクトに貢献したい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
意義があることや社会に貢献できる仕事がしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
人や計画の調整・マネジメントをしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
レガシーなシステムの保守・運用・改善をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
企画や仕様を考えるところから関わりたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
業務効率を改善して一緒に働く人のためになりたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
全社横断的な共通基盤作りや強化をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
組織や文化を作る・成長させる仕事をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい

基本プロフィール

年齢
今年で20代中盤
好きな Text Editor
Android Studio, IntelliJ, Atom
希望勤務地
東京都 / リモート勤務
家庭の事情や体調など、都合に合わせてリモート出来れば問題ない
希望年収
未入力
転職ドラフトスカウトに参加して
企業から指名を受け取ろう!
会員登録をして転職ドラフトスカウトに参加すると、企業から年収付きの指名を受け取ることができます。
会員登録する
ご意見箱

要望、不具合報告、使いづらい点や感想など、お気軽にお寄せください。
いただいたご意見は、今後のサービス向上に活用させていただきます。

なお、このフォームは受付専用のため、返信を行っておりません。
返信を希望する場合はお問い合わせよりご連絡ください。

  • {{error}}
SIGN UPSIGN IN


転職ドラフトを友人や同僚に薦める可能性はどのくらいありますか?