技術力だけでなく、ビジネスの理解度も高く持ち良いサービス開発ができるエンジニアになる。
技術力がないとエンジニアとして良い開発はできませんが、ビジネスの目的を理解することも非常に大切なことだと思います。
なぜならサービスの必要性や目的を考えることで、適切な機能や仕組みを提案できるからです。
技術力だけでなく、ビジネスへの理解度も高いと、エンジニアが提案・開発できるため、生産性も高くなり、より良いサービス開発に繋がるはずです。
しかし、これは技術力があることが前提になります。
そのため、これからはフロント開発だけでなく、バックエンド、インフラの知識・技術を習得し、システム開発の全体を理解する必要があると考えております。
システム開発の全体像を理解することで、エンジニア目線でのビジネスへの提案ができるようになると思っています。
将来的にはフルスタック開発ができ、ビジネスの理解度も高いエンジニアとして活躍したいです。
個別指導塾のwebサイトの新規作成と保守運用
新規ページや既存ページのコーディングを担当。
約11ヶ月間で100ページ以上のコーディングを実施した。
運用していたサイトは主に2つあり、WordPressとGatsby.jsで運用していた。
より顧客を増やすためにデザイナーやマーケッターの方々と案を出し合い、ABテストを実施した。
不要なCSSなどが混合しており、1つのファイルに1万行以上書かれていた。
この課題を解決するために、主に2つの取り組みをした。
既存で運用している、医療系のwebアプリのリニューアル新規開発を9ヶ月間行った。
propsのバケツリレーを許容した開発だった為、可読性や無駄なレンダリング発生の問題があった。
可読性とパフォーマンスを上げるために、propsのバケツリレーをやめるべきだと判断した。
Reduxを導入し、グローバルなステート管理ができる構造に修正したおかげで、propsのバケツリレーをなくすことに成功。
しかし、それだけでは無駄なレンダリングを減らすことに限界があり、コンポーネント設計の見直しとmemo化やuseCallbackを使用する提案をし、パフォーマンスの向上に貢献した。
2名のフロント未経験エンジニアをサポート。
技術面での質問を受け、解説する時に、その技術に対して正しい知識がないとうまく言語化して説明するのは、困難だと感じた。
まずは、自分自身が何となく使用していた技術をおさらいし、理解を深めてから解説するように心がけた。
全体の細かいコードのチェックは、コードレビューを行ないフォローした。
パフォーマンスに問題があり、無駄なレンダリングを極力なくしたい目的があったため、Reduxの導入やコンポーネント設計の見直した。
しかし、それだけではレンダリングを制御するのには限界があった。
そこで、memo化やuseCallbackを取り入れることを発案。
結果、チームで取り入れることに決まり、パフォーマンス面の問題を解決した。
テーマパーク関連webアプリの新規開発を10ヶ月間行った。
テーマパークのチケット販売システム、高速バスの予約、温泉の予約、ホテルの予約、クーポンなど
フロントのディレクトリ設計を1人で担当。
アトミックデザインなどの仕組みを調査し、要素の再利用性を高めるために、最小単位のコンポーネントを使いまわせるように工夫。
プロジェクトの要件に合わせて、調整し、設計した。
結果、ボタンやテキストボックスなどは、再利用できるようになった。
プロジェクトの要件に最適なCSSフレームワークを選定するため、複数のライブラリの公式ドキュメントや技術ブログで仕組みを学んだ。
コンポーネントベースで、CSSを管理したかったのでCSS-in-JSでの記述に決定。
styled-componentsとemotionCSSを比較すると、styled-componentsでできることは、基本的にemotionCSSでも可能だったため、今後の将来性を考慮しemotionCSSに決定した。
SWRを使用することによって、useContextやReduxで管理していたグローバルなステート管理をしなくて済むのでコードの記述が大幅に削減できた。
サーバーから取得したデータをキャッシュに格納できるようになり、fetchの回数を減らすことができるようになった。
銀行のwebアプリのリニューアル新規開発を2023年6月から2023年12月まで行った。
基本設計や画面設計を参照しながら設計。
開発以外の業務は未経験だったため、参考書なども読みながら設計を行なった。
同時に、これまでの開発を通して気づいた、理解しやすい設計書(データベースの詳細元を記述するなど)の作成を心がけた。
チーム内のエンジニアのほとんどがフロント未経験者だったため、技術的な課題をフォローし解決した。
他にも、既存コードより品質向上ができる案があれば、積極的に提案している。
このプロジェクト詳細は公開されていません
より良いサービス開発ができるようになるには、システム全体を俯瞰し、問題の根本的な原因を特定し、解決していくことが重要だと考えております。
特に今後、身につけたい技術はバックエンド周りの技術です。
バックエンドエンジニアの方々と会話をする時に、DB周りやクラウドの知識があるのとないのでは、コミュニケーションの濃さが変わり開発に大きく関わってくると思いました。
今後は、フルスタック開発ができテックリードとして頼られる存在になりたいと考えております。
チーム内でのコミュニケーションが円滑で、意見やアイデアを共有しやすい環境だと問題の解決とスキルの向上ができパフォーマンスが出せると思います。
また、トレンドの技術などを積極的に採用している環境だと、よりモチベーションが上がります。