職務経歴書


基本情報

key value
Name 工藤 俊輔
GitHub https://github.com/shun
Qiita https://qiita.com/shun_xx
Twitter @skudo_xx

スキル

言語

  • C/C++
  • PHP
  • Typescript

フレームワーク

  • Qt
  • Express
  • FuelPHP
  • Angular
  • Vue.js
  • Next.js

その他

  • docker
  • linux
  • QNX
  • ansible

強み

  • チームへの浸透の速さ
  • モバイル端末、組込機器、webシステムまで幅広く開発可能
  • 技術好きで、なんでも実際に手を動かしてやってみる
  • めげない
  • カラダは頑丈な方
  • ワーキングホリデーの経験から、海外の人との関わりに抵抗が無い

資格

取得 資格名
1997-12-26 普通自動車第一種運転免許
2002-05 基本情報処理技術者試験

職務経歴


■ アイシン・ソフトウェア(旧 エィ・ダブリュ・ソフトウェア):正社員/2007-09-01〜

  • 労務情報配信システム開発
    • 時期:2021-10〜
    • 役割:管理者、開発者
    • 担当:進捗管理、要求分析、基本設計、詳細設計、テスト
    • 技術:
      • frontend:Next.js、Typescript
      • backend:Express、Typescript、TypeORM、Jest
      • Linux
      • Docker
    • やったこと・難しかったこと
      • 社内で分散しているシステムのデータを集約し日々メールにて社員に労務情報を自動配信するシステムを構築。
      • HTMLメールを作成するので、SSRが可能なReactを検討し、現在人気のあるNext.jsで作成。
      • PoCであり、部分部分で素早く壊して部品を差し替えられるように、マイクロサービスでシステムにてシステムを構築。
      • Jestを用いてTDDを行いながら開発を実施。

■ アイシン・ソフトウェア(旧 エィ・ダブリュ・ソフトウェア):正社員/2007-09-01〜

  • 社内基幹システム開発
    • 時期:2020-05〜
    • 役割:管理者、開発者
    • 担当:進捗管理、要求分析、基本設計、詳細設計、テスト
    • 技術:
      • frontend:Angular、Typescript、GraphQL、Apollo
      • backend:Express、Typescript、GraphQL、TypeORM、Apollo、Jest
      • Linux
      • Docker
    • やったこと・難しかったこと
      • 統合により電子帳票システムを改修し運用までこぎつけたが、もともとアーキテクチャが古く、他システムとの連携もできていなかったため、システム一新を実施。
      • 一新するにあたり、現在主流のfrontendとbackendに分割し、APIにはGraphQLを採用。
      • 電子帳票システムではORMやマイグレーションの機能を使用しないための辛さと、昨今expressで使用するORMで伸びてきている状況からTypeORMを採用。
      • 今までの開発ではTDDを導入できていなかったが、導入できるようにJestを用いた自動テストを現在進行形で勉強しながら適応中。

  • 社内電子帳票システム開発
    • 時期:2019-12〜2020-04
    • 役割:管理者、開発者
    • 担当:進捗管理、要求分析、詳細設計、テスト
    • 技術:
      • PHP5
      • Javascript
      • puppeter
      • Linux
      • Docker
    • やったこと・難しかったこと
      • 会社統合により、旧弊社で使用していた電子帳票システムを、全社でしようできるよう改修を実施。
      • 統合により、経理が使用していたシステムが使用できなくなることから、電子帳票の一部として使用できるよう、経理と協力し要求分析を実施し、機能の組込を実施。
      • 経理機能に関しては実質2ヶ月であったため、アジャイル開発を意識し、1週間〜2週間を1スプリントとし、頻繁に動くもので動作確認をしてもらう流れで開発を実施。
      • 経理担当もソフト開発には参加経験がなかったため、うまく言語化できない部分も、動く形で確認してもらい、フィードバックすることで短期間だったが、4月からの正式運用に間に合わすことができた。

  • 自動運転の試作開発
    • 時期:2019-02〜2019-11
    • 役割:開発者
    • 担当:試作開発
    • 技術:
      • C/C++
      • Python
      • ROS1 Kinetic
      • Vue.js
      • MQTT
      • Linux
      • Docker
    • やったこと・難しかったこと
      • YAMAHAのカートをベースにした車両上で動作するROSで構築した制御部分の開発の一部を担当。
      • メイン担当は、車両と通信するサーバ部分を担当。
      • 本試作の考え方として、関わるすべてのコンポーネントをROSの仕組みで構築しようとしたため、サーバサイドもC++で開発し、車両・サーバ間を経由する部分はMQTTを使用しpub/subのtopicでやり取りできる仕組みを構築。
      • 停留所で車両を呼ぶwebアプリもvue.jsで作成。
      • 車内での音声案内は、サーバサイドからMQTT経由でtopicを受信し、発話するようなwebアプリをVue.jsで開発。
      • 車両・サーバ間はwifiで疑似5Gの環境で試作を行っていたが、実証実験会場でテストした際に、wifiの電波がコース端点で届かない不具合が発覚し、実証実験1週間前に、急遽さくらのVPSを経由して通信する方法に変えることで無事実証実験を終えることができた。

  • 社内システム改善
    • 時期:2017-08〜2019-01
    • 役割:開発者
    • 担当:試作開発
    • 技術:
      • C/C++
      • Ruby
      • Jenkins
      • Redmine
      • Gitlab
      • Linux
      • Docker
    • やったこと・難しかったこと
      • 物流支援システムでDockerを知り、メリットから他プロジェクトへの開発基盤の普及を実施。 もともとサーバサイドの会社では無いので、普及するまでには行かなかったが、オンプレで稼働している社内webシステムのほとんどdocker化を実施。
      • 社内で使用しているGitlabを使ってのCIの導入や、プロジェクト管理はRedmineでおこなっていたた、管理工数低減を目的にredmine pluginの開発を実施。

  • 物流支援システムの試作開発
    • 時期:2016-06〜2017-07
    • 役割:開発者
    • 担当:試作開発
    • 技術:
      • C/C++
      • Java
      • Android
      • Linux
    • やったこと・難しかったこと
      • 復職後、ナビ全般を知っていることと、サーバサイドも多少行えたためAWS上で稼働している動態監視システムと連携する、Android上で動かせるナビの移植とサーバサイドを担当。
      • 本格的にサーバサイドを開発するのは初めてで、開発期間中にバックエンド側の開発ノウハウを習得。
      • 今までの開発ではネットワークを経由して通信する部分には疎遠だったため、インターネットを経由した通信周りの処理と、非同期処理に四苦八苦だったが、無事機能を実現。

  • ナビ描画エンジンの研究開発
    • 時期:2014-06〜2014-09
    • 役割:開発者
    • 担当:試作開発
    • 技術:
      • C/C++
      • Java
      • Android
      • Linux
      • OpenGL
    • やったこと・難しかったこと
      • **で体調を崩しかけ予定より半年ほど早く帰任した直後の業務。
      • 帰任後はナビでも表現豊かなグラフィックが求められていたため行われていた、OpenGL ES3.0を使用しての描画エンジンの試作開発を実施。
      • 期間中に精神疾患を患い、約1年半ほど休職。

  • **での交通情報システムの研究開発
    • 時期:2011-09〜2014-04
    • 役割:管理者・開発者
    • 担当:試作開発、現地エンジニアの育成
    • 技術:
      • C/C++
      • Linux
      • Qt
      • Yocto
      • OpenGL
    • やったこと・難しかったこと
      • 欧州メーカが**を中心としたアジアの開発センタを立ち上げたため、日本での経歴から選出され北京支社のソフト開発の管理者として赴任。
      • 北京支社ではソフト開発部門がなかったが、現地エンジニアを雇用しソフトウェアエンジニアとして育成を行い、**向けのナビ開発の1次解析を担当できるようになった。
      • 先行開発分野では欧州TPEGを**で使用するため、現地電子地図会社と共同研究を実施。
      • 北京支社のみで**の現地ハードウェアメーカと協力し、独自の廉価版車載器の試作開発を実施。

  • 欧州メーカの韓国向けカーナビソフト開発
    • 時期:2010-05〜2011-08
    • 役割:開発者
    • 担当:要求分析、基本設計、詳細設計、開発、テスト
    • 技術:
      • C/C++
      • QNX
      • TPEG
    • やったこと・難しかったこと
      • 欧州で次世代交通情報規格として使用されているTPEGを使用した交通情報モジュールの開発を実施。
      • 弊社として韓国向けのナビ開発は初めてだったため、メーカエンジニアと配信局を交え、要求分析を行い設計を実施。
      • 途中データを受信するチューナ開発の遅れから、北海道→愛知→ドイツへ移動し合同デバッグを行い、動作確認したソフトを持って韓国で検証を行うハードな場面もあったが、今までの多方面のつながりから、協力を得ることができ開発をすすめることができた。

  • 欧州メーカの日本・**向けカーナビソフト開発
    • 時期:2008-10〜2010-04
    • 役割:タスクフォースリーダ 兼 解析者
    • 担当:パフォーマス・スタビリティの問題・課題管理、顧客報告、パフォーマンス解析
    • 技術:
      • C/C++
      • QNX(Momentics Tool)
    • やったこと・難しかったこと
      • **での開発経験と顧客からの信頼より、エンジニアのポジションから統括のポジションへアサイン。
      • 英語でのコミニュケーションが取れることから、ベルギー拠点のエンジニアと協力し、システム全体のパフォーマンス・スタビリティのタスクフォースリーダを担当。
      • 統括グループの中でも、カーナビの内部技術が分かるため、弊社エンジニアと顧客、機能チーム間を縦横無尽に動くことで開発を加速させ納期を遵守することができた。
      • パフォーマンス観点知識は少なかったが、Momentics Toolのノウハウをベルギーチームより教授してもらうことにより、自分で1次解析も行うことができるようになり担当機能チームに負荷を低減させることにも一役買うことができた。
      • 開発が進むにつて、リリース間隔が短くなりかつ、不具合検証や、機能サンプルのソフトリリースが頻繁になり、ビルドし、リリースするまで1〜2時間かかるものを、ビルド効率化の対策を行い、2〜3回/1h のソフトリリースを行えるよう改善を実施し、不具合の早期解決、動くモノでの機能確認に貢献することができた。
      • このときの活躍から、個人で社内での特別賞(MVP)を受賞。※ 一人/半期

  • **での初の交通情報カーナビシステムの試作立ち上げ
    • 時期:2008-03〜2008-09
    • 役割:開発者
    • 担当:詳細設計、開発、テスト
    • 技術:
      • C/C++
      • QNX
      • RDS-TMC
    • やったこと・難しかったこと
      • **ではまだ運用開始されていないカーナビ上の交通情報機能の立ち上げに参加。
      • **現地にて、欧州メーカ、**現地の交通情報配信局、**現地の電子地図開発のエンジニアと共同開発を実施。
      • 自分が担当していた交通情報モジュールだけではなく、日本にいるナビのHMI、地図描画、電子地図のエンジニアとリモートで協力し、**初の交通情報をカーナビ上で表示させる試作を立ち上げることができた。
      • 転職してまもなくであり、自分が担当しているモジュール以外のデバッグも現地で行う必要があり、ナビ機能全般を短期間で理解しつなぎこむのが大変だったが、この経験よりナビ全体の構成・仕組み・役割を深く理解することができ、以降の職務に大きく貢献することになった。

  • 欧州メーカ向けカーナビゲーションの交通情報モジュール開発
    • 時期:2007-09〜2008-03
    • 役割:開発者
    • 担当:詳細設計、開発、テスト
    • 技術:
      • C/C++
      • QNX
      • RDS-TMC
    • やったこと・難しかったこと
      • 面と向かってなら英語圏の人とコミニュケーションを取り、なんとか認識をすり合わせられるが、メールベースでのやり取りのため、当初はズレが多く解決まで時間がかかった。
      • 対策として日本的な文字が多めの設計書ではなく、ダイアグラムがほとんどの資料でやり取りをすることで、イメージを合わせることでき、海外とのやりとりの仕方について多くを学んだ。

■ 日立ソフトウェアエンジニアリング:正社員/2002-04-01〜2005-08-31

  • 国内向けカーナビゲーションの音声バス切り替えモジュール開発
    • 時期:2005-02〜2005-08
    • 役割:開発者
    • 担当:詳細設計、開発、テスト
    • 技術:
      • VC++
      • Windows Embedded
    • やったこと
      • 接続される音声機器(CD、CDチェンジャー、テレビ)の音声バス通信制御を開発。
      • 他機能の開発やデバイス入手の遅延から動作確認が遅れそうだったため、独自にスタブのツールを作成し、任意のタイミング・シーケンスでテストさせることで、結合テストで大きな不具合を発生させず開発をすすめることができた。
      • 独自のスタブツールを他のメンバに展開することで、早期に十分なテストを行うことができるようになったため、他機能との結合テスト時に高い品質でリリースを行えていた。

  • 国内向けカーナビゲーションの電話帳モジュール開発
    • 時期:2004-09〜2005-01
    • 役割:開発者
    • 担当:詳細設計、開発、テスト
    • 技術:
      • VC++
      • Windows Embedded
    • やったこと
      • 携帯電話から転送される電話帳データの管理モジュールの開発を実施。
      • 様々なメーカの携帯電話との通信動作確認を実施。

  • 医療用フィルムプリンタのスプーラ開発
    • 時期:2002-07〜2003-03
    • 役割:開発者
    • 担当:詳細設計、開発、テスト
    • 技術:
      • VC++
      • Windwos Embedded
    • やったこと
      • 参画当初はコードを書いたことがなかった新人であったため、テスト要因として参加。
      • テストを行っている内に、コードを書きたい欲求から独学でC/C++を勉強し、チームメンバにチャンスを与えられ印刷ジョブを処理するスプーラ機能を担当。