tags :
A) 今期頑張ったこと(最低3つ、最大5つ)
頑張ったこと(概要・テーマ)
新技術の積極的な採用と持続可能なコードの開発
達成したこと (いつまでに / どの程度)
Reactの知見をReact Nativeに応用し、Androidアプリ開発。 Zustandを用いた高度な状態管理システムを設計。 クロスプラットフォーム対応のデータベースとしてRealmを実装。 関数型プログラミングの原則を適用したアニメーションライブラリを開発。
期末本人コメント
与えられた仕事において、ただ惰性で処理をするだけでなく、新しい技術を積極的に取り入れ、長期にわたって価値のある資産となるコードの開発に努めた。
におい提示装置の製品版アプリ開発では、Webで培ったReactの経験を生かし、アプリケーション特有の複雑な状態管理をZustandを使って効果的に克服した。 また、JSONによるデータ管理から一歩進んで、バックエンド技術への挑戦を決意し、Realmをデータベースとして採用することで、アプリケーションのデータ構造と流れを大きく改善した。
TCSのWebサイトにおいては、頻繁に利用されるアニメーションをライブラリ化し、再利用可能なリソースとして提供した。 関数型言語の原則を取り入れたことで、今後のプロジェクトでも柔軟に活用できる設計を実現できた。
頑張ったこと(概要・テーマ)
チーム開発、情報共有
達成したこと (いつまでに / どの程度)
Androidアプリ開発のテクニカルリーダーとしてプロジェクトを指揮。 運用案件におけるメンバー教育と能力向上を促進。 外部Webデベロッパとの効率的な作業分担を実現。
期末本人コメント
Sonyのアプリ開発では、途中でメンバーが増員されたが、事前に丁寧に設計していたため、新しいメンバーもスムーズにプロジェクトに参加し、迅速に作業を進めることができた。 要件変更などの突発的な課題に対しても、各メンバーに効果的に指示を出すことで、プロジェクトの流れをスムーズに保ち、テクニカルリーダーとしての役割を果たすことができた。
また、この案件での経験がメンバーの技術力向上に寄与し、SkyやGMコーポレーションなどの運用案件などを任せられるようになり、チームの自立性と効率を向上させた。
TCSのWebサイトにおいては、外部Webデベロッパとの作業分担を疎結合な設計で実現し、メンバーが各自の技術領域に集中し、全体としての作業効率と柔軟性が向上した。
頑張ったこと(概要・テーマ)
プログラミングとアートの循環活用
達成したこと (いつまでに / どの程度)
仕事のプログラミング技術とプライベートのアート活動が相互に影響を及ぼすように計画的に実行し、お互いの向上につなげた。
期末本人コメント
業務でのプログラミング技術のクオリティを上げるために、プライベートで行っているアート活動を応用できるよう意識的に実行した。 具体的には、DAWを使用せず、全てをプログラミングで制御・完結できるシステムを構築し、一つの曲を作ると同時に、ライブ演奏やビジュアル生成が可能なシステムを開発した。 使用した技術には、Haskell(TidalCycles)、音の生成にSuperCollider、ビジュアル生成にOpenGLを用いたJitter、ハードウェア制御にMaxが含まれる。 この取り組みは、Haskellをフロントエンドの関数型プログラミングに応用し、OpenGLをWebGL業務に活用するなど、業務とプライベート活動の間で有益な技術的循環を生み出した。
B) スキルアップ(最大2つ)※加点評価
やったこと
Lisp の学習
達成したこと (いつまでに / どの程度)
Emacsの設定をカスタマイズし、制作環境を向上させた。
期末本人コメント
普段の業務で使用しているEmacsの開発環境を向上させるために、「Land of Lisp」というLispの本を読み、理解を深めた。 https://www.oreilly.co.jp/books/9784873115870/
その知識を活かして約3000行に及ぶ設定ファイルを書き上げ、より効率的でカスタマイズされた作業環境を実現した。 この変更により、日々の作業効率が大幅に改善された。 https://gist.github.com/sumisonic/f435f2b8ddffdf7c35c94436b8dcfab6
C) プロジェクト、メイン業務(5つ)(期末に記入)
業務
Sony におい提示装置の製品版アプリの設計
概要・ハイライト
●アプリケーション構成の策定および改善
●クライアントの要件にあわせた技術選定
●フロントエンド開発に収まらないデータベース設計
●BLE端末の仕様書作成
担当した役割
アプリケーションの仕様策定、UX設計、技術選定
期末本人コメント プロジェクト内で達成できたこと 習得した技術など
においの提示方法やクイズ作成など、多様なにおい提示を簡単にカスタマイズできるアプリケーションの設計を担当した。
●プロジェクト構成の改善 技術顧問として、非プログラマーによるプロジェクトの初期構成の問題点を診断し、プログラマーとして実現不可能な部分を特定し、実行可能な形に修正した。 初期構成の問題を解決したことにより、技術的に実現可能で、より効率的なプロジェクト構成を構築することができた。
●クライアントの要件にあわせた技術選定 クライアントの厳しい要件に応じて最適な技術を選定し、アプリケーション開発の効率とパフォーマンスを最大化するよう努めた。 複数人開発においてチームメンバーのWeb技術を活かせるよう、クロスプラットフォーム開発が可能なReact Nativeを使用することを選択し、開発効率とメンテナンスの容易さを確保しつつ、クライアントの期待する機能とパフォーマンスを実現することができた。
●フロントエンド開発に収まらないデータベース設計 ユーザーがカスタマイズ可能な機能の実装のため、データベースの導入が必要であった。 そのため、フロントエンドデベロッパーというロールを超えて、データベースの設計も担当した。 結果、フロントエンドからバックエンドまでをトータルで見ることができたことにより、アプリケーションの全体設計が向上した。
●BLE端末の仕様書作成 BLE端末の詳細な仕様書が存在しなかった、または仕様書の一部が間違っている状況の中、実際の端末と通信を行いながらデバッグを進め、正しい仕様書を作成した。 この作業により、クライアントは以前は認識していなかった端末の正確な仕様を把握することができ、その結果、アプリケーションの信頼性と機能性が大幅に向上し、クライアントにとって大きな価値を提供することができた。
業務
Sony におい提示装置の製品版アプリケーションの実装
概要・ハイライト
●複数人開発のテクニカルリーダー
●堅牢なプログラミング設計
●効果的なドキュメントの作成
●柔軟な対応と工数の最適化
担当した役割
プロジェクトのテクニカルリーダーとして、設計、実装、ドキュメント作成、およびクライアントの要件変更への対応を主導。
期末本人コメント プロジェクト内で達成できたこと 習得した技術など
●複数人開発のテクニカルリーダー 複数人開発のテクニカルリーダーとして、これまでのBLE開発とアプリケーション開発の経験を活かし、過去の類似案件であるJINS MEMEよりも複雑なアプリケーションを比較的短期間で開発することができた。
●堅牢なプログラミング設計 このプロジェクトでは、私がhaskellを学ぶことで得られた知見を活かし、関数型プログラミングというプログラミングスタイルを導入した。 このスタイルは、プログラムがより予測可能で、エラーが少ないことで知られており、このアプローチにより、ソフトウェアはより信頼性が高く、保守が簡単で、将来的に拡張する際にも柔軟に対応できるようになった。
●効果的なドキュメントの作成 製品化されるアプリケーションのためコードに詳細にドキュメントを書くように努めた。プロジェクトの途中から新規でメンバーが参加することになったが、このドキュメントにより、迅速にプロジェクトに適応し、効率的に作業を進めることができた。結果として、チーム全体の生産性が速やかに向上し、プロジェクトの進行に貢献した。
●柔軟な対応と工数の最適化 プロジェクト期間中にクライアントからの度重なる追加要件と仕様変更が発生し、一部工数のオーバーが不可避だった。 しかし、リソースの管理とタスクの優先順位付けに特に注意を払うことで、これらの変更に柔軟に対応し、工数のオーバーを極力減らすことに成功した。 またこれらの要件仕様変更は、関数型プログラミングを導入したことで、プログラムの予測可能性が向上し、仕様変更にも迅速かつ効率的に対応できた。 このアプローチにより、プロジェクトの効率を保ちつつ、クライアントの要求に迅速に応えることが可能となった。
業務
TOKYO CREATIVE SALON 2024_WEBサイト制作
概要・ハイライト
●複数人開発における効果的な設計
●汎用的なアニメーションライブラリの開発
担当した役割
WebGLの実装、プロジェクト全体の設計
期末本人コメント プロジェクト内で達成できたこと 習得した技術など
●複数人開発における効果的な設計 このWebサイトプロジェクトで、WebGLの実装を担当し、他のメンバーはDOM部分を実装した。 チームメンバーが主にWeb開発のスキルを持つ中、Web以外のより広いアプリケーション開発経験を活かして、プロジェクトを疎結合な設計で実現した。 このアプローチにより、各メンバーが自身の技術領域に集中できるとともに、チーム間の依存関係を最小限に抑え、全体としての作業効率と柔軟性を高めることができた。
●汎用的なアニメーションライブラリの開発 特定のパスに沿って動くアニメーションを実装するためのプロジェクトを担当したが、単に機能を実装するだけではなく、将来のプロジェクトで再利用可能な汎用的なライブラリを作成した。 このライブラリはnpmで公開し、その使用方法と機能について詳細なドキュメントも制作した。 このライブラリにより、開発者は簡単にカスタマイズ可能なアニメーションをプロジェクトに組み込むことができるようになり、同様な要件を持つプロジェクトに対して、コードの再利用と開発効率の向上させる貢献を果たした。 https://www.npmjs.com/package/@sumisonic/find-point-on-path https://codesandbox.io/embed/github/sumisonic/find-point-on-path-example/main
業務
Webサイト運用業務
概要・ハイライト
SkyやGMコーポレートサイトなど、以前に制作した長期運用のWebサイトの運用と管理。
担当した役割
Webサイトの日常運用管理と、機能の追加対応。
期末本人コメント プロジェクト内で達成できたこと 習得した技術など
昨年度以前に制作した長期に渡るWebサイトの運用業務(SkyやGMコーポレートサイト)では、設計をちゃんと作っていたため、効率よく運用ができた。 特にGMコーポレートサイトのAPIの機能追加にもスムースに対応できた。 またメンバーの技術向上にも貢献した結果、チーム全体の運用効率が向上した。
プロジェクト、メイン業務以外の業務(最大2つ)(期末に記入)※加点評価
業務
zenn での blog 投稿
概要・ハイライト
自作ライブラリ解説と、関数型プログラミングを活用したフロントエンド問題解決法の提示。
期末本人コメント プロジェクト内で達成できたこと 習得した技術など
自作ライブラリ「@sumisonic/find-point-on-path」の詳細解説を行ったブログ投稿。 ライブラリの解説だけでなく、関数型プログラミングの原則を活用してフロントエンド開発の特定の問題を解決する方法を説明した。 フロントエンドの分野での関数型プログラミングの例が少ない中、その実践的な内容をTypeScriptと関数型ライブラリfp-tsを使用した具体的なコード例を元に示した。 この取り組みがフロントエンド分野での関数型プログラミングの理解と応用に貢献できたのではと考えてる。 https://zenn.dev/sumisonic/articles/f30fff9e887e14