ID:43667さん

3年後の目標や野望


マッチングサービスをリリースし、「地方と都市」の人の繋がりの場を提供したい。

 私自身が地方と都市との人や情報を繋ぐサービス・場の必要性・利便性を強く感じているからです。    地方と都市とでは、ITの人脈や情報の量・取得しやすさにおいて現状大きな差があると考えています。 ・志を持って、地方から上京を考えている人 ・都市から地元へ戻りたいと考えている人 ・心機一転、都市から地方へ出たいと考えている人 などに必要とされるような情報交換の場・人脈作りの場となるサービスを作りたいと考えています。

年収評価シート

プロジェクトカテゴリ
担当工程
経験した職種・役割
あなたが実際に使っていた技術
このプロジェクト詳細は公開されていません

2020年/2年以内

好きな楽曲をシェアするアプリケーション(Golang+Nuxt.jsのSPA)

 Golang + Nuxt.jsで開発しているアプリケーションです。プロジェクト3に記載のオリジナルアプリケーション(PHP/Laravel+Nuxt.jsのSPA)のバックエンドをGolangにリプレイスしました。  Spotifyの無料アカウントを作ってお持ちであれば、Spotifyで曲を検索して投稿することができます。 【アプリケーションURL】 http://your-songs-laravel.site 【Github】 ・https://github.com/kt-321/golang-songs → Golang ・https://github.com/kt-321/nuxt-songs-go → Nuxt.js  実際に業務でGolangを使用している方に、コードレビューしてもらいながら実装を進めています。 【主な使用技術】 ・Golang 1.14 ・Nuxt.js 2.11 ・TypeScript 3.9 ・AWS ・VPC ・EC2 ・Route53 ・RDS for MySQL ・S3 ・ALB ・ECS ・ECR ・Terraform ・AWS Secrets Manager ・ElastiCache(Redis) 【Golangのコード】 ・net/httpパッケージでHTTPサーバーの起動 ・gorilla/muxを用いてルーティング作成 ・ORM用ライブラリGORMを使用 ・sql-migrateを用いてマイグレーション ・パッケージ管理にGOMODULE使用 ・testing パッケージを用いてテストコード記述 ・go-jwt-middlewareパッケージを用いてJWT認証の実装 ・Redigoを用いてRedisの使用 ・HTTPサーバーのgraceful shutdown ・encoding/jsonを用いてjsonのエンコード/デコード ・bcryptを用いてパスワードをハッシュ化 ・GolangCI-Lintの使用 ・デバッグにdelveを使用 構造体にjsonタグを付与することで、APIリクエストがあるとJSON形式でフロントにレスポンスを返しています。 【実装済みの主な機能】 ・ユーザー登録・ログイン ・ユーザー情報の取得 ・ユーザー情報編集 ・SpotifyAPIを用いた曲検索 ・曲の追加 ・曲情報の取得 ・曲の編集 ・曲の削除 ・曲をお気に入りする機能 ・曲の絞り込み ・Redis(ElastiCache)の利用(曲の取得・追加・更新・削除) ・Clean Architectureを倣ったディレクトリ構成 ・テストコード ・Github Actionsを用いた自動テスト ・Github Actionsを用いて、ECR へのimageの自動push, ECS(Fargate)でのコンテナ作成 【現在実装中】 ・多層キャッシュ構造 ・画像をアップロードしてS3に保存する機能 ・CloudFrontの導入 ・Lambda・API Gatewayの導入

2020年/2年以内

不動産紹介支援アプリケーションの新機能追加・パフォーマンスチューニングを含む改修(Python+Nuxt.jsのSPA)

【開発作業について】  <概要>  Nuxt.jsとPython(SSR)のアプリケーションの開発・改修に携わっています。主にはバックエンドにて必要なテーブル・APIの作成・修正を行い、Terraformを用いたインフラ管理やフロントの開発も行っています。 <ECSでのコンテナ管理を導入>  本番環境にて、EC2インスタンスの中でDocker-composeでコンテナを管理していたところを、ECSを用いたコンテナ管理へと変更。 Terraformを使用してコードでリソースの追加・変更を実行。本番以外の環境(develop環境・Stage環境)で本番とほぼ同じ環境を構築して検証を重ねたうえで、本番環境にて実行しました。 <KPI>  KPIを集計する機能を社内で使用している運営管理画面に作成しました。データベースやRedisから必要な値を取ってきてデータベース上の集計用テーブルに保存するというバッチを定期的に実行する形になっており、月ごと・週ごと・日にち毎の値を表示する仕様になっています。  ユーザーのアクセスログは、アプリケーションのダッシュボードにて特定のAPIリクエストが投げられるとRedisに一旦保管しておいて、定期的にスクリプトを実行することでその値をRDSの該当テーブルに保存する形になっています。 <パフォーマンスチューニング >  アプリケーションのパフォーマンスチューニングも行いました。バックエンドの処理で、 ・forループの中でクエリを書いている場合は、できるだけforループの外でクエリを書く形へと変更。 ・外部結合や内部結合を使用して出来るだけクエリを叩く回数を減らす。 ・APIリクエストに対してのレスポンスボディで、不要なフィールドが入っているときにその値を取得する処理に時間がかかっていた。そのため新しいシリアライズの形を作るなどして、ネックになっているレスポンスボディのフィールドを減らすように対応。 といった対応を行いました。 <新規機能開発>  Pythonを使ってDB設計やAPI作成を行ったり、それに伴いNuxt.jsでフロント部分の記述を行っていました。DB設計の際には第3正規化まで意識して作業しています。  バックエンドを中心としながらもフロントも一緒に開発しているため、ユーザーの利便性について考える習慣がついています。 <バグ対応>  アプリケーションでバグが発生している場合は、 ・CloudWatchLogsのログを確認 ・Chrome Developer Toolsの NetworkやConsoleなどを確認 ・データベースの値を確認 ・ローカル環境にてデバッグ作業 といった手順を踏みながら原因を探り作業しています。  場合によっては、RDSのデータベースのデータをdumpしてローカル環境のデータベースに持ってきて、実際に動かしてログを出力して原因を探ります。ロジック変更に伴い既存のデータの値を変更する必要が出たときにはスクリプトを作成しています。 <インフラ>  AWSのマネジメントサービスを用いたインフラ周りについて、Terraformを用いてコードで管理されており、追加で必要になったEC2やSQSなどを追加・変更することがあります。  開発作業においてdevelopの環境をもう一つ欲しいという要望があったことからTerraformにて作成しました。 <コンテナ> EC2上に立ち上げられているDockerコンテナをDocker Composeを用いて管理。 新規に追加・停止・名前変更などの対応を行いました。 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 【開発作業以外でのタスク・アクション】  手を動かしての開発作業と同時に、開発リーダーの役割も担ったおり、チームの開発進捗の管理・調整や後輩のサポートなども行なっています。常に開発全体を見て優先順位を見極めながら作業にあたっています。  営業先の顧客の要望の中で、何にどれくらい時間がかかりそうかというところを一つずつ確認していき、 ・次のフェーズまでにどの機能を実装するか ・そのためにどこから取り掛かるか といった調整を行いました。  営業の方々の意向で一時期2〜3日ペースで開発を進めていたところを、1〜2週間ペースに切り替えることで営業・開発ともにスケジュールを管理しやすくなるよう提案するなど、業務の改善に繋がる点は提案していました。  エンジニアの数が少ないこともあり、私が定期的に参加している交流会や勉強会で出会ったエンジニアの方を面接にお誘いするなど、プログラミング以外でも社内の業務環境の向上になることは積極的に取り組んでいます。  また、社内で定期的に開催されるAWS勉強会にも参加して知識を深め広げ、業務時間外でも学習に積極的に取り組むようにしています。

2019年/半年以内

不動産紹介支援アプリケーションのリリース(Python+Nuxt.jsのSPA)

【開発作業について】  <概要>不動産紹介支援アプリケーションを提供する企業で、Nuxt.jsとPython(SSR)のアプリケーションの開発に携わりました。アプリケーションは2020年始めにリリースされました。 主にはバックエンドにて必要なテーブル・APIの作成・修正を行い、それに合わせてフロントの修正も行いました。 <私の役割> リリース前までは主に物件、顧客、紹介、グループなどのテーブルのDB設計およびそれらを用いたAPIの設計を行い、リリース後は主に、起きているバグに対しログを活用して原因を究明し、APIおよびDBの修正を行ったり、フロント(Nuxt.jsのVuexなど)の変更を行ったりしました。  エンジニアの数が多くなかったことから、バックエンド・フロントエンド両方の実装を行っているため、必然的にユーザーの利便性を考える習慣を得ることができました。  また、サービスのリリース前からプロジェクトにジョインしていたため、営業を含めた要件定義・設計の場にも携わってきました。 【サービスの主な機能】 ①ログイン機能(ユーザー登録は申請を受けた上で自社の運営管理画面で実行) ②物件登録・取得・編集・削除機能/ファイルアップロード機能 ③顧客登録・取得・編集・削除機能 ④物件紹介(紹介時に資料添付・パスワード設定可能) ⑤他のユーザーとグループを作って物件・顧客を共有する ⑥自社で登録したり紹介された物件を地図上で管理 などがあります。 ①「ユーザー登録・ログイン機能」に関して、ユーザー登録の際にバックエンドからアクセストークンを取得しCookieに保存したうえで、それを用いてバックエンドにAPIを投げられるようにしています。  プロジェクト1のアプリケーション「Your Songs」を作る中で、自分で一からアクセストークンを取得しクッキーに保存という形を作りました。実際に自分で一から作ることで、必要な開発手順を理解することができ、その後の業務の理解度・スピード共に向上することに繋げることができました。 ②・③物件・顧客情報の取得・追加・更新・削除のAPIを作成しました。結合・グループ化などを駆使して必要な情報の取得を行い、できるだけforループの中でSQL文を使わないようにすることで、DBへのアクセスの回数を減らして処理時間を減らすことを意識しました。 ④物件紹介時に、「紹介元」の物件情報を元に紹介情報をデータベースに保存しています。 ・「紹介元」の物件情報を元に、紹介テーブルに紹介物件情報を保存。 ・「紹介先」の物件として、物件テーブルに保存。 ⑤複数グループを管理するグループ(親グループ)という概念が存在し、どのグループが管理権限を持つのかといった点をJSONに含めました。物件・顧客と共有は一対多の関係であり、必要な共有の情報を取得するにあたりDBアクセスの回数が多くならないよう結合・グループ化などを駆使してできるだけforループの中でSQL文を使わないように意識しました。 ⑥GoogleMapsAPIを用いて、地図上のピンをクリックすることでそれぞれの物件の情報を確認できるようになっています。物件の絞り込みを行った際にはその情報をCookieに保存することで、別ページへ遷移し戻ってきた場合にも同じ状態で地図が表示されるように実装しました。 【得られたもの】  エンジニアの数が多くなかったことから、バックエンド・フロントエンド両方の実装を行っているため、必然的にユーザーの利便性を考える習慣を得ることができました。  また、サービスのリリース前からプロジェクトにジョインしていたため、営業を含めた要件定義・設計の場にも携わってきました。

2019年/1年以内

好きな楽曲をシェアするアプリケーション(PHP/Laravel+Nuxt.jsのSPA)→Golangでリプレイス済み

様々な年代・世代の人達と好きな音楽をシェアできるオリジナルアプリケーションをSPAで作成しました。 (Laravel、Nuxt.js、TypeScriptを使用) (→Goにリプレイス済み) http://your-songs-laravel.site/ ・趣味を共有できるアプリケーションを今後プライベートでも作っていきたいと考えていたこと ・私自身が周りの人と好きな音楽の話をするのが好きなこと ・業務で使用している技術の理解を深めたい といった理由から作成しました。  2019年、独学でPHP/Laravelを用いてアプリケーションを作成しました。  その後、現職の業務で得た技術を活かすことができる、また業務で使用している技術への理解度を深めるという好循環を生むことができると考え、アップデートを進めてきました。  当時の私は、業務で用いられているAPIおよびNuxt.js/TypeScriptについての理解が浅かったことから、できるだけ多くの経験を積み理解を深めことが必要だと考えていました。  業務時間外にオリジナルのアプリケーションのSPA化に取り組むことで、業務に必要なスキルアップへと繋げました。バックエンド・フロントエンドを一貫して実装すること・ユーザビリティに考慮した実装を心がけることができるようになりました。  DockerにLaradockを用いて環境を作り、サーバーサイドの記述を行いました。  フロント(Nuxt.js)ではサーバーサイド(Laravel Passport使用)からアクセストークンを取得し、Cookieに保存することで、フロントからサーバーサイドへAPIリクエストを投げられるようにしました。  Laravelで作成していたものからSPAへ移行するにあたって、APIを作成してきました。  ALBでアクセス(http;//your-songs-laravel.site)をdistディレクトリ(Nuxt.jsでビルドした際にできる)に向け、パスに/apiがついた場合サーバーサイド(Laravel)に向かうよう、Nuxt.jsのaxiosのbaseURLに設定しました。 【主な使用技術】 <SPAへアップデート後> ・PHP/Laravel ・Nuxt.js ・TypeScript ・CircleCI ・Docker ・AWS ・VPC ・EC2 ・Route53 ・RDS for MySQL ・S3 ・ALB ・docker-compose <SPAへアップデート前> ・PHP/Laravel ・CircleCI ・Docker ・AWS ・VPC ・EC2 ・Route53 ・RDS for MySQL ・S3 ・docker-compose ・Vue.js ・SCSS ・Bootstrap 【機能一覧】 ・曲機能(songモデル) ・曲機能全般 ・ユーザ機能(userモデル) ・ユーザ登録・ログイン機能全般 ・Githubでのログイン機能 ・曲検索機能(新着順・お気に入り数順・コメント数順で並び替え可) ・曲のレコメンド機能(vue-carousel) ・ユーザー検索機能 ・ユーザーのレコメンド機能(vue-carousel) ・タイムライン(フォローしているユーザーの投稿した曲一覧を表示) ・プロフィール画像の保存機能(S3) ・コメント機能(commentモデル) ・投稿、削除、表示 ・フォロー機能 ・フォロー、アンフォロー機能 ・フォロー中のユーザー&フォロワーの表示 ・お気に入り機能 ・お気に入りした曲の表示 ・管理者権限機能(曲の削除、完全削除、回復) ・ページネーション機能

マネージメント能力

新規機能開発・改修作業において、開発メンバーの進捗管理・作業分担および営業サイドとの調整を行っています。
1週間ごとに新規追加・改修した機能をリリースするというスケジュールの中で、営業サイドの希望する形に完成させると同時に、処理速度のようなパフォーマンスにも考慮しながら開発を進めていく必要がありました。
営業の方々の希望する各機能実装の優先度を確認しつつ、開発メンバー内で各作業の工数見積もりを行うことで、各機能実装の優先順位・期限を設定しメンバー内で認識を合わせています。 営業の方の1人には開発の進捗を把握してもらいやすくするため、毎朝の開発ミーティングに参加してもらいました。 新規機能を開発するばかりでなく、処理速度の改善や新しいAWSマネージドサービス採用のような、営業の方々がアプリケーションを動かすだけでは見つけにくい課題・試みにと取り組む日も定期的に必要だ考えました。 2週間に1日は開発メンバー内で挙げた課題に集中的に取り組む日を設けています。 また、メンバー内でコードレビューすることを必須とすることで、ミスの防止とともにメンバー同士での知見の共有が行えるようにしています。

新規プロジェクト立ち上げに際して、開発メンバーの進捗管理・作業分担・調整を行っていました。
約1ヶ月半という開発期間の中で、営業の方々のニーズを汲み取りながら、期間内にプロダクトを完成させる必要がありました。
営業サイドとの実装の認識ズレがないよう仕様の練り合せを行いました。 まずは2週間という期間で一通りの実装を完成させ営業側にチェックしていただき、その上で細かい修正・機能の追加を行っていきました。 毎日ミーティングを実施し、営業の方にも参加していただきました。 週ごとのタスクについて、優先度・作業工数を常に認識合わせしスケジュール調整・作業の振り分けを行っていきました。

アピール項目


アウトプット

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

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

・Kubernetes

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

プロダクトの成功という目標に向けて自発性・自主性を持って動けるメンバーが多い環境。

キャラクター

直近で一番やりたいこと
サービスを作りたい
好きなスタイル
好きな規模
水とプログラミングどっちが大事?
自信を持って人より秀でていると言える点
学習能力 / 問題解決力 / 責任感
スキルのタイプ
得意なフェーズ
会社を選ぶ一番の基準
好きなプロダクトがある
やりたくない分野
SI / 金融 / ゲーム
その他の特徴
新しい技術はとりあえず試す / 起業/創業期のベンチャーにいた / 多職種のバックグラウンドがある
その他のやりたいこと・やりたくないこと
未入力です

やりたい事

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

基本プロフィール

年齢
今年で20代後半
好きな Text Editor
VSCode
希望勤務地
リモート勤務
常時リモートが必要
希望年収
未入力
転職ドラフトに参加して
企業から指名を受け取ろう!
会員登録をして転職ドラフトに参加すると、参加企業から年収付きの指名を受け取ることができるようになります。
会員登録する
ご意見箱

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

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

  • {{error}}
SIGN UPSIGN IN


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