自分が開発したウェブアプリケーションでビジネスを立ち上げたい。
現在、フィリピンに住んでおり、サービス開発を進めています。
そのサービスをビジネスにして、エンジニアとして成功したいと考えています。
フィリピン国内で大規模に採用活動を行っているビジネスをターゲットに、ジョブマッチングを行うサービスの企画・設計・開発を進めています。
日本人の友人のフィリピン人の奥様がビジネスオーナー、日本人の友人が出資者、私が開発担当となっています。
使用技術はLaravel、Bootstrap、AdminLTE、Vue.js、MariaDB、Docker、OWASP ZAPなどです。
一部、クリーンアーキテクチャーもどきを導入して、FatControllerの解決などを行っています。
フィリピンの既存のジョブマッチングサービスはUI/UXがイケていないという問題があります。それを解決するサービスがあれば、特に大規模採用を行っているビジネスに対して、ユーザを獲得できると考えています。
UI/UXを工夫して、現在、実装を進めています。
Gtaxという仮想通貨の損益計算を自動で行うウェブ・アプリケーションに、取引所が提供するAPIから取引情報を自動的に取得してデータベースに保存する機能の開発を担当しました。
開発メンバーはチームリーダー1名、まとめ役1名、フロントエンドエンジニア1名、バックエンドエンジニア2〜3名(1名は私)という体制でした。
使用技術はNuxt.js、Laravel、MySQL、Docker、AWSなどです。プロジェクトがクリーンアーキテクチャーを採用していたので、それに従って実装しました。
ユーザが取引所から取得したACCESS_KEYとSECRET_KEYを保存する際、AWS KMSを使いたいという要望があったため、AWS KMSでできること、運用上、必要になること、決めなければいけないことを調査して、開発チームから運用チームに引き継ぎました。
DockerにAWS KMS環境を追加し、要求された機能とUnit Test、Feature Testを実装しました。
OWASP ZAPというアプリケーションを用いて、脆弱性診断を行い、指摘事項について、修正できるものは修正し、残りは運用チームに引き継ぎました。
マンション管理事業者の組合員向けにメンテナンス予定や駐車場、駐輪場の予約、総会の設定と連絡など、さまざまなサービスを提供するウェブアプリケーションの設計、開発、テストを行いました。
チームは日本側とフィリピン側とで分かれており、日本側がプロジェクトオーナー1名、開発リーダー1名。フィリピン側がプレイングマネージャー1名(私)、フィリピン人エンジニア3名という構成でした。私はプロジェクトオーナーと開発リーダーの下でブリッジエンジニアとして、フィリピン人エンジニアをマネージしつつ、自分でも開発を担当するという立場でした。
使用技術はLaravel、MySQL、Bootstrap、jQuery、AWSなどです。
アプリケーションが必要とする情報を要元がAPIで提供するということだったので、LaravelのQueryBuilderでSQLを組み立てるようにAPIを呼び出すプロキシー層を設計・開発することで、開発効率を高めました。
ブリッジエンジニアとして、フィリピン人エンジニアへのタスクの割り振り、コードレビュー、ペアプログラミング、日本人エンジニアとフィリピン人エンジニアの通訳を担当しました。
古くなったjQuery、Bootstrap、Laravelのアップグレードを行いました。
OWASP ZAPというアプリケーションを用いて、脆弱性診断を行い、指摘事項について、修正しました。
Howdy English Academyでは、マンツーマンレッスンを基本に、グループレッスンも含めた英会話コースを提供しているため、生徒100人と講師100人の授業を組む必要がありました。しかし、エクセルで100×100の授業を問題なく組むことは難しく、先生と講師が重複したり、授業が組まれなかったりするとクレームとなるため、システム化が求められていました。
過不足なく100×100の授業を組むためには、生徒の各種申込情報や講師の情報をデータベース化する必要があるため、大規模なシステム開発となりました。結果として、生徒と講師の時間割だけでなく、学生証の作成や宿泊の部屋割作成、生徒の通知表、卒業証書を出力するなどの機能も開発することとなりました。
開発は私が一人で担当し、フィリピン人スタッフや日本人スタッフへの要望ヒアリング、要件定義から設計、開発、テストまで独力で行いました。
使用技術はLaravel、MySQL、Bootstrap、Docker、AWS EC2、AWS RDSなどです。
一人の生徒を担当する講師をできるだけ固定化したいという要望があったため、入力された生徒の情報から、生徒ごと、時間ごとにスコアを算出し、そのスコアが高い順に生徒×講師の組み合わせを決定するというアルゴリズムを採用し、運用するスタッフが時間割を入れ替えて修正する必要性を極力低減しました。
日々の運用をウェブアプリケーションに落とし込んだことで、運用業務の負荷が低減され、生徒のサポートにより多くの時間を割くことができるようになりました。
運用するスタッフがフィリピン人であったり、日本人のインターンであったりするため、UIを統一し、操作感がぶれないことを重視して実装しました。
フィリピン人エンジニア
技術力と思考力の向上
原因があって、結果があることを理解できるようにすることを目標として、特に業務では、目指すゴールに向かって、逆算して日々の業務を進めていくことを考えるように働きかけました。
フロントエンド・バックエンドを一貫してJavaScriptで開発するということを経験したい。
いろいろなことに対する裁量を与えてもらえれば、必要に応じて相談なども行って、最適解を出すようにします。