Koichi Tanaka

Chatwork株式会社 / プログラマー

Koichi Tanaka

Chatwork株式会社 / プログラマー

東京都

Koichi Tanaka

Chatwork株式会社 / プログラマー

あなたも Wantedly で
プロフィールを作りませんか?

これまでの経歴を、あなたの想いや挑戦とともに表現しよう。

いますぐ作る

ソフトウェア・アーキテクト(SoR領域/エンタープライズ系)、Java/Scalaプログラマー。

Web世代の皆さん、企業情報システムを見たことがありますか?

2021年6月

若手エンジニアには分からない?業務システムになぜRDBが必要か

2021年5月

未来

この先やってみたいこと

未来

・モデル駆動、形式手法、型システムへの取り組み ・DDD、DCI、C/Q非対称設計といった設計手法への取り組み

2021年4月
-
現在

Chatwork株式会社

9 months

プログラマー
現在

2021年4月 -

現在

2018年8月
-
2021年3月

株式会社Monopos

3 years

アーキテクト/プログラマー

2018年8月 - 2021年3月

小売業向けB2B SaaSのサーバーサイド開発と運用 / 「販売管理」を中心とする小売業向けSaaSのバックエンドの設計・開発を担当。また、物流系業務の運用も担当。 ※(株)IROYAからの事業継承会社への転籍

小売業向けB2B SaaSのサーバーサイド開発と運用

小売業向け、オムニチャネル事業をサポートするEC〜POS〜在庫管理〜在庫管理〜物流連携をワンストップで提供するSaaSの、バックエンドの設計・開発を担当。また、物流系業務の運用も担当。 現在継続中。 関連技術:Java, Spring Boot Framework, PHP, Docker, AWS Elastic Beanstalk/S3/SQS/RDS, 業務ドメインモデル設計

2018年8月 - 2020年11月

2018年1月
-
2018年7月

アーキテクト/プログラマー

2018年1月 - 2018年7月

アパレル業界向けB2B事業向けプラットフォーム開発 / サービス立ち上げ段階の、当該サービスを担うシステムの開発に携わる。

アパレル業界向けB2B事業向けプラットフォーム開発

アパレル業界向けB2B受発注管理サービスの立ち上げ段階にて、当該サービスを担うシステムの開発に携わった。6名前後の開発チームの技術リード(アプリケーション設計の取りまとめ役)を担う。また、当該システムはScalaで実装した。 このプロジェクトは、事業自体を立ち上げつつシステム開発が同時進行されるような、典型的なWeb系新興企業の自社サービス開発業務だった。限られたリソースで、何をどの順番に作るか、ビジネスイベントを踏まえてどのようなリリース戦略を描くか、経営やマーケ部門と日々深い会話をしていくことが肝要なのだと実感した日々であった。 関連技術:Scala, Play Framework, JavaScript, Docker, Google Cloud Platform, 業務ドメインモデル設計

2018年1月 - 2018年7月

2001年4月
-
2017年12月

有限会社マルチパラダイムシステムズ

17 years

アーキテクト/プログラマー

2001年4月 - 2017年12月

企業様向けWeb系Java系システムの受託開発(要件定義〜設計〜実装〜検証) / 大手生保様、出版社様、流通会社様、大手toCサービス様、私立大学様の公的プロジェクトに関わる開発、など、多数の開発案件に携わる。上流工程から下流工程まで一貫対応する。

稼げるJava 今より楽するコーディング

出版社様、基幹システムの開発

出版社様の基幹業務システムをオフコンからオープン系へ移行する新規開発を行う。基幹システム全体の中の販売管理部分を担当。100人月規模、ピーク時10名チームの開発リーダーをプロジェクト途上から引き継ぎ担う。業務分析、要件定義から再施行し、プロジェクトの立て直しを実施。 引き継ぎ時点で、確固たるAs-Is分析もTo-Be定義も為されていなかった。業務プロセス全体のデータフローの整合性が把握されてなかった。業務側の手がかりとなるアクティビティ図と、開発側の手がかりとなる状態遷移図を改めて書き起こした。これが複数の業務担当者と開発メンバーとの共通認識を構築する基礎的な“地図”として役だち、プロジェクト立て直しのきっかけとなった。 関連技術 : Java, Tomcat, Struts, Oracle 10g, PL/SQL, Business Modeling, Software Project Management

出版社様、オンラインサービスの会員名簿・アンケート管理システム

コミュニティサイトの会員管理やアンケート管理のための、非定型データ管理用名簿データベースアプリケーションの開発を行う。20人月規模、ピーク時5名のチームの開発リーダーを担う。 動的・非定型データを扱うため、メタデータ駆動方式の設計のアプリケーションとする必要があった。 関連技術 : Java, Tomcat, Struts, Apache Velocity, Oracle 10g, Application Framework Design, Metadata-Driven Application Design, Business Domain Modeling, Software Project Management

IPA未踏ソフト創造事業採択プロジェクト

業務ロジック記述向けの新しい形式的仕様記述言語「SPECRIPT」の開発を行う。言語仕様策定、コンパイラ・ランタイム開発等を実施。 関連技術 : Java, JavaCC, Scheme, Programming Language Design, Application Framework Design

流通会社様、ESB基盤用フレームワークの開発

流通会社様の基幹システムをESB(Enterprise Service Bus)化する上での、ESBハンドリング用フレームワークを開発。2人月、1人。 関連技術 : Java, Fujitsu Interstage, ESB, Application Framework Design

クラウド時代対応EDIシステムの在り方に関する研究

Web API前提でのEDIシステムのアーキテクチャの在り方に関して、大学と共同研究を実施。情報処理学会-電子化知的財産・社会基盤研究会(EIP)48発表論文共著。 関連技術 : EDI, Web API, Business Domain Modeing

某私立大学様、Project-Based-Learning教材の制作

大学研究室の学生向けに、「EDIシステム開発プロジェクト」を題材としたProject-Based-Learningスタイルの教材を制作した。教材用ドキュメントの制作における企画、構成検討、執筆を2名で実施。トータル6人月規模。 関連技術 : EDI, Business Domain Modeling

某企業様、オンラインカタログシステム連携-オンライン受注システムの開発

オンライン商品カタログ表示・検索システム(いわゆるCMS)とWeb APIで連携動作する商品受注システムの開発を行った。8人月規模、2名チームの開発リーダーを担う。開発対象はパッケージ製品であり、XMLによるデータモデル定義に基づいて動的に動作するような設計。 2007年6月からの「オンラインサービスの会員名簿・アンケート管理システム」のプロジェクトに続いて、動的定義されるデータを扱うメタデータ駆動型のアプリケーション設計を行った。 関連技術 : PHP, Apache HTTP Server, MySQL, XML, Metadata-Driven Application Design

某企業様、ユーザー管理用ディレクトリーシステムに対する機能拡張、およびiPhone/iPadクライアント用APIの開発

Graph構造で内部データを持つユーザー・ディレクトリー管理システムに対して、外部システム連携用のデータ投入機能の追加開発を行った。6人月規模、2名チームの開発リーダーを担う。Graph構造を取る組織データに対して、CSVインポートによる一括登録・変更を可能とするよう、Graph構造のデータに対する更新操作に関わるモデリングなどを実施。他、iPhone/iPad向けの参照用のWeb APIなども開発。 外部システムは一般的なフラットなデータ構造を扱うもので、Graph構造でデータを持つディレクトリー管理システムのネィティブなデータ運用ポリシーとは互換性が無かった。そこで両者のデータ更新ポリシーの最小公倍数的なレベルのマクロ的なAPIを新たに設計、ディレクトリー管理システムに対するuploaderとして実装した。 関連技術 : Java, XML, Apple WebObjects, Web API Design, Graph-structured Data Processing, Business Domain Modeling

Web API対応データマネージメントシステムの開発

“クラウド空間”向けにデータ管理を行う場合の一般的実現方式についてのプロトタイプ開発。1人プロジェクト。2009.11~の『クラウド対応EDIシステムの在り方に関する研究』の成果を踏まえて、任意のデータリソースをWeb APIで公開し運用するためのフレームワーク実装を実施。 関連技術 : Java, XML, Web API Design, Application Framework Design

某企業様の公的プロジェクトに関わる開発

某企業様の公的プロジェクトに関して、開発会社メンバーとして参画。それぞれ数名のチームで、様々なプロトタイプシステムを設計、実装。Graph DB評価、XACML評価、概念レベルで定義済みのビジネスプロセスの仕様化、などを実施。 関連技術 : Java, Neo4j (Graph DB), Apple WebObjects, XACML, Business Process Design

某私立大学様の公的プロジェクトに関わる開発

某私立大学様の公的プロジェクトに関して、開発会社メンバーとして参画。それぞれ2名程度のチームで、様々なプロトタイプシステムを設計、実装。XML DBに対するWeb API構築、Scala/Akkaによる分散処理系のプロトタイプ開発、などを実施。 関連技術 : Scala, Java, Akka, XML, Apple WebObjects, Web API Design, Distribution System Design

サービス系企業様、企業向け業務サービスのグローバル展開用再構築

企業向け業務システムをASPで提供していたものをベースに、決済機能やコンシューマー向けソーシャル機能を付加し、かつグローバル展開するための再構築プロジェクトにプログラマーとして参加。 汎用レポーティング機能を担当。担当部位はSingle Page Applicationとして設計。PHPのSymfony/Doctrine、JavaScriptのBackbone.jsなど、自分としては初物のフレームワークに取り組んだ。Backbone.js上にDOMとの双方バインディングフレームワークを構築した。Web APIでは、レポーティング項目にユーザー定義の導出項目を任意に設定できるようにするための簡易的な「式言語」のインタープリター機能を実装し組み込んだ。 関連技術 : PHP 7, Symfony, Doctrine, JavaScript, Backbone.js, Web API Design

流通会社様、基幹システムのオープンプラットフォームへのポーティングにおける、RPG to Javaコンバートツールの開発

流通会社様(卸業)の基幹業務システムをAS/400からオープン系へ移行する案件にて、RPGソースコードをJavaソースコードへコンバージョンするという実装方式を取った。20人月規模、4人チームの開発リーダーを担う。そのコンバージョンツールの実装の一部、およびコンバート後Javaコード用Runtime Core Library(Framework)の開発の全体(要件調査~検証)を行った。 RPG言語仕様を理解するに、あまりにも基本データのタイプシステムが違い過ぎたので、結局RPGエミュレーターのサブセットをJavaで実装するところに至った。 関連技術 : Java, Tomcat, Scheme, AS/400 RPG, Programing Language Emulation, Application Framework Design

公共交通機関様、駐機場使用計画管理システムの開発

空港の駐機場および滑走路使用スケジュール管理のWeb対応化システムの開発。15人月程度の規模、2名の開発チームで、担当部分の設計〜実装〜検証。Ajaxを用いたグラフィカルでDrag&Drop-ableなスケジュール管理の画面とそれを支えるWeb APIの開発などを実施。 インタラクティブなUIが要求されたので、自ずとUIコントローラーのコードはJavaScript中心となり、サーバーサイドは業務ロジックをWeb APIとして提供するというかたちになった。いわゆるシングル・ページ・Webアプリケーションのアーキテクチャーで構築。 関連技術 : JavaScript, jQuery, Ajax, Java, SAStruts, MySQL, Single-page Web Application, Web API Design

医療系サービス会社様向け、新システム共通自動生成フレームワークの開発

部門毎に構築されていた既存システムを統合化しようというプロジェクトにおいて、新アプリケーションの共通基盤として、自動生成系フレームワーク開発をすることとなった。当該フレームワーク開発に、3名の開発チームのリーダーとして参加。期間後半では、当該フレームワークを用いた実際のアプリケーション部分の開発に参加。 クライアント側はAngularJSベース、サーバー側はWeb APIとしてJava 8で実装。自動生成フレームワークは、クライアント側・サーバー側とも、一式のデータモデル定義、業務フロー定義に基づいて動的に動作するメタデータ駆動方式の設計。概念設計を受けて、詳細要件検討〜基本・詳細設計〜実装〜テストを担当。 関連技術:AngularJS, JavaScript, Java 8, Single-page Web Application, Web API Design, Metadata-Driven Application Design

流通会社様、基幹システムのオープンプラットフォームへのポーティングにおける、現行システム解析

流通会社(卸業)様の基幹業務システムをAS/400からオープン系へ移行する案件にて、現行システム解析(As-Is解析)を行う。AS/400 RPGプログラムのソースコード解析とユーザーへの業務ヒアリング情報から、現行機能の再定義を実施。9名チームの開発リーダーを担う。解析された膨大な現行機能を形式化、再定義し、任意の観点で検索・抽出可能な形式としてMS Accessに格納。 関連技術 : AS/400 RPG, Java, MS-Access, Business Domain Modeling, As-Is Analyzing and Formalization

食品メーカー様、通販受注管理システムの開発

MS-Access製の既存通販受注管理システムを、Webアプリ(PHP/JavaScript)にポーティングする開発を行った。5人月程度の規模の担当機能について、ピーク時3名の開発チームのリーダーとして参加。MS-Access VBAのフォーム定義情報等を解析してPHPコードをジェネレートする方式を採用、この方式のためのツール開発などを実施。 期間が短く、ドキュメントも無かった。ただ、幸運にも既存のMS-Accessアプリケーションは、比較的構造化がよく出来てたので、設計パターン/プログラミングパターンを分析し、パターンレベルでのコード変換を試みることとした。見出されたプログラミング上のパターンに対して外部仕様を規定し、PHP側に互換ランタイムライブラリーを準備、パターンを変換単位としてのコードコンバージョンを実施。この方式であれば業務仕様を具体的に理解せずともポーティングが可能と見込まれた。 関連技術 : PHP, JavaScript, jQuery, MySQL, MS-Access, Java, XSLT, Access VBA to PHP Conversion, Program Semantics Analyzing

生命保険会社様、ユーザーID管理他、各種情報系システムの開発

生命保険会社様情報システム部門にて、社内向け・社外(代理店)向けの各種Webアプリケーションの開発・保守を実施。新規開発は3〜6人月規模、継続開発はそれぞれ1人月規模、1〜5名チームの開発リーダーを担う。期間中盤では、認証サブシステム、ユーザーID管理サブシステム、ポータルサブシステムの刷新と継続的拡張を実施。期間終盤では、運用を踏まえた物理構成や非機能要件に関する開発標準化作業、およびそれを適用するための情報システム部門に対する技術コンサルティングも実施。 新認証・ユーザーID管理サブシステムの移行開発は、現場の運用が破綻しかかっていたのを踏まえて開発側から提案。全体で1年程かけて行った。各部門独立に運用されていた全てのユーザーID運用の現場ヒアリングを実施、既存システムのコードを解析して現状のデータフローを描き、ヒアリング結果と解析したデータフローとの突き合わせから、各ユーザーID運用において本質的に譲れないといえるシステム要件を抽出、相互の関係性からマスターとすべき側、従属側とすべき側の見極め、データフローコントロール用のメタ情報の定義などを実施。この移行開発は現場の運用改善を意図して実施したものだったが、結果的にJ-SOX施行前に完了できた。おかげでJ-SOX観点からの要求に良く答えることができた。もしこの移行がされずにJ-SOXが開始されていたらどうなっていたか、当時ぞっとしたものである。 関連技術 : IBM WebSphere, Java, Sybase 11, Oracle 9, Microsoft IIS, C#, Business Domain Modeling, Enterprise Systems Architecture Design, Software Project Management

サービス系企業様、コンシューマー向けWebサービスの構築

スクラムで実施されるコンシューマー向けWebサービス構築の継続的開発に、バックエンド側のWeb APIとバッチ処理担当として、数名の開発チームに中途参加。設計〜Javaプログラミング〜UT。特に、シングルサインオン化の設計とそれに伴うユーザーデータ移行の計画、利用者の活動に連動して計上する業務処理の設計、を担当。 自身として初の本格的なアジャイル系開発現場だった。ウォーターフォール系開発現場とは良い悪いではなく“文化”や“価値基準”が違うのだということを体で理解した。また、ほぼ単品システムのみを扱っているWebサービス系の現場には、複数システム連携時の仕様の整合取りの問題や関わるところの業務のモデリングに関する知見が蓄積されていないことも理解。そこは「エンタープライズ」や「システム・インテグレーション」をやってきた者としての経験値が有用だった。 関連技術 : Java, SAStruts, MySQL, OAuth, Jenkins, Web API Design, Business Domain Modeling

1995年1月
-
2001年3月

株式会社エーティ・プランニング

7 years

プログラマー

1995年1月 - 2001年3月

企業様向け各種システムの受託開発 / 日本IBM社のパートナー企業であり、同社のエンタープライズ案件に多数参画する。

大手IT企業様、Lotus Notes-複合機連携用ゲートウェイアプリケーションの開発

大手OA機器メーカー様の複合機とLotus Notesの連携を図るゲートウェイアプリケーションの開発を実施。10人月規模、開発は1人。システム要件を元に、設計から実装、検証までを実施。 複数の通信プロトコルを取り扱うマルチスレッディングな設計を熟した。この頃に、C++と一通りのオブジェクト指向プログラミングを習得した。 関連技術 : Visual C/C++, MFC, Win32 API, Salutation (MFP用通信プロトコル), TWAIN (スキャナー用I/F規格), LPR (プリンター用通信プロトコル), SNMP, Object-Oriented Programming

大手IT企業様、Lotus Notesアプリケーションの拡張機能開発

既存のLotus Notesアプリケーションに対して、メール添付されたWord/ExcelファイルをTIFFイメージ化する連携を行うadd-onアプリケーションの開発を実施。3人月規模で、2名の開発チームのリーダー。システム要件を元に、設計から実装、検証までを実施。 Lotus Notesのリッチドキュメント構造を操作する公開APIはC言語ベースのものしかなく、そのままでは取り扱いが困難だったので、C++のラッパークラスライブラリを設計、実装、その上に目的のアプリケーションを構築した。 関連技術 : Visual C/C++, MFC, Lotus Notes, Visual Basic, Object-Oriented Programming

大手IT企業様、グループスケジューラーの開発

企業向けグループウェアのパッケージソフト開発。100人月規模、ピーク時10名の開発チームにメンバーとして参加。 関連技術 : Visual C/C++, MFC, Win32 API, Lotus Notes

某企業様、ECサイトの開発

某企業様のECサイトの新規開発を行う。利用者側Webアプリ〜管理者側Webアプリ〜DB〜決済系まで、トータル50人月規模、ピーク時15名程度の開発チームのメンバーとして中途参加し、詳細設計・実装・検証、本番移行、本番公開後の各種運用を実施。 典型的なデスマーチプロジェクトだった。かつ、本番公開後のトラブルで、膨大なログを突き合わせて手作業でデータ回復を行うという作業を行った。若き日の夏の思い出。 関連技術 : Java, Tomcat, Oracle 8, PL/SQL, Web Application Development, Death-March Project

大手メーカー様、生産管理システムのWeb対応化拡張に関わるAs-Is調査補助

大手メーカー様の既存の生産管理システムのWeb対応化拡張において、アーキテクトが行うAs-Isの企業内全システム間連携図作成や外部インターフェース取り纏めの、作業補助(※調査資料や設計資料の作成)を実施。および、IBM MQを使用したサブシステム関連携アプリケーション開発を実施。 このプロジェクトでは「エンタープライズ・スケール・システム」とはどういったことなのかをよく学ばさせていただくことができた。 関連技術 : IBM WebSphere, IBM MQ, Java, FTP, IBM AIX, IBM S/390, Enterprise Systems Architecture Design

1991年

埼玉大学

理学部 生化学科

1991年


スキルと特徴

SoR

0

エンタープライズ・システム

0

Scala

0

Java

0

DDD

0

Publications

Web世代の皆さん、企業情報システムを見たことがありますか?

2021年6月

若手エンジニアには分からない?業務システムになぜRDBが必要か

2021年5月

稼げるJava 今より楽するコーディング

Accomplishments/Portfolio

小売業向けB2B SaaSのサーバーサイド開発と運用

2018年8月 - 2020年11月

アパレル業界向けB2B事業向けプラットフォーム開発

2018年1月 - 2018年7月

大手IT企業様、Lotus Notes-複合機連携用ゲートウェイアプリケーションの開発

大手IT企業様、Lotus Notesアプリケーションの拡張機能開発

出版社様、基幹システムの開発

さらに表示