| Key | Value |
|---|---|
| Name | 廣江 亮佑 |
| ride.poke@gmail.com |
職種: バックエンドエンジニア
Ruby Ruby on Rails RSpec CircleCI GitHub Actions Docker DevContainer MySQL Redis Sidekiq
Railsでの0->1でのAPI開発を行いました。セキュリティー要件を満たしながら、インターフェースの異なる複数の銀行APIに対応した振込システムの実装を行なっています。技術選定、設計、実装と一通り携わりました。このプロジェクトに対しては最もコミット数が多いです。
テストカバレッジは100%をキープしています。もちろんテストができない(不要な)場所もあるため、テストが不要な旨を明記してカバレッジ対象外としながら、必要なテストが漏れなていないことを担保しています。
開発初期段階で、DevContainerでの開発環境を整備しました。型システム周りの準備であったり、環境変数の準備やステージング環境へのアクセスに必要なソフトウェアのインストールなど、devsontainer openのワンコマンドで全てが完了します。
SteppでStrictに加えカスタムでいくつか検査項目を追加したものを設定し、厳密な型検査を行なっています。実装の90%以上に正確な型コメントが書かれています。この恩恵もあり、本番環境ではリリース以降一度も実装ミスによる500番台のエラーは発生していません。
RubyやRailsの開発バージョンでのCIをデイリーで回しています。これにより次回バージョンでエラーになる箇所を先回りして修正したり、RubyやRailsのコミュニティーにバグレポートをフィードバックしたりできています。
2023年にjoinし、まず初めにクライアント情報の管理ツールをHubSpotからSalesforceへ移管する作業を行いました。冪等性を持たせリトライが可能なよう実装し、外部システムとのやりとりをエラーなく行えるよう再設計・リファクタリング・実装しました。
請求ドメインのインボイス対応を行いました。インボイス制度の導入により消費税計算のタイミングが変わり、それによって利用明細や請求予定額・請求書に影響が及びます。これらの金額がインボイス制度導入後のものとして正確な値を表示するようシステムを改修しました。こちらは暫定的な対応となっていますが、今後インボイス制度が廃止される可能性も見据え、インボイス制度の有無や税率の変更に柔軟に対応できるよう売り上げ単位での消費税額はdecimalで持つなどデータベースレベルからの再設計も進めており、パフォーマンスを向上しつつ安定性と拡張性を備えた請求ドメインの再実装を計画しています。
クライアントの支払い状況による利用制限の実装を行いました。過去の支払い状況・現在の利用状況・これまでの利用実績などを加味し、支払いの遅延や一定以上の急激な利用料の上昇などを検知し、利用制限をかけることで、自社の損失リスクを抑える役割を果たしています。これに関連し、クライアントの利用状況を計測するための実装をリファクタリングし、パッケージとして切り出すことで、どこからでも利用しやすく、また仕様の把握が行いやすいような見通しの良いものとなりました。
Rubyに型検査の仕組みが登場したため、RBSとSteepの導入しました。コード量が多いため、いきなり十分な型検査を行うことが現実的ではなかったため、まずはコード補完が行われるようになるという恩恵を受けるために導入しています。その後継続的に少しずつ型情報を追加しており、2025/5 時点では8割程度のコードに対して型検査を実行できるまでになりました。
ワーカーへの給与振込の遅延リスクを低減させるため、利用する銀行APIを追加しました。インターフェースの異なる複数の銀行APIに共通のロジックで対応できるよう、適切なアダプタを用意し、今後もいつでも他銀行のAPIの追加を容易に行えるように設計・実装しました。これに関連し、銀行APIを直接叩くようなロジックを一部切り出し、サブシステム化しています。
その他いくつもの新規機能の設計・実装を行なっています。
職種: Webアプリケーションエンジニア
Ruby Ruby on Rails RSpec CircleCI Slim AWS EC2 AWS S3 Heroku PostgreSQL
プログラミング未経験からの1社目です。バックエンドからフロントエンドまで全てRailsで実装されているシステムの開発を行なっていました。
入社して間もない頃は、テストが不足しているところにテストを書くという作業をしており、RSpecを用いてModelSpecの単体テストからControllerSpec(後にRequestSpecへ置き換え)、FeatureSpec(後にSystemSpecへ置き換え)と順に追加しています。カバレッジは計測していましたが、もともと低かったため、現在より下がっていなければそれほど意識していませんでした。
1年ほど経過し、開発に慣れてくると新規機能の開発や諸先輩型のコードレビューなどが業務に追加され、真っ当なソフトウェアエンジニアとしてのスタートを切りました。Railsチュートリアル以上の知識が大きく欠落していたため、都度調べたり勉強したりで必死について行っていました。特にSQLへの知識が大きく欠落していたため、それを補うためにプライベートの時間を費やしました。具体的に特質するような実績はありません。
2020年頃からはRubyやRailsのバージョンアップやライブラリのバージョンアップを精力的に行なっています。Rubyは2.4 -> 2.7、Railsは4系から6系までのアップデートを行なっています。この作業を行ったおかげで人並み以上にはRubyやRailsの機能に詳しいです。
2021年にはフロント画面のレスポンシブ対応を行いました。もともとPCやタブレットから利用されることが前提のシステムでしたが、時代の流れの中でスマホから利用するというクライアントも増えたため対応しています。もともと書かれていたjQueryをこのタイミングでpurejsに書き換え、レスポンシブな画面は sass を全画面書いて対応しています。レスポンシブ対応に関してReactなどを利用しておらず、この作業の中でCSSとJavaScriptの学習を行っています。当時はRailsにturboが登場して間もない頃でしたが、本番で利用できるようなものではなかったため利用していません。
入社後の学習の一環として作成した社内ツールになります。社内で利用しているコミュニケーションツール(ChatWork)にBotを用意し、そのBotが毎日掃除当番に対してメンションを送るというものになります。コミュニケーションツール上から対話的にシステムを操作することもでき、お休みの予定などを入力しておくことで、その日は当番に指名されないようになったりします。
当番は毎回ランダムで決定するわけではなく、特定のアルゴリズムで未来の当番予定があらかじめわかるようになっています。お休みの登録によってその前後の当番が変更されることもありますが、概ねどのタイミングで自分が当番になるかはシステム上からわかるようになっています。
当番は全ての従業員に公平に割り当てられます。当番回数が数ない従業員は優先的に当番に指名されますが、新しく入社した方や長期休暇を取られていた方などに対しては、他の方と同等の実績がすでにある状態へと調整されます。
職種: ソフトウェアエンジニア
Ruby Ruby on Rails RSpec Heroku PostgreSQL
業務委託で既存機能の改修・新規機能の実装を行っています。特筆するような実績はありません。
職種: プログラミングメンター
Ruby Ruby on Rails RSpec AWS
プログラミング未経験者に対してメンターという役割でのサポートを行なっておりました。カリキュラムが存在するため、基本的にはそれに則った説明、解説を行なっておりましたが、それに加え自身が未経験からの転職組である経験から、学習方法のアドバイスやエラーに直面した時の解決手順などの指導を行なっていました。
自身の経験から、わからないことに対して答えを教えても本人のためにならないと考えており、わからないことに対する解像度を上げるサポートや、わからないことへの対処方法のサポートを行うというスタンスでメンターをしておりましたが、受講生からの評判は悪く、その後まもなく辞めています。
職種: ソフトウェアエンジニア
TypeScript React Native React GraphQL Node.js
Webフロントの知見を得るため紹介していただいた案件で業務委託で参加しています。ちょっとした手違いでReactNativeでのモバイル開発をすることになりました。
主に画面デザインの修正やLaravel製のWebviewから GraphQL + ReactNativeでの実装に置き換えるという作業を行なっていました。その作業の一環として、コアロジックをモジュールとして切り出し、iOS・Androidの実装で使いまわせるようにクロスプラットフォーム対応にも一枚噛んでいました。
職種: ソフトウェアエンジニア
Rails React
フルスタックなRailsアプリケーションの開発に業務委託として携わっていました。
主にAdmin画面の開発・改修を行なっており、ロジックの設計や実装は行っていません。Admin画面にはActiveAdmin、権限管理にはCanCanCanが利用されています。