| 職 務 経 歴 書 | ||
| 2026年10月19日現在 | ||
| 氏名 J.R | ||
| ■ 職務要約 | ||
| 数学専攻の出身。2019 年から Python を軸に、機械学習の実装から本番運用レベルのバックエンド開発まで、中国で 5 年・日本で 1 年(合計約 6 年)の実務経験があります。 AI × 教育、AI × コンテンツ安全、産業制御セキュリティ、シミュレーション・推演、そして日本でのレガシーシステムのモダナイゼーション(LLM 活用)と、領域をまたいで開発してきました。 直近では、CMD / JCL → C# の自動変換基盤で設計・コア実装・レビューを担当し、COBOL 機能説明書の自動生成(ANTLR4 + RAG + MCP)では方式設計から検証までを個人主導で行いました。 | ||
| ■ 活かせる経験・知識・スキル | ||
| 得意分野 | 深層学習(CV 方向) / 機械学習 / データ分析 / Web 開発 / クローラ | |
| 言語 | Python(実務) / Vue / React / TypeScript(実務) / Go / C++ / Rust(知識) | |
| DB・インフラ | MySQL / MongoDB / PostgreSQL / Redis / Kafka / Milvus / Docker / docker-compose / Nginx / AWS / Azure | |
| Python バックエンド開発 | Django・Tornado・Flask による Web アプリの開発と保守。MySQL / MongoDB / Redis / Kafka / Milvus を用いたデータ処理・蓄積。RESTful および Protobuf ベースの gRPC でのインターフェース設計・実装・連携。 | |
| 機械学習・コンピュータビジョン | scikit-learn による回帰・クラスタリング等のデータ分析。PyTorch による物体検出(Faster R-CNN)・物体認識(ResNet)・YOLOv8 の適用。NVIDIA CUDA および Huawei Ascend ACL 上での推論高速化と C++ 連携。 | |
| フロントエンド | Vue 2 / Vue-Element-Admin による管理画面の構築。React・TypeScript・Angular での画面開発。ECharts によるデータ可視化。 | |
| 複数言語 | C++11 でのプロジェクト参加。Go による API・業務ロジック実装。Rust への移行プロジェクトの経験。 | |
| デプロイ・運用 | Docker / docker-compose / Nginx / Shell スクリプトによる構築とデプロイ。AWS・Azure 上での本番環境構築と運用保守。Fortify 等での脆弱性診断対応。 | |
| データ処理・その他 | XPath ベース/API ベースのクローラ開発。NumPy・Pandas によるデータ操作。OpenCV による画像処理、FFmpeg による動画の回転・アフィン変換・切り出し。LLM / プロンプトエンジニアリングの業務活用(社内向け GPT ボットの構築経験あり)。 | |
Page 1 / 6
| ■ 職務経歴 (古い順) | ||
| ① 北京雲上作科技有限公司 | ||
| 業界 | AI × 教育 | |
| 勤務期間 | 2019年7月 〜 2020年7月 | |
| 職種 | ソフトウェア開発エンジニア | |
| チーム規模 | 5名 | |
| 職務概要 | AI × 教育分野でのアルゴリズム実装とフルスタック開発。Mask R-CNN + ResNet による授業行動のリアルタイム分析・警告、社内のデータ注釈・学習基盤の構築、オンライン授業モニタリングの統計バックエンド、顔認証、スクリーンショット認識サービスを担当した。 | |
| 代表プロジェクト | ||
| (1) WeChat スクリーンショットの自動認識(モーメンツ広告の配信確認) | ||
| 期間 | 2020 | |
| 役割 | 学習・推論・サービス・配備 | |
| 概要 | アップロードされた WeChat のスクリーンショットを自動認識し、モーメンツ広告の配信確認に使う。画面の種類(会話/タイムライン一覧/投稿詳細)を判定し、投稿時刻・広告文・ポスター ID・QR コードのリンク・いいね/コメント数を抽出する。 | |
| 担当業務 | ・YOLOv5s による主検出(UI 要素 7 クラス)とルールによる画面種別の判定。スクリーンショット 1 万枚超といいね/コメントアイコン 1 千枚超を自前で注釈し、k-means でアンカーボックスを算出 ・投稿詳細:PaddleOCR(PP-OCR、DB 検出 + CRNN 認識)でレイアウト位置から投稿時刻・広告文・ポスター ID を取得。QR コードをデコード。右下を切り出して YOLOv5 でいいね/コメントのアイコンを検出し、3 層 CNN で数字を認識 ・Tornado + PyTorch + PaddlePaddle のサービス:token と MD5 による完全性検証、nanoid によるリクエスト追跡、元画像は OSS、全結果と処理時間を Elasticsearch へ保存して本番の異常応答の調査に活用 ・PP-OCR のモデルバージョンを更新し、ポスター ID と投稿時刻の認識率を向上 | |
| 成果 | ・数字認識の 3 層 CNN:学習 98.95% / 検証 98.25% / テスト 84.45% | |
| 使用技術 | Python / PyTorch / YOLOv5 / PaddleOCR / PaddlePaddle / Tornado / Elasticsearch / OSS / Docker | |
| (2) FaceID 顔認証・顔検索 | ||
| 期間 | 2020 | |
| 役割 | アルゴリズムとサービスの開発 | |
| 概要 | オンライン教育のお客様向けの顔認証:授業動画の映像から出演している生徒が本人かを確認し、全件・増分・指定人の顔検索で「1 人が複数アカウント」「複数人で 1 アカウント」を見つける。 | |
| 担当業務 | ・推論フロー:ランダムフレーム抽出 → YuFaceDetectNet による検出と 5 点ランドマーク → アフィン変換で整列 → 遮蔽・姿勢ぼけ・年齢の 3 モデルでフィルタ → ResNet18 で特徴抽出しコサイン類似度で照合。最年少の顔(17 歳未満)を採用して生徒本人を特定し保護者を除外 ・複数フレームワークの混在推論:検出・特徴抽出は PyTorch、遮蔽・姿勢・年齢は MXNet Gluon、すべて CPU で実行。v1.0 から v3.4 まで継続改善(dlib 68 点 + Laplacian ぼけ検出 → モデル・整列の刷新 → 品質モデル 3 種の追加 → 全件検索と動画検証の書き直し) ・Redis に特徴を保存し、全体・増分・指定人の 3 種類の検索に対応。全件の総当たり比較はコードのコメントで約 4,000 万回と見積もり ・商用ライセンス制御:呼び出し回数・有効期限・日次上限を AES 暗号化して Redis に保存、SETNX で分散ロック、デバイス SN を検証。コアモジュールは Cython で .so にして納品 ・設定は「コマンドライン引数 > 環境変数 > JSON / YAML」の優先順位で読み込み。Docker で配備し、ビルド時に OSS からモデル重みを取得 | |
| 使用技術 | Python / PyTorch / MXNet / dlib / ResNet18 / Redis / Cython / Docker / OSS | |
| (3) AI 診断型オンライン授業モニタリングシステム | ||
| 期間 | 2020 | |
| 役割 | 統計エンジンのバックエンド、管理画面のフロントエンド、アルゴリズム分析に参画 | |
| 概要 | オンライン英会話の授業(コロナ禍で授業がオンラインに切り替わったため)で教師・生徒の音声と映像をリアルタイムに収集し、ASR / CV / VAD で構造化。レッドライン行動(中国語での発話、教師の話しすぎ、生徒の参加不足、画面からの離脱、黒画面・切断)を準リアルタイムで警告し、教育品質指標のレポートを本部/支社/校舎、講座、教師、生徒の多軸で比較・ランキングする。 | |
| 担当業務 | ・統計エンジンのバックエンド(Tornado、約 1,650 行・21 ルート):授業/教師/生徒の一覧・詳細・履歴トレンド、授業態度の時系列カーブ、模範授業 TopN ・Elasticsearch クエリ:bool + terms + range の組み合わせ、terms 集計に avg サブ集計をネスト(授業ごとの教師の平均 happy 確率・語数・話速)、大きな結果は scan / scroll で走査。CV と ASR の複数ソースをアプリ層で統合して並べ替え ・管理画面のフロントエンド(vue-element-admin 4.4):ロール別の動的ルーティング権限、データ大画面、授業/教師/生徒の一覧と詳細、ランキング、トレンド、絞り込み。ECharts で可視化、Docker 化と複数環境設定 ・アルゴリズム分析に参画:生徒の発話比率・まとまった表現・感情のポジティブ度から約 30 秒の「ハイライト」区間を抽出し、ノイズ・教材音声の混入・保護者の同席などの異常も印付け。保護者向けの学習状況レポートに利用 | |
| 使用技術 | Python / Tornado / Elasticsearch / Redis / Vue 2 / Element UI / ECharts / MQTT / Docker / Alibaba Cloud | |
| (4) AI 授業行動分析システム | ||
| 期間 | 2019 – 2020 / チーム 5 名 | |
| 役割 | フルスタックエンジニア(アルゴリズム・バックエンド・社内学習基盤) | |
| 概要 | 教室のカメラで生徒の授業中の行動(前を向く、うつむく、挙手、机に伏せる、横を向くなど)を認識し、顔認識で個々の生徒に対応付けて、リアルタイム警告と多階層の授業レポートを提供する。自分は 2 つのサブシステム、学校向けのリアルタイム分析・警告プラットフォームと、社内用のデータ注釈・モデル学習プラットフォームを開発した。 | |
| 担当業務 | ・2 段階認識:Mask R-CNN(R-101-FPN)で生徒を検出 → ResNet18 で行動分類(6 クラス、信頼度 0.95 未満は「不確定」)。検出モデルに直接分類させるより精度が高く、行動クラスの変更時も小さな分類器だけ再学習すればよい ・リアルタイム分析:OpenCV で RTSP ストリームを読み、映像タイムスタンプが実時間より遅れたらフレームを間引いてリアルタイム性を確保。クラスごとに独立した GPU プロセスを起動し、起動前に nvidia-smi で空きメモリを確認 ・フレーム間追跡と本人識別:5 秒窓の双方向重なり率による追跡を自作。face_recognition(dlib)の 128 次元特徴をクラスの顔データベースと照合し、同一トラック内で最頻の生徒 ID を採用して、うつむき・横顔でも本人を識別 ・机に伏せる・横を向くのリアルタイム警告:生徒の顔画像(base64)を切り出して警告に格納。最新結果とフレームごとの履歴は MongoDB に分けて保存 ・Tornado バックエンド:アカウントと 3 種のロール、警告・レポート(生徒・授業・学年・学校の 4 階層)、WeChat ミニプログラム API と外部プラットフォーム向け公開 API。プロダクトマネージャーのプロトタイプに合わせて API の項目仕様を設計 | |
| 成果 | ・同一コードで 3 顧客向けのカスタム API、外部向けの公開 API、WeChat ミニプログラムを同時に提供 ・データ生産を Web ツール化し、モデルによる事前注釈で手作業を削減。アルゴリズム担当以外も注釈に参加可能に | |
| 使用技術 | Python / Tornado / PyTorch / maskrcnn-benchmark / face_recognition (dlib) / OpenCV / FFmpeg / MongoDB / scikit-learn / Cython / ECharts / jQuery | |
Page 2 / 6
| ② 人民中科智能技術有限公司 | ||
| 業界 | AI × コンテンツ安全 | |
| 勤務期間 | 2020年8月 〜 2022年8月 | |
| 職種 | アルゴリズム応用エンジニア | |
| チーム規模 | 15名 | |
| 職務概要 | コンテンツ安全の中台でアルゴリズム調整とクロス言語ラッパーを担当。Ray で 10 種類以上のアルゴリズム機能を編成し、SWIG で C++ SDK を Python に接続。昇腾 Atlas 推論 SDK にも参画し、オフライン配備可能なクロスモーダル検索製品を単独で納品した。 | |
| 代表プロジェクト | ||
| (1) CV データ処理システム | ||
| 期間 | 2020.08 – 2022.08 / チーム 1 名 | |
| 役割 | SE | |
| 概要 | ディープラーニングに必要なデータ処理業務を可視化・効率化することを目的とし、部門メンバーが GUI 操作でデータ収集・加工を行えるように開発。バラバラに存在していた個人スクリプトをシステム化・統合し、再利用性と作業効率を向上させた。 | |
| 担当業務 | ・データ収集モジュール:RESTful API でクローラサービスを連携し、画面から収集タスクを実行、結果を MongoDB に保存 ・データ処理モジュール:OpenCV の画像処理・FFmpeg の動画処理を Tornado で API 化し、Vue 画面から操作可能に。ファイルの分割アップロード(レジューム対応)を設計 ・モデル欠陥分析モジュール:初期ラベリングと人手確認を GUI 化。複数データセット・モデルを入力して PR 指標を算出し、PDF レポートを自動生成 ・フロント・バック両方を担当し、ページコード修正や UI 改善も実施 | |
| 使用技術 | Python / Tornado / Vue / Vue-Element-Admin / MongoDB / OpenCV / FFmpeg | |
| (2) クロスモーダル検索オフライン製品(顧客向けカスタマイズ) | ||
| 期間 | 2020.08 – 2022.08 | |
| 役割 | 単独開発 | |
| 概要 | 顧客のカスタマイズ要件に応えるオフライン納品物。開発者向けの多パラメータなモデル API を単純な検索 API にラップし、Docker イメージで納品。モデルパス・特徴次元・インデックス分割などの内部パラメータはすべて隠し、検索 API を 1 つだけ公開する。 | |
| 担当業務 | ・Tornado サービスがテキスト/画像/動画の 3 モダリティ入力に対応:動画は 25 フレームごとに 1 枚抽出し、クロスモーダルのデュアルタワーモデルで 512 次元の特徴に統一、動画特徴はフレーム平均 ・gRPC で Milvus を検索して TopK 候補を取得し、複数条件ロジックエンジン(AND/OR/NOT/包含)で集合演算、RRF(逆順位融合)で再ランク、ラベル一括付与、Redis で 2 次キャッシュ ・性能改善 4 段階:gRPC 単発照会 → 並行バッチ API → 論理条件の前置絞り込み → マルチスレッド分割照会(100 件/バッチ)+ np.dot によるバッチ行列内積。ベース照会を N 回の逐次 gRPC から ⌈N/100⌉ 回の並行バッチへ集約 ・同種のオフライン製品として、動画の特定物体フィルタも担当:フレーム抽出 → SDK で 512 次元特徴 → gRPC で Milvus 検索 → 後処理 → Docker 納品 | |
| 成果 | ・顧客向けカスタマイズのオフライン版を累計 3 件納品(Docker イメージ) ・類似度計算を 1 件ずつの比較から単一の行列内積に変更し、しきい値による早期打ち切りを併用 | |
| 使用技術 | Python / Tornado / gRPC / Milvus / Redis / NumPy / OpenCV / Docker | |
| (3) AI コンテンツ安全アルゴリズム中台 | ||
| 期間 | 2020.08 – 2022.08 / チーム 15 名 | |
| 役割 | 中台・アルゴリズムバックエンド(Python / C++11) | |
| 概要 | 大手のコンテンツ安全審査製品を目標とした AI システムで、公開ネット上のメディアを監視・解析し、政府系ユーザーや協業各社に審査機能を提供する。サブスクリプション方式で 10 種類以上のアルゴリズム機能(画像・動画・音声・テキスト)を提供。自分は Ray ベースの調整中台と SWIG による言語間ラッパーを担当し、昇腾 Atlas ACL 推論 SDK とデュアルプラットフォームのモデルツールチェーンにも参画した。 | |
| 担当業務 | ・Ray ベースの分散アルゴリズム調整中台を構築(主担当):Actor モデルで 10 種類以上のアルゴリズム機能(アダルト・暴力テロ識別、OCR、局ロゴ、ロゴ、顔検索、動画コピー検出、クロスモーダル検索など)を統合的に編成 ・メッセージ信頼性:Kafka の自動コミットを無効化し、1 バッチ処理後に commit(at-least-once)。puller Actor の数はクライアントが検出したパーティション数に合わせ、1:1 で起動 ・GPU リソースの分割:num_gpus=0.2 の小数指定により、1 枚の GPU で 5 つのモデルインスタンスを並行稼働(クラスタは 1 台・Tesla T4 × 4) ・「電文層 — ルーティング層 — モデル層」の 3 層抽象を設計:電文層は ray.wait で推論バッチを流れるように再構成し、ルーティング層は購読 algo_id とモデル能力の積集合で動的に振り分け。新しいモデルは Actor を 1 つ足すだけで既存コードに触れない ・SWIG 4.0 で C++ アルゴリズムライブラリを Python 拡張モジュール化(主担当):画像は numpy のメモリポインタで渡し C_CONTIGUOUS を検証して、言語間のデータコピーを排除 | |
| 成果 | ・10 種類以上のアルゴリズム機能を同一の調整中台で提供。GPU 版と Ascend 版の SDK アーカイブで合計 17 のモデルパッケージ ・ベクトル検索の基盤を Milvus に統一し、GPU 系と Ascend 系で検索インターフェースを共通化 | |
| 使用技術 | Python / C++11 / Ray / Kafka / Protobuf / gRPC / SWIG / CMake / PyTorch / ONNX / TensorRT / 昇腾 ACL / Milvus / Redis / MySQL / MongoDB / Docker / FFmpeg | |
Page 3 / 6
| ③ 浙江木鏈科技有限公司 | ||
| 業界 | 産業制御セキュリティ | |
| 勤務期間 | 2022年8月 〜 2023年7月 | |
| 職種 | Python 開発エンジニア | |
| チーム規模 | 13名 | |
| 職務概要 | 産業制御セキュリティ分野での Python バックエンド。バイパス型トラフィック監査システムのトラフィック処理経路、ホワイトリスト検知エンジン、Django REST API に参画し、Suricata によるブラックリスト検知を統合。27 種の産業プロトコルの詳細解析に対応した。 | |
| 代表プロジェクト | ||
| (1) 産業制御セキュリティ監査プラットフォーム | ||
| 期間 | 2022.08 – 2023.07 / チーム 13 名 | |
| 役割 | Python バックエンド開発 | |
| 概要 | 電力・製造などの制御システム向けのバイパス型トラフィック監査システム。プローブがスイッチのミラートラフィックを取得し、Kafka を経由して Cython 製のプロトコル解析エンジンへ。資産・ホワイトリスト・ブラックリストの 3 層ポリシーで検知・通知する。Modbus、S7COMM、IEC104、IEC61850、DNP3、OPC UA/DA/AE、PROFINET、ENIP/CIP、BACnet など 27 種の産業プロトコルを詳細解析し、電力系研究機関などの案件で稼働。 | |
| 担当業務 | ・トラフィック処理経路の開発に参画:キャプチャプローブ → Kafka → プロトコル解析エンジン → PostgreSQL。Redis の有効期限イベントで 10 秒窓のフロー集約と一括登録を実現し、DB 書き込み負荷を大幅に低減。Redis の TTL で機器のオフライン検知を実装 ・5 タプル・MAC・プロトコルのファンクションコードに基づくホワイトリスト検知エンジンを実装し、ビットマップで「通信行動の異常」と「内容の異常」を区別。IEC104 ASDU や OPC のインターフェース/ファンクションコードまで踏み込んだルール照合、時間帯指定でのホワイトリスト自動学習にも対応 ・資産管理、ホワイト/ブラックリストポリシー、アラート、レポートなどの Django REST API を担当。Celery Beat でレポート出力、ポリシーバックアップ、期限切れデータの削除、プローブのヘルスチェックなどの定期ジョブを実装 ・Suricata を組み込み、unified2 アラートを解析。約 1,000 件(996 件)の産業系脆弱性シグネチャでブラックリスト検知を実現 ・Kafka Connect(Debezium CDC)で Pilosa のビットマップインデックスへデータ同期し、トラフィック統計と多次元検索を支援 | |
| 成果 | ・プロトコル解析は CPU 負荷の高いバイト単位の処理。解析ライブラリは Cython で記述してホットパスを C 拡張にコンパイルし、C に近い性能と上位への Python インターフェースを両立。納品は .so のみで、コアコードの保護にもなる | |
| 使用技術 | Python / Django / DRF / Celery / Kafka / Redis / PostgreSQL / Pilosa / Suricata / Cython / Vue 2 | |
Page 4 / 6
| ④ 広州辰創科技発展有限公司 | ||
| 業界 | シミュレーション・推演(研究向けソフト) | |
| 勤務期間 | 2023年7月 〜 2024年7月 | |
| 職種 | Python 開発エンジニア | |
| 職務概要 | シミュレーション・推演の製品ラインでバックエンドとエージェント開発を担当。Go(Gin)で戦場シミュレーションの業務メインサービス・エンジンのライフサイクル管理・多人数共同編集を実装し、Python で C++ のゲーム推演基盤と連携して赤・青のエージェントとリアルタイム監視ツールを開発した。 | |
| 代表プロジェクト | ||
| (1) 知能ゲーム対抗推演 | ||
| 期間 | 2023.07 – 2024.07 | |
| 役割 | Python 開発 · エージェントとプラットフォームの連携 | |
| 概要 | 無人化の空海対抗シナリオ(島嶼防衛 vs 空母打撃群の侵攻)におけるエージェント指揮決定プロジェクト。C++ のゲーム推演プラットフォームが裁定を担い、Python 側でプラットフォーム連携、赤・青双方のエージェント、対抗過程のリアルタイム監視を実装した。 | |
| 担当業務 | ・ZeroMQ(REQ + DEALER)と Protobuf でプラットフォーム連携層を実装。推演制御、ユニット/任務/損害の照会、航路、発艦、編成など 38 本の API をラップし、Runner が固定ステップで「観測 → 判断 → 指令」を回して勝敗を採点 ・赤軍の防御エージェントを開発:知覚 — 情報融合 — ミサイル/火砲/レーザーの火力配分 — 攻撃検証という段階的な意思決定。青軍の侵攻エージェントも開発:複数の行動案、無人機部隊の発進と飽和攻撃 ・参加 16 エージェント(ルール/機械学習/深層学習)の配備・評価を担当。依存関係や実行上の問題を切り分け、代表的な戦略を分解して技術共有を実施 ・エージェントの態勢を MQTT で配信し、PyQt5 でリアルタイム監視ツールを開発。タブごとに赤・青のユニットと損害を表示し、ラウンド単位でのオフライン保存と振り返りに対応 | |
| 使用技術 | Python / ZeroMQ / Protobuf / MQTT / PyQt5 / NumPy | |
| (2) 戦場並行シミュレーションシステム | ||
| 期間 | 2023.07 – 2024.07 | |
| 役割 | バックエンド開発(Go / Python) | |
| 概要 | 同社の中核製品で、研究機関向けの B/S 構成の戦場シミュレーションプラットフォーム。ユーザーは 3D デジタル地球上で作戦想定を編成し、ワンクリックでシミュレーションエンジンへ送って推演。態勢をリアルタイムに 3D 表示し、多人数での共同編集、録画再生、効果評価を行う。 | |
| 担当業務 | ・業務メインサービス(Gin + MongoDB)の設計・開発を担当。router / controller / service / model の階層構成で、型式・エンティティ・装備・データ辞書・テンプレート・想定バージョンなど 17 モジュール・約 100 本の API を実装 ・推演エンジンのライフサイクル管理を設計:ポートの動的割り当て、想定のエンジン入力へのエクスポート、os/exec によるプロセス起動と登録、goroutine での終了監視と資源の自動回収により、複数推演の並行実行に対応 ・WebSocket Hub でタスク単位のルームによる想定の多人数共同編集を実装:読み書き 2 つのコルーチン+ハートビート、想定ツリーをフラット化したインデックスキャッシュ、差分コマンドのリアルタイム配信 ・オペレータサービスの開発:想定 JSON → 外部シミュレーションエンジン XML 変換(3,000 行超)、GeoJSON による領域・交差・和集合の空間演算。態勢のフレーム単位録画と、一時停止・倍速・タイムライン再生を実装 ・Go でエンジンコンソールを開発し、TCP でスケジューラと接続してエンジンコマンドを中継。推演の開始/停止/一時停止/再開の HTTP API を提供 | |
| 使用技術 | Go / Gin / MongoDB / MySQL / Redis / NSQ / WebSocket / Python / Tornado / SciPy / Docker | |
Page 5 / 6
| ⑤ 株式会社◯◯(SES) | ||
| 業界 | 受託開発・レガシーシステムのモダナイゼーション(SES) | |
| 勤務期間 | 2025年10月 〜 現在 | |
| 職種 | 開発エンジニア(Python) | |
| 職務概要 | 日本で SES として、レガシーシステムのモダナイゼーションに関わる開発に従事。ANTLR4 + RAG + MCP による COBOL 機能説明書の自動生成、大手電機メーカーの部門システム向け人員・組織連携ツールの開発、そして担当者として CMD → C# の「ルール+生成 AI」自動変換基盤を設計した。 | |
| 代表プロジェクト | ||
| (1) ANTLR4 + RAG + MCP による COBOL 機能説明書の自動生成 | ||
| 期間 | 2025.10 – 2025.12 | |
| 役割 | 方式設計・実装・検証(個人主導) | |
| 概要 | お客様の中核バッチは数十年前に書かれた COBOL プログラムで稼働しており、設計書が無く、TR1-HINSHU のような略称変数の業務上の意味はデータベース設計書や用語集に散らばり、COBOL に詳しい人材も減っている。COBOL ソースを入力すると、業務担当者にも読める日本語の機能説明書(Markdown)を自動出力することが目標。確定的な処理(構文・レイアウト・呼び出し関係)はプログラムに任せ、モデルは「意味を与えて文章にする」ことだけを担当させる設計とした。 | |
| 担当業務 | ・モデル能力の検証と方針転換:Gemma-3 4B の COBOL 理解力をベンチマーク。Colab で LoRA 微調整を試みたがメモリ制約で完了せず。業務辞書が顧客ごとに変わるため、再学習が不要な RAG へ転換 ・知識ベース構築:データベース設計書・用語集・表/ファイル/ジョブフロー定義を {key, value} に統一し、「ファイル → レコード → 項目 → 集団項目」の階層で意味単位に分割。key のみを multilingual-e5-small で埋め込み ChromaDB に格納し、検索前に OCCURS の添字を除去してエイリアスと階層パスを整備 ・COBOL 構文解析:Cobol85.g4 から Python 用 Lexer / Parser / Visitor を生成。Shift_JIS→UTF-8 変換、行番号除去、$SET 等の方言指令を前処理で処理。解析木を LLM 向けの簡略 AST に変換し、REDEFINES / OCCURS / COMP / 88 レベルに対応した変数抽出器を実装 ・呼び出し階層の解析:PERFORM から呼び出しグラフを構築し、RTN / EXT ペアのうち出口だけの EXT 段落を除外。トポロジカルソートで下位から上位への解析順序を決定 ・MCP 連携:FastMCP でベクトル検索を lookup_field / lookup_record / batch_lookup_fields / get_subroutine_summary の 4 ツールとして公開。数百の変数定義をすべてコンテキストに詰め込まず、モデルが使用中の変数だけを検索 | |
| 成果 | ・2 本のプログラム(13.7 KiB / 13.5 KiB)からそれぞれ約 6.5 KiB / 6.7 KiB の説明書を生成し、検索された用語は期待どおりであることを確認 ・「静的解析+RAG+ツール呼び出し」の分担構成を確立。サブルーチン単位に分割して下位から解析することで、4B の小型モデルでもコンテキストを超える長いプログラムを扱え、変数説明が正しい業務名称に対応 | |
| 使用技術 | Python / ANTLR4 / ChromaDB / SentenceTransformers / MCP (FastMCP) / Gemma-3 4B / Hugging Face Transformers / Google Colab / WSL | |
| (2) 部門向けプロジェクト管理システム 人員・組織自動連携ツール | ||
| 期間 | 2026.01 – 2026.03 | |
| 役割 | Python 連携ツールの開発・テスト・本番リリース・運用引継ぎ(派遣) | |
| 概要 | 大手電機メーカーのソフトウェア技術部門が、Redmine をベースに自作した部門向けプロジェクト管理・状況報告システム(Angular + Go + Redmine)。人員・組織データは社内人員名簿から取得する必要があるが、利用できる外部インターフェースがないため、Selenium でメンバーと組織構成を取得し、Redmine のアカウント・部/課組織・権限グループへ自動反映するツールを担当した(4 部・約 30 課)。 | |
| 担当業務 | ・データ元の移行:旧人員名簿の廃止に伴い、クローラを新サイトへ移行。新しい画面構成と Microsoft SSO ログインに対応し、従来の役職表記との互換性を維持して下流の連携ロジックは無改修 ・Selenium(Edge Headless)で自動ログインして組織ツリーを巡回し、社員検索で所属・役職を取得。paramiko の SFTP で社内 PC から Azure サーバへ一方向に連携 ・連携バッチ:新旧データの差分から SQL を自動生成・実行し、アカウントの追加・停止・再入社時のロック解除、部・課・役職を同期。Redmine REST API で状況報告系の権限グループを更新(ホワイトリスト対応) ・SendGrid で 3 種類の異常通知メールを実装。想定外の組織変更を検知した場合は処理を中断し、担当者の SQL 確認後に実行する 2 段階方式で本番データを保護 ・コード内に分散していた部署マッピングを DB の設定テーブルへ集約。4 月の組織変更に向け、画面・申請フロー・権限グループを網羅するテストケースを設計・実施 | |
| 使用技術 | Python / Selenium / paramiko / MySQL / MariaDB / Redmine REST API / SendGrid / Bash / PowerShell / Azure VM | |
| (3) レガシーバッチ(CMD/JCL)→ C# 自動変換基盤の設計・開発 | ||
| 期間 | 2026.04 – 現在 | |
| 役割 | 担当者(アーキテクチャ設計・コア実装・レビュー) | |
| 概要 | 長年稼働してきた Windows バッチ(CMD、Shift-JIS)を、自社バッチフレームワーク上の C# へ移行するための自動変換基盤。手作業での書き換えは工数が大きく業務ロジックの等価性担保も難しいため、「ルール変換+生成 AI 補完」の 2 段階方式を採用し、「変換できないほうが、業務ロジックを黙って変えるよりよい」を設計方針とした。 | |
| 担当業務 | ・2 段階アーキテクチャの設計:第 1 段階は決定的ルールで大半を変換(前処理 → Lark 構文解析 → AST → ルールエンジン → C# 生成)、第 2 段階はルール化できない CALL :ラベル のサブルーチンのみ LLM でメソッド化し、AI の適用範囲とリスクを最小化 ・CMD 文法のモデリング:約 490 行の Lark(LALR)文法を設計・拡張。リダイレクトの任意位置出現、< > & | の曖昧性、%VAR:old=new% 置換、IF/ELSE の多様な括弧表記、日本語を含むラベル名など cmd.exe 特有の癖に対応 ・入力ゆれを吸収する前処理層(8 種):改行コード混在、行末の閉じ括弧、複数行 ELSE、ECHO 内の記号、全角空白などを意味を変えずに正規化し、文法をシンプルに維持 ・AST とルールエンジン:27 種の AST ノード、内蔵コマンド 33 種+外部コマンド対応表 1,084 件(「ジョブプロセス」「ジョブフロー」の 2 つの呼び出しモード)。変数展開は文字列・引数行・整数式の 3 コンテキストで実装 ・生成 AI によるサブルーチン変換と「意味保存」検証:LabelMapper で .cs の TODO・.cs.ast の呼び出しノード・.cmd 原文の 3 者を対応付け、構造チェックと業務意味チェック(ERRORLEVEL・キャンセル処理・エラー分岐・ステータス設定の保持)を自動実施。不合格は理由を付けて最大 7 回再生成し、それでも不可なら TODO を残して人手確認へ | |
| 成果 | ・移行の過程で、レガシー CMD に潜む不具合の可能性(例:& の欠落により GOTO が実際には実行されない、ECHO で SQL を書き出す際に < をエスケープしていない)を複数検出し、記録 ・例:117 行のデータ連携ジョブ CMD から 156 行の C# を自動生成。残る 11 件の TODO はいずれも対応表未登録の外部コマンドで、対応表の追加で解消可能 | |
| 使用技術 | Python / Lark (LALR) / regex / Azure OpenAI / C# / .NET / pytest / Git | |
| ■ 資格・語学 | ||
| 2026年07月 | 日本語能力試験 JLPT N2 取得 | |
| 中国語 | 母語 / 母国語 | |
| 日本語 | JLPT N2 / 簡単な業務会話レベル / 日本語学校で学習(2024年7月〜2025年11月) | |
| 英語 | 技術文書の読み書き | |
| ■ 自己PR | ||
| 私の強みは、新しい事物に対する強い好奇心と積極的に挑戦する姿勢です。新しい技術やツールが登場すると、まず自分で学び、実際に試してきました。その結果、素早く習得し、新しい環境にも柔軟に適応できます。変化を前向きに受け入れ、新しい機会を楽しみながら成長していくことができます。 | ||
| 以 上 | ||
Page 6 / 6
Sheets
← Back to Documents
Written in Japanese. Personal details (address, phone, contact, day of birth) are left out.