職務経歴書
2022/07/14 現在
氏名: 志方 裕美
職務経歴
- 2007/04: 某 SI 系企業 入社 新人研修を受講
- 2007/06: ERP 事業部に配属
- 2008/09: 某 SI 系企業 退社
- 2008/10: 某 IT コンサル系社内ベンチャー 入社
- 2008/10: 開発部に配属
- 2011/10: フリーランスとして独立
- 2018/02: 海野制作株式会社設立
- 現在に至る
開発経歴
他
–>
製造業向けSaaSスタートアップ顧問
2022/01-2023/08
- 前任の責任者が辞め入社したばかりのリーダーに負荷がかかっていてどのように進めていけばよいかの迷いが大きかった箇所に関してサポートを行いました。
- 10分程度話しただけでも体制的、技術的な大小さまざまな課題が五月雨に出てくる状態で負荷の高さがうかがえるところからのスタートでした。
- まずは思考中唐突に課題を思いついてしまい思考が発散して何も進まなくなってしまっていることを解決するため、頭の中にある課題を粒度、ジャンル問わずすべて洗い出し重要度と緊急度の評価を行いました。洗い出し後、今考えるべきことの絞り込みを行い大事な事から集中して進む状態を作りました。
- 定期的にオンライン会議を行い、進めていることの状態評価と次に進めることの計画を決めました。私の作業としてはどの工程も質問のみで全ての洗い出しや評価、決定はリーダー自身にしていただいていましたので3回程度の会議で容量を得ていただき流れに乗りましたのでこの取り組みは不要となりました。
- 目下の課題が順番に消えていくようになると長期的にどうしたらいいかわからない不安が出てきていたようですので会社として何を目指しているかを理解するため、どのような情報があれば次に自分たちがやるべきことが見えるかを洗い出す取り組みを始めました。また、もし社長にも見えていない状態であればどのような情報があると社長が考えやすいかも考えてから年単位の未来を理解する取り組みも行いました。リーダーと社長のコミュニケーションを変えてから2ヶ月程度で見えてくるようになり年単位のイメージがクリアになりリーダーの迷いが減っていることが観察できました。
- 長期的な方向性が見え、次に発生した問題はタスクの増え方のスピードがキャパシティを超えていることでした。採用活動は進めてはいるものの応募が少なく、想定したチーム拡張スピードより1ヶ月程度遅れ始めていたので面を広げる取り組み、社内の採用のためのリソース確保などの計画を立てました。今までは無料の媒体に出すだけだった採用活動をもっと能動的に進めるアイデアを相談、実行ていただき複数の良いメンバーの入社が確定しました。
- 次にリーダー自身が本来進めたいと考えている作業の為の時間が取れず、眼の前の作業に追われていて長期的な課題に特に手がつけられていない問題の対応を行いました。
- 今のリーダーの作業の時間配分を洗い出すとメンバーのマネジメントや開発の他に障害対応や本来自動で対応できるものの自動化の時間がなく手作業でリーダーご自身で引き受けてしまったり入ったメンバーの作業が簡単になるように準備してから作業依頼している事が多い事がわかりました。採用したメンバーも育って来ていたのでコミュニケーションのパスやメンバーにお願いする作業の範囲を増やし、稼働時間の50%を未来の取り組みに当てる時間として確保できるようになりました。
- メンバーが増え、チームの自走が課題になり始めていたのでチームのマネジメントメンバーにも会議に入っていただき、体制改善のディスカッションと実行を行いました。マネージャーによるチーム内のコントロールはうまく安定して回るようになりました。
- リーダーが入社した当初からの技術的な負債の解消をリーダーが一人で抱えていた課題の解消のため、技術志向のメンバーが入るよう会議体を変更してディスカッションと実行を行いました。
- 理想はリーダーのトップダウンな指示なしにメンバーが自発的に動くこととしたので課題の洗い出しと認識、評価などの一番最初にリーダーにやっていただいたようなことから始めました。ディスカッションの中でメンバーとリーダーとの価値観や課題認識等の差が埋まり最初の課題は3週間程度で解消し、メンバーの視野が広がる効果がありました。現在次の改善を進めるため同じメンバーでディスカッションを継続しています。
教育系スタートアップ製品のUS版構築
202211-202308(週3)
- 日本のスタートアップが立ち上げたアメリカ法人の事業でした。
- 当初オフショアのメンバー8名程度で構成していた開発チームを解散した経緯で手伝うこととなりました。
- クライアントやチームメンバーはほとんどがアメリカの方なので英語でのやり取りとなりました。エンジニアチームは一人はアメリカ人、私含め二人が日本人でした。
- 作成する必要がある機能が膨大だったためストリクトにDDDを適応し正規化に時間をかけ、Generatorを作成する事でリリースに間に合わせました。
- 自動生成のソースコードにはテストも形成できるようにしたので不具合発生を低く抑えることができました。
- Grapgqlの定義を当初は手書きで進めていましたが途中から自動生成できることに気づきモデルから生成するよう変更しました。
- モデルからソースコードを生成するツールやGraphqlのスキーマ生成のコードは汎用的な為オープンソースとして公開しました。
- チームを大きくしすぎてコミュニケーションコストが増えた反省から、できるだけ小さなチームでオーバーヘッドを減らし8割型コーディングに集中できる状態となりました。
- プロダクトはUS時間の日中使用されるため、メキシコに滞在しタイムゾーンを揃えることで障害対応を迅速に行える状態を作りました。
- カリキュラム作成体制を開発チームのアシスタントとしてで持っていた為進捗のコントロールやCSチームからの不具合報告の対応をアシスタントメンバー達が自身で進められるようコミュニケーションのパスを整えました。
- 今まで英語が第二外国語のメンバーと働くことが多く、英語ネイティブの方との仕事は初めてだった為今までの経験と違う、あまり想定していなかった勘違いや聞き取りにくさ、ネイティブメンバーのイラつきなどが起きてしまうため図を使ったコミュニケーションや事前にテキストで共有事項を出しておくなど、毎回会議のやり方を改善しました。
Technologies
AWS lambda,
CDK,
Node.js,
React,
AWS app sync,
App sync simulator,
DynamoDB,
Dynamo local,
Dtnamo Admin,
Postgress,
Graphql,
Ubuntu,
TypeScript,
Express,
DDD,
Clean Architecture,
GitHub Actions
GitHub,
GitHub Issues,
JIRA,
confulence,
GitHub Projects,
Ttunk-based Development,
Mermaid,
Docker,
docker-compose,
Slack,
Jest
役割
開発
プロジェクト規模
エンジニア 3 名
コンシューマ向けフードテックスタートアップ
202206-現在(週 3)
- 既存のメンバーですでに構築されたシステムを持っているスタートアップでした。
- 外注していたチームの品質が悪く、チームの入れ替えを検討してご依頼いただきました。
- 同時期に入ったメンバー中心でリプレイスを行いつつ、私の方で新機能の開発を行いました。
- 検索機能の追加のためOpenSearch環境を構築しデータの投入からクエリの最適化、チューニングまで行いました。
- 外部サービス連携のためのRPA開発を行い、手動オペレーションの自動化を行いました。
- 連携先が大量に増えていくことが予想されましたので分割統治できるアーキテクチャを採用しスケールしてもスピードを落とさないコードベースを作成しました。
- フロントエンドはflutterで一人しかいなかった為私でコードレビューを行いました。
- 若いメンバーが多く、体制の変化途中で安定しなかったのと完全リモートチームで情報共有や問題の拾い上げに課題があったので会議体の設計やコミュニケーションフローの改善を行い、リモートでコミュニケーション頻度が高くなくても必要なことが明確になるようにしました。
- 自動テストが全くなかったので私で手を入れたところからユニットテストを追加しベースを作成したので他のメンバーもテストを作成してくれるようになりました。
- クレデンシャルが当時いたエンジニアの個人に紐づいているものが多く、チームを離れたあと様々なものが突然動かなくなったので取り急ぎクレデンシャルを更新してまずは動かしつつ、タスクとして創業者のクレデンシャルを使用するよう積んでおき、チームの変化時に同じことが起きないようにしました。
- ci/cdが全くなかったのでCircleCI,
GitHubActionsを導入し手作業の大部分を自動化しました。メンバーも内容を理解し使いこなせるようになったのと、自ら他のCIなども探して試したりしてくれるようになりました。
- モノレポの恩恵を受けるため混乱しがちなCIのファイルを分割統治できるorbを作成しました。他のプロジェクトでも同じ課題を抱えていたのでプロジェクト外で作成しオープンソースとして公開しました。
- トランクベース開発に移行しデイリーで数回のデプロイが継続的にできるよう体制とコードベースを構築しました。
- ドキュメントにOpenAPI, Mermaid,
などテキストベースで管理できエコシステムの充実したフォーマットを採用し、ドキュメントとソースコードとの乖離を防ぐよう構築しました。ドキュメントはCircleCIでホストし、生成と同時に適切なメンバーのみが見れるよう権限管理をCircleCIの機能で行いました。
- ドキュメントへのコードベースからのリンクが必要ですがCircleCIでホストしている成果物のURLが毎回変わってしまうのでGitHub
Pages の機能でリダイレクトを設定し、リダイレクトの先を自動コミットしてドキュメントが自動で最新に保たれる仕組みを構築しました。
- 若いメンバーが実装で止まってしまうことが多く、ケアを行いました。
- 資金調達に難航する時期がありましたのでコスト、稼働調整、体制などについての提案を行いました。
- チーム拡張タイミングには優秀でコミュニケーション能力の高いグローバル人材を採用し、複数のタイムゾーンのリモートチームにも関わらず効率の良いチーム構築を行いました。
- 高額になり始めていたプロキシ代を節約するため、インフラの再構築を行いました。
- メンバーの行動範囲を徐々に広げるため、ロールの違うメンバーと少しだけやり取りが必要なタスクを徐々に増やしスムーズに自走する体制を構築しました。
- リモートチームなのでリアルタイムなコミュニケーションを前提とせずとも現在自分たちがフォーカスするべきこと、タスクの優先順位、何が起きているかのお互いへの共有ができるだけ少ないコストでできるよう正規化した情報のやり取りをするよう仕組みを作り、浸透するようデイリーのルーチンを組んで実行しました。
- 1つの大きなモノリスのサービスとして構築されている部分が明らかに機動力を抑えていたので分割のロードマップを作成しユーザーへの価値提供を強化しつつ、ビジネスサイドの新たな取り組みを実現させながら合わせてリファクタを実行する手順を整えました。こちらは現在実行中です。スタートアップであるため頻繁にビジネスプランや緊急度が変わりますが、週単位での変化では少しの組み換えだけで同時に対応できる状態を維持しています。
Technologies
Scrapy,
Spider,
Playwright,
kubenetes,
AWS lambda,
AWS Batch,
Ubuntu,
TypeScript,
Dart,
Express,
OpenAPI,
Flutter,
Mermeid,
Puppetier,
gRPC,
Golang,
Python 3,
RedShift,
firestore,
DDD,
Clean Architecture,
Microservice Architecture,
Monolithic Repository,
firebase,
GitHub Actions
CircleCI,
GitHub,
GitHub Issues,
GitHub Pages,
GitHub Projects,
Ttunk-based Development,
Mermaid,
OpenSeatch,
OpenSeatch Dashboard,
Docker,
docker-compose,
Slack,
Jest
役割
開発、マネジメント
プロジェクト規模
エンジニア初期 6 名
ECサイトフルスクラッチ構築案件プロジェクトマネジメント
2022/03~07
Technologies
- FlutterFlow
- firebase
- GitHub
- lark
- CircleCI
- GitHub actions
実店舗向け広告プロダクト開発支援
2021/02~現在(週1-3
Technologies
- Android
- Kotlin
- GitHub
- GitHub Actions
- Testing Automation
- GitHub Projects
- Conful
- Slack
- Mokito
コンシューマー向けアプリスタートアップ顧問
2022/02-現在(週1~3日程度)
Technologies
- Flutter
- Dart
- Python 3
- AWS
- OpenSearch
- ElasticSearch
- GoLang
- Terraform
- Ubuntu
- AWS Batch
- Microservice Architecture
- DDD
- Clean Architecture
- RDS
- AWS Aurola
- MySQL
- Docker
- docker-conpose
- Ansible
- CircleCI
- GitHub
- Slack
- GitHub Actions
- Terraform Cloud
- JIRA
- Conful
- AWS EKS
- GitHub Projects
- gRPC
- OpenAPI
- pytest
研究成果のSaaS化 技術検証兼プロジェクトマネジメント
2021/12-2022/03
Technologies
- MATLAB
- python
- GitHub
- CircleCI
ハードウエアから取得した画像をクラウドで分析するMVP開発(ヘルスケア)
2020/12-現在(週 0.5)
- 分析システムをブラウザから使えるようにするプロジェクトでした。
- イテレーションをできるだけ早く、できるだけたくさん回すため、できるだけ労力とコストをかけない体制を構築しました。
- フロントにFlutterのコードを出力できるノーコードを選択し、ビジネスサイドメンバーやアシスタント、デザイナーが直接画面を更新できる体制を目指しました。
- エンジニアリング観点無しで画面の変更ができるため、CIでの自動的なチェックで安全性を担保するようにしています。
- 技術者が私だけだと工数が取れないことと取れたとしても継続性に問題があるためアーキテクチャ設計とバックエンドに強みのあるエンジニアを採用しました。
- 確実に優秀な人を採用するため、アシスタントサービスを導入して大量の候補者の中から選ぶ体制を整えました。
- 海外在住のエンジニアのため、スキル比で換算し40%程度にランニングコストを抑えることができました。
- フルリモートのグローバルチームになるため各種ルールと翻訳環境の整備を行いました。
- 英語が苦手なメンバーも居るため全員が参加する定例では同時通訳の検討をしています。
- ドメインの議論と設計をビジネスサイドメンバーと実施し、会社の拡張方向に合わせた抽象化を行いましたので会話の混乱を少なく抑えることができました。
- FlutterFlowと相性の良いfirebase前提で構成し、FlutterFlowのポテンシャルをフルに活かし最速で完成させる方向を目指しました。
- ビジネスサイドメンバーがMVPを定義から正しく認識できていたため、正しくスモールスタート切ることができています。
- firebase function に依存しないよう、express を抽象レイヤーとして噛ませる設計にし、同時にOpenAPIのジェネレートができる構成を取りました。
Technologies
Ubuntu,
TypeScript,
Dart,
Express,
FlutterFlow,
Flutter,
Mermeid,
no-code,
firestore,
DDD,
Clean Architecture,
Microservice Architecture,
Monolithic Repository,
firebase,
fireauth,
firebase functions,
GitHub Actions
CircleCI,
GitHub,
GitHub Issues,
GitHub Projects,
github-flow,
Slack,
Jest
役割
開発、マネジメント
プロジェクト規模
エンジニア初期 2 名
都市開発系スタートアップ開発支援
2020/03-現在(週 2)
- 既に運用されているモバイルアプリに CI/CD 環境がなかったので構築をお手伝いする案件でした。
- 自動でのデプロイから整備し、インテグレーションテストを整備しました。
- 既に運用されていて品質担保が急務だったこと、テスタブルなコードに変更の必要があったため単体テストをあとまわしました。
- 働く時間も場所もバラバラでタスクの話を slack で行っていたので情報が散らばり、作業の優先順位もつかず無駄なコミュニケーションで前に進めなくなっていましたのでタスク管理ツールで情報を整理する環境を整備し浸透・規律が維持できる体制を整えました。
- 当時 TypeScript 系で一番型安全な ORM が Prisma に見えたので Prisma を導入しました。
- モノレポのメリットを得るためモノレボ構成に移行しました。CI にかかるコストがクリティカルになってきたため差分のある箇所のみ job を実行するよう変更しました。
- 会社が急拡大しパートタイムメンバのみでの実装がビジネス要求に追いつかずトラブルが噴出していた為、海外のエンジニアを採用し海外メンバーを中心としたチームビルドを行いました。
- 優秀な技術者と出会うため、大量の候補者と面談しテストをする必要があったことと、開発以外の作業も人手不足で大量にスタックしていたためオンラインアシスタントサービスを導入し、採用のための作業にレバレッジをかけ、社内の作業負荷を減らす体制を構築しました。
- 会社の方針として広い方向に拡張していく予定があることと、積極的に新しい技術を取り入れやすくするため、ドメインの設計を行いマイクロサービスアーキテクチャに移行しました。
- マイクロサービスアーキテクチャでの開発を早くするため、新規サービス用のテンプレートを用意しました。運用中のサービスと同じくテンプレートサービスも自動テスト実行や自動デプロイで品質を担保していたため、立ち上がりはかなり早くできていましたが新しい技術を採用する余地を奪ってしまう結果になってしまいました。
- 国籍や稼働している物理的な場所が多岐にわたるため、リアルタイムのミーティングの時間や timezone などのルールの整備を行い、1on1 やスクラムイベントの整備など開発をスムーズに進める環境の整備を行いました。
- 採用に成功したあとはアシスタントチームに開発業務にも関わっていただきマニュアルテストやオンボード、各種ツールや手続き、コミュニケーションのハブになってもらう体制を構築しました。
- 人数が増え全員の目線合わせやデリバリーにコミットする意識が薄れ始めていたので体制を変更しスクラムの経験豊富な PM を採用して少人数のチームを作っていく体制に変更しました。
- 仕様を決めきらずにデッドラインだけが迫る状態が続いていたこと、ビジネス課題の整理をできる人が居なかったこと、PM ロールで入ってくれた方がうまくワークしていたこと、私一人で全体の動きが見えないサイズになっていたことをふまえ、 PM ロールの人数を増やしビジネスレイヤの曖昧さから排除し私が居なくても回る体制を構築しています。
- 各エンジニアの状況を私が把握できなくなってきていたので 1on1 は PM と私の 2 人とも全員と行うよう変更し、目下プロジェクトとエンジニア自身の課題は PM と話し、より長期的な事、興味の方向性やスキルを磨きたいところなどの把握は私で行ってこの会社で働く価値を高く保つよう努めました。
- 日本人の平均的なエンジニアよりも優れた人の採用に 1 ヶ月程度で成功するようになったこと、コストが日本人採用時に比べ 1/3 程度で運用できていること、システムをビジネスの理念に合わせた設計にできていることを評価していただきました。
Technologies
Ubuntu,
TypeScript,
Dart,
Express,
Flutter,
firestore,
Postgres,
Google CloudSQL,
Clean Architecture,
Microservice Architecture,
Monolithic Repository,
Feature Flags,
firebase,
fireauth,
firebase functions,
firebase config,
Prisma 2,
OpenAPI,
Docker,
Docker Compose,
CloudSQL,
Google App Engine,
CircleCI,
GitHub,
GitHub Issues,
GitHub Projects,
github-flow,
Zapier,
Slack,
Jest,
Jasmin
役割
開発、マネジメント
プロジェクト規模
エンジニア初期 3 名、最大 35 名程度
大手家電メーカーデータレイク基盤構築
2020/02-2020/12(週 4)
- 既に運用されているデータレイクの改善案件でした。
- デプロイやテストを手動で運用されていたので自動化を行いました。
- AWS 環境かつ Atlassian に寄せたくなかったので AWS CodeBuild, CodePipeline, CodeCommit で自動化を行いました。
- データレイクでのデプロイやテストは普段のアプリケーション開発と違う考慮事項が多くあり面白い案件でした。
- インテグレーションテストでは使うデータが大量なので s3 にバージョンごとのデータを配置しテストコード内でデータのバージョンを指定するよう構築しました。
- モブプログラミングをよくするチームで比較的会話が常にあるチームでしたのでトランクベースの開発を提案して実験させていただきました。
- 処理の一部として Shell が大量にあったのでテストフレームワークに ShellSpec を採用し Bazel でビルド・テスト実行するサンプルを作成しました。
OS
Ubuntu,
SQL,
AWS CloudFormation,
AWS Redshift,
AWS Batch,
AWS CodePipeline,
AWS CodeBuild,
AWS CodeCommit,
ShellSpec,
Bazel,
Docker,
BitBucket,
JIRA,
Slack,
Bats,
プロジェクト規模
エンジニア 5-7 名程度
新規サービス開発・構築
2019/09-2020/01(週 3)
- 技術選定から対応させていただきました(言語, FW, middleware, ライブラリ, ツール等)
- バックエンドの設計・実装・テスト・コードレビュー・DevOps を行いました
- I/F 設計は RESTful, アプリケーション内は CleanArchitecture, 開発フローは GitLab flow, DDD, TDD で進めました
- チームビルド・改善を進めました(1on1, KPT, 勉強会開催など)
- オフショアチームの対応を行いました(daily check-in mtg, 設計の共有, タスクのコントロールなど)
- ビジネスレイヤの取りまとめの作業もありましたがこちらはうまく行きませんでした
Technologies
Linux,
Ubuntu,
Alpine,
TypeScript,
Node.js,
koa,
TypeORM,
MySQL5.6
Redis
GitHub,
CircleCI,
Slack,
Docker,
docker-compose,
OpenAPI,
AWS ECS Fargate,
AWS ElastiCashe,
AWS RDS,
GitHub projects,
プロジェクト規模
エンジニア 4-6 名程度
AI スタートアップ企業のアプリケーションインフラ環境構築
2018/11-2019/07(週 3)
- 急成長のため、アプリケーションエンジニアが一人で組んでいたシステムのインフラ環境の整備を行っています。
- データベース冗長化のため MongoDB の Atlas への移行を行いました。
- キャッシュサーバーを ElasticCache にて新規に構築しました。
- アプリケーションのサーバーをスケーラブルになるよう設計しました。
- 具体的には AWS の EC2 に構築されていたアプリケーションを Docker に置き換え、 AWS ECS (Fargate) に載せ替えています。
- また、新しい環境はすべて Terraform にて構築を行い手作業を禁止し、いつでも消せる・いつでも作れることができる安全な環境になるよう構築しています。
- 今回は Serverless で開発できる環境ではありませんでしたので使用感のみ Serverless フレームワークと同じになることを目指しています。
- 今回はインフラ専用リポジトリを作成いただき、インフラのためのコード化が自由にできる状況を用意していただいたので、CirlceCI 上で各コンテナの自動チェックやインフラコードの自動テストを行い手間の削減と再現性、変更時の安全性を担保しています。
- コーポレートサイドから要望のあった slack bot を探していたのですがマッチするものがなかなか見つからなかったので 新しく開発し、喜ばれました。
Technologies
Linux,
Ubuntu,
AMI,
HCL,
MongoDB,
Redis,
GitHub,
CircleCI,
Slack,
Docker,
Docker Compose,
Ansible,
Terraform,
プロジェクト規模
社員 20 名程度、アプリケーションエンジニア 3 名
スタートアップ企業の AI 組み込み環境構築
2018/09-2019(週 1)
- 機械学習を用いたエンジンを作れる企業に手伝っていただき、エンジンの組み込み部分とエンジン自体の精度を上げるため A/B テストの環境をつくりたいとのことでご依頼いただきました。
- AWS SageMaker を使いたいとの要望があったのと今後の可用性面で適していそうでしたので SageMaker での構築を行っています。
- インフラ環境の全体は terraform で構築し、まだ terraform が対応できていない SageMaker 部分は AWS client を用いて構築しました。
- 開発の環境を Ansible と docker 双方でできるよう、docker image を Ansible で構築するようにしました。
- 今回はアプリケーション構築ではなくインフラでしたが CI/CD を導入し AI エンジンのコードが git に push され次第学習が進むよう構築を進めています。
Technologies
Linux,
Ubuntu,
Python3,
GitHub,
CircleCI,
Slack
Docker
Ansible
Jupyter Notebook
Terraform
AWS SageMaker
プロジェクト規模
3 名
IoT 企業のバックエンド開発
2018/03-2019/07 週 3
- python で AWS Lambda を使用した API サーバーを管理しやすい形に再構築する案件でした。
- FW を使わず Lambda, API Gateway のバックエンドが構築されており、API を使用した自動化をしている状態でしたがメンテナンスがしづらいので Serverless FW を導入したいとのことでした。
- 設計はシンプルではあったのですが外部サービスへの依存が大きくテストしにくい構成になってしまっていて、現に全くテストがない状態でしたので再設計と自動テスト、自動デプロイなどの CI/CD 導入を行いました。
- 新しい設計にクリーンアーキテクチャを採用したことで、ドメインレイヤでのユニットテストではカバレッジ 100 を達成しました。
- ドキュメントがあまりない状態でしたので FW と Swagger を連携し CI にホストさせてドキュメントとしたのと、シーケンス図などのマークダウンで表現しづらい資料は保守性のため html と js でレンダリングできるよう作成し誰でも閲覧できかつ変更しやすい状態になるよう努めました。
- python2 から python3 へ移行し、type hint を導入したのと mypy での解析で不具合を防ぐよう取り組みました。
- Ansible で Ubuntu, Mac のローカルの開発環境構築自動化を行いました。
Technologies
Linux,
Ubuntu,
Python2,
Python3,
Flask,
Flasgger,
DynamoDB,
GitHub
CircleCI
Slack
Docker
Serverless
Ansible
Swagger
役割
メンバー
担当
開発
プロジェクト規模
開発担当 6 名(うちサーバーサイド 1 名)
広告配信サービスの新規開発
2018 年 3 月-2018 年 10 週 4
- golang で広告の配信サービスと配信内容を管理する管理画面を構築する案件でした。
- すでにベースが出来上がっている状態からの join でした。
- 後半は管理画面の API サービスを再設計するタイミングができたのでクリーンアーキテクチャを採用しテスタブルかつ仕様変更しやすい設計で構築し直しました。
- swagger や docker での開発環境がなかったため構築して導入しました。
- 若いメンバーも多くチームの設計、開発ツールの使い方、開発フロー関連の知識の底上げが必要と感じていたためランチ帯や業務後でのスキルアップを図るイベントをいくつか行いました。
- 開発環境構築の資料やスクリプトなどが一切なかったため、Ansible で Ubuntu と Mac 用の playbook を作成し、メンバーに共有しました。
Technologies
Linux,
Ubuntu,
Golang,
Echo,
Goswagger,
MySQL,
Aerospike,
Redis,
GitHub,
CircleCI,
Slack,
Docker,
SchemaSpy,
Ansible,
DockrCompose,
役割
メンバー
担当
開発
プロジェクト規模
開発担当 25 名
新規サービスのユーザー向け Web 画面開発
2018/02-2018/02 週 4
- Kotlin で API サーバーを構築する案件でした。
- 途中まで開発したものがある状態でしたが CI や自動デプロイの仕組みがなく、API 設計や DB 設計が不確定な段階でしたので開発の続きも含め、CI の導入や環境の整備からお手伝いしました。
- データベース設計書もなく別チームのコミュニケーションに問題が発生し始めていたのでリバースエンジニアリングで設計書を作成し、CI で継続的に最新のドキュメントがチーム内の誰でも参照できる環境を作りました。
- フロントエンドのメンバーが足りていなかったため js 周りの調査やエラー解消を行いました。
- 内製ではリスクが高いとの判断から開発は外注することになり内製チームは解散になりました。
Technologies
Linux,
Ubuntu,
Alpine,
Kotlin,
spark,
exporsed,
MySQL,
GitHub,
Backlog,
CircleCI,
Slack,
Swagger,
API Blueprint,
Gradle,
Docker,
AWS,
SchemaSpy,
役割
メンバー
担当
開発
プロジェクト規模
開発担当 2 名
広告クリエイティブ制作ベンチャー企業のシステム刷新
2017/3-2017/9 週 5 うち週 3 はリモート
プロジェクト概要
- 既存のシステムからの刷新
既存システムの一部を機能を見なおして別システムとして構築
途中から既存システムの本体も新しく作りなおす事になり、片方のシステムは言語選定から行い、もう 1 つのシステムは開発要因としてお手伝いをしています。
担当フェーズ
要件定義、言語選定、設計、開発、テスト
Technologies
Linux,
Ubuntu,
CentOS,
TypeScript,
Elixir,
nodejs
express
phoenix
Postgres
GitHub
ZenHub
CircleCI
Slack
Swagger
ansible
mix
TravisCI
Codebeat
Codacy
Docker
AWS
役割
メンバー
担当
開発
プロジェクト規模
要員 6 名程度(API サーバー開発担当 2 名)
広告クリエイティブ制作ベンチャー企業のシステム開発運用支援
2016/11-2017/2 月末まで週 3
プロジェクト概要
担当フェーズ
開発、テスト
Technologies
Linux (Ubuntu, CentOS)
Javascript
css
Node.js
loopback
angularJS
MongoDB
GitHub
CircleCI
Slack
Swagger
GitHubProject
役割
メンバー
担当
開発
プロジェクト規模
要員 4 名程度(開発担当 3 名)
IoT スタートアップサーバーサイドアプリケーション開発
2016/08/01 頃-2016/10 末まで週 5、以降 2017 年 02 月末まで週 2
プロジェクト概要
- 4 月から手伝っているプロジェクトでハードウェアの量産経験がある方のジョインと、量産が見えてきたタイミングでサーバーサイドの開発が取り掛かれるようになりましたので、今までのデモ用システムとは別に新しくシステムの構築を開始しました。
今後の展開を考え、構成を大きく分離し最終的な目的に多くの手段を取れるよう機能的に分離し、粗結合のわかりやすいシステムになるよう構築しました。
意識してはいませんでしたがマイクロサービスアーキテクチャのような構成になりました。
担当フェーズ
要件定義、言語選定、設計、開発、テスト
Technologies
Linux (Ubuntu)
Scala
sbt
play2
MySQL
Ansible
GitHub
CircleCI
Slack
Asana
Swagger
役割
メンバー
担当
開発
プロジェクト規模
要員 4 名程度、うちサーバーサイド開発 1 名
IoT デバイス連携 Android アプリ運用
2016/06/01-2017/9 ※週 2 日、うち週 1 リモート勤務
プロジェクト概要
Bluetooth Classic, BLE を使用した通話デバイスと連携するアプリのデザイン更新、機能追加、 不具合修正を行いました。
Bluetooth, Scala, 音声を扱うプロジェクトで面白い課題が多いプロジェクトでした。
Scala での Android 開発は初めてですので多くのことを学ばせていただきました。
外国人メンバーが多く、自然に英語でのやり取りが発生していましたので、コメントや資料、slack での会話は認識の齟齬が発生しないよういつも以上に注意しました。
担当フェーズ
調査、開発、テスト
Technologies
Linux (Ubuntu),
Scala
sbt
Android
CircleCI
GiHub
DeployGate
GitHubIssue
Slack
Beacon
Bluetooth
BLE
役割
メンバー
担当
開発
プロジェクト規模
要員 20 名程度(Android アプリ開発担当 3 名)
IoT ビーコンデバイス連携 Android アプリ基盤変更対応
2016/04/02-2016/05/31 ※週 3 日リモート勤務
プロジェクト概要
- ビーコンデバイスの基盤変更に伴い開発済みの既存の Android アプリの修正
- BLE の Service, Characteristic などを新基板に合わせて変更しました。
担当フェーズ
調査、開発、テスト
Technologies
Linux (Ubuntu)
Java
Gradle
Fabric
Android
CircleCI
GiHub
PivotalTracker
Slack
Beacon
役割
メンバー
担当
開発
プロジェクト規模
要員 3 名程度(Android アプリ開発担当 1 名)
IoT スタートアップデモ用サーバーサイドアプリケーション開発、ハードウェア開発
2016/04/01-2016/07/31 ※2016/05/31 まで週 4、以降週 5 日
プロジェクト概要
- IoT スタートアップの製品の Web サーバーアプリケーション開発、ハードウェア試作品開発
- 2015 年 12 月から隙間の時間で手伝っていたサービスが本格的に進むことになり、オファーをいただいたので社員になりました。
- ハードウェア側は 3D プリンタや切削、金属加工でのプロトタイプ開発を担当させていただいています。
- ソフトウェア側はデモ用システム設計、データベース&API サーバー、管理画面の開発を行っています。
- サービス、仕様のまとめと量産に向けて技術的な調査、仕様の優先順位の検討、検証用ハードウェアの設計開発などを担当させていただいています。
- プロジェクト管理や資料管理など、開発体制の構築も進めています。
担当フェーズ
調査、設計、開発、テスト
Technologies
Linux (Ubuntu)
javascript
Arduino
3DCad
nodejs
AngularJS
TwitterBootstrap
SQLite
MySQL
npm
bower
Grunt
Sequelize
Ansible
GitHub
Slack
Asana
Swagger
役割
メンバー
担当
開発
プロジェクト規模
要員 3 名程度
センサーガジェットのログ収集・可視化サービス
2016/03/04-2016/03/31 ※週 3 日リモート勤務
プロジェクト概要
- クライアントのガジェットを使用してセンサーデータを集めて保持し、可視化するサービスの開発
- クライアントの新しいサービスとして、営業してみるために使用したいとのことだったので、通常の流れで開発するよりは認証などサービス特有でない部分を飛ばし、機能をデモできるようにするところを急ぎで作る必要がありました。
- データベース設計 & API サーバーの実装と、
ガジェットの SDK が公開されているのでサーバーにデータを送るようカスタマイズするところを担当しました。
- 時間がなく、デザイナーやフロントエンドエンジニアもチームに居ましたのでクライアントとサーバーサイドは API のみの粗結合になるよう努めました。
- 集計データを表示するニーズもありましたのでサマリの方法やタイミングについて、運用負荷がかからないよう工夫しました。
- API 仕様は最初の段階で Swagger で提供し、クライアントサイドの開発が早く進むよう努めました。
担当フェーズ
調査、設計、開発、テスト
Technologies
Linux (Ubuntu)
javascript
html
nodejs
npm
bower
Grunt
mysql
Sequelize
CircleCI
GiHub
Swagger
Slack
役割
メンバー
担当
開発
プロジェクト規模
要員 5 名程度(サーバーサイド開発担当 1 名)
データ可視化系スマートガジェットの認証サービス開発
2016/01/16-2016/02/28 ※週 3 日リモート勤務
プロジェクト概要
担当フェーズ
調査、設計、開発、テスト
Technologies
Linux (Ubuntu)
javascript
html
nodejs
Swagger
npm
bower
Grunt
pm2
SendGrid
KiiCloud
GoogleCloudPlatform
sinon
Jasmine
Mocha
CircleCI
GiHub
GitHub Issues
Slack
TwitterBootstrap
役割
メンバー
担当
開発
プロジェクト規模
要員 3 名程度(開発担当 1 名)
IoT スタートアップサーバーサイドアプリケーション開発、ハードウェア開発
2015/12 中旬頃-2016/03 ※プロジェクトの空き時間など随時、2016/4 に社員になりました。
プロジェクト概要
- IoT スタートアップの製品の Web サーバーアプリケーション開発、ハードウェア試作品開発
- 初期の頃はサービスのデモ用プロトタイプで使用する API、サイト(or アプリ) の相談や設計、開発を手伝いました。
担当フェーズ
調査、設計、開発、テスト
Technologies
Linux (Ubuntu)
javascript
nodejs
AngularJS
TwitterBootstrap
SQLite
npm
bower
Grunt
Sequelize
Ansible
GitHub
Slack
Swagger
役割
メンバー
担当
開発
プロジェクト規模
要員 3 名程度
ソーシャルイベントサービスの Android アプリ開発
2015/12/02-2016/01/29 ※週 3 日リモート勤務
プロジェクト概要
- イベントを企画し、メンバーを募って実行する新サービスの Android アプリ開発
- 企画、デザインは終わっており、データベース、API サーバー、iOS アプリは Android アプリと並行して開発だったため、できた API から随時アプリに組み込む流れで開発しました。
- Android アプリ自体はほとんどがデータの表示のみのため、シンプルな構成のアプリになりました。
- リモートでの開発だったことと、先方に Android の技術者がいないとの事だったので毎日作業進捗はソースコードの push 以外にも Chatwork への文章での報告や作業予定、見込みを報告しました。
- CI や作業途中のアプリを見る仕組みは考えていなかったとのことでしたので CircleCI を導入し DeployGate へアプリを自動で更新させるようにし、常に先方が状態を把握できる環境を作るよう努めました。
担当フェーズ
設計、開発、テスト
Technologies
Linux (Ubuntu)
Java
Gradle
Android annotations,
Android Spring REST client,
CircleCI
Git
DeployGate
ChatWork
役割
メンバー
担当
開発
プロジェクト規模
要員 4 名程度(Android アプリ担当 1 名)
サービス連携サイトプロトタイプ開発
2015/11/06-2016/01/15 ※週 3 日リモート勤務
プロジェクト概要
- ユーザ指定の条件で既存サービスを連携するプロトタイプ開発
- クライアントの自社サービス予定で、本実装の前の、機能のみ試すプロトタイプ開発でした。
- どんな機能があると良いかや、どんな画面が必要かなどを考えるところからかかわらせていただきました。
- まずは機能を試したいとの事だったので、本番では採用しないが早く作れる方法を採用して構築しました。
担当フェーズ
調査、設計、開発、テスト
Technologies
Linux (Ubuntu)
javascript
html
nodejs
AngularJS
mysql
npm
bower
Grunt
CircleCI
GiHub
GitHub Issues
Slack
Sequelize
役割
メンバー
担当
開発
プロジェクト規模
要員 3 名程度(開発担当 1 名)
データ収集 IoT ガジェット連携 Android アプリ開発
2015/10/26-2016/11/05 ※週 3 日リモート勤務
プロジェクト概要
担当フェーズ
調査、設計、開発、テスト
Technologies
Linux (Ubuntu)
Java
Gradle
Android annotations,
Android Spring REST client,
CircleCI
Deploy Gate
GitHub
GitHub Issues
Slack
役割
メンバー
担当
開発
プロジェクト規模
要員 3 名程度(Android アプリ担当 1 名)
IoT 製品連携 Android アプリ BLE 技術検証開発
2015/09/14-2015/10/25 ※週 3 日リモート勤務
プロジェクト概要
担当フェーズ
調査、設計、開発、テスト
Technologies
Linux (Ubuntu)
Java
Gradle
Android annotations,
Android Spring REST client,
Beacon
CircleCI
Git
PivotalTracker,
Slack
役割
メンバー
担当
開発
プロジェクト規模
要員 4 名程度(Android アプリ担当 1 名)
2015/05-2015/08 ※週 3 日 IoT 製品プロトタイプ開発
プロジェクト概要
担当フェーズ
マイコンのプログラム設計、開発
回路設計、開発
Technologies
Linux(Ubuntu12)
arduino
C++
役割
メンバー
担当
開発
プロジェクト規模
1 名
ハードウェアスタートアップ企業開発支援
2015/01 頃-2015/10 ※週 2〜3 日、5 月から週 4 日
プロジェクト概要
-
IoT の新製品開発
- ハードウェア、電子回路未経験の中で関わらせていただき、とても勉強になりました。
- 開発プロジェクトの経験がある中で時間的に一番長く出勤していることもあり、基本の設計とエンジニアのタスク管理やスケジュール調整などの管理面も関わらせて頂きました。
- 各種センサー、音声認識、画像認識等の未経験の技術を使用していること、エンジニアほぼ全員がフルタイムではない働きだったこと、学生さんも多くチーム開発のノウハウやツールに慣れていないチームでしたので、スケジュールの調整やタスクの割り振り、情報共有、開発体制・フロー構築、運用自体に苦労しました。
- 変更が多く、フルコミットでないメンバーで回す必要があるため、わかりやすく分離しやすい設計と柔軟な開発体制を保つこと、メンバーのスキル向上を意識しました。
担当フェーズ
サーバーサイド設計、開発
プロトタイプのハードウェア回路設計、開発
筐体内ソフトウェア設計、開発
Technologies
Linux(Ubuntu12, Ubuntu14)
arduino
Javascript
NodeJS,
AngularJS
TwitterBootstrap3,
Mongoose,
MongoDB
Jenkins,
Git,
Ansible,
Yeoman,
Apache2,
Julius,
OpenCV,
Slack,
Redmine,
Swagger,
elasticsearch,
fluentd,
kibana,
役割
メンバー
担当
開発
プロジェクト規模
要員 13 名程度(開発 7 名、うちサーバーサイド 1 名)
業務システム開発
2014/09-2015/04
プロジェクト概要
- Android とブラウザで使用する業務システムのプロトタイプをサーバーサイドからクライアント、Android アプリまで一貫して開発しました。
- サーバーサイドで Scala、Android アプリで AndroidAnnotations、Javascript の FW に AngularJS と、私にとって初めての言語・FW ばかりを選ぶことができ、とてもありがたい環境でした。
- ユーザー様との打ち合わせや仕様の検討に参加させていただき、仕様や機能、意図がくみとりやすかったので私の思いつく範囲で機能のご提案をしました。
- コンパクトな体制でしたしまだ仕様が固まっていない状態での開発でしたので、早く利用イメージができるよう、できるだけスピード感を持って開発するよう心がけました。
- テーブル数 27
担当フェーズ
設計、開発、テスト
Technologies
Windows,
Linux
Scala
Java
Javascript
Gradle
Skinny (Scala)
Flyway,
Jetty,
Tomcat,
Android annotations,
Android Spring REST client,
TwitterBootstrap3,
AngularJS
jQuery,
Robolectric
Postgres 9.4
Jenkins
Git
Redmine
役割
メンバー
担当
開発
プロジェクト規模
要員 4 名程度(開発 1 名)
SDK 運用チーム
2014/04 頃-2014/08
プロジェクト概要
- この時期から社内の Android アプリが認証や課金時に使用する SDK の担当になりました。
複数の SDK がありましたのでリリース作業自動化や品質向上のための各静的分析自動化など、jenkins を使って更に安全に運用できるよう努めました。
- Gradle でビルドを行いたいと要望がありましたので SDK のビルド・リリース作業の Gradle 化を行いました。
- また、実現したい機能が既存のプラグインだけでは実現できなかったり無理して組み込んでもパフォーマンスが悪く使い物にならなかったりしたので独自の jenkins プラグインを作成し組み込みました。
- SDK の Cocos2dx プラグイン化作業(Android 側と共通部分)を行いました。
担当フェーズ
設計、開発、単体テスト
Technologies
Windows,
Linux,
Java
Gradle
C++(少し)
Cocs2dx(少し)
SQLite
Jenkins
Nexus
Git
SVN
役割
メンバー
担当
開発
プロジェクト規模
要員 5 名程度
アプリ運用チーム
2013/09/27-2014/04 頃
プロジェクト概要
- 客先のメイン事業のサービス名を冠したアプリで長く運用されており、クローズできないアプリでした。
- 歴史があり、ソースが読みにくいので数ヶ月のリファクタリング期間が設けられていました。
- 画像選択を行う画面をライブラリとして開発しました。
- クライアントサイドをメインで開発したことがなかったため、リソースの節約やイベントの多さ、ケースの複雑さ、端末依存の現象や UI のためだけの制御など、サーバーサイドとの違いに戸惑いました。
- 品質を維持するための静的解析やビルド自動化の作業の時間ももらえたため、チームのサーバーに jenkins を構築しました。
担当フェーズ
設計、開発、単体テスト
Technologies
Windows
Java
Shell(少し)
Groovy(少し)
SQLite
Git
Jenkins
役割
メンバー
担当
開発
プロジェクト規模
要員 5 名程度
ゲーム部門コアシス
2012/12/06-2013/09/26
プロジェクト概要
- 複数ゲームで使用されるシステムの開発、運用。
- 認証などは大元のプラットフォーム側で運用していたことと、各ゲーム側にもこちらから使う API を用意してもらって構築したため普通のシステムより多くの API を使用するシステムになりました。
- パフォーマンスの問題や、大型ゲームのトラフィックがリリースしたての小さなゲームの API サーバーを圧迫するなど、使用 API が多いシステムならではのトラブルがありました。処理の頻度を緩めて各サーバーヘのアクセスを短時間に集中させないこと、キャッシュを許容するよう、数値の管理チームに相談に行くことで対応しました。
- 各ゲームとの連携がうまく行かないと動かず、立場上も反感を買いかねない場所ですのでできるだけ連絡を密にするよう気をつけ、調査などもこちらでできることは吸収するよう努めました。各ゲームでサーバーの構築方法や FW が違いましたので調査やソースの確認を通していろいろなケースの勉強になりました。
- アプリケーションの作りもアクセスの多いサイトならではの方法が多く、とても勉強になりました。
- AP サーバー 15 台程度(当時)
- DB サーバー 3 台(master1&slave2・当時)
- 画面数 20 程度
- テーブル数 50 程度
- 各ブラウザゲームの WebView アプリ化(Android)もさせて頂きました。対象ゲームは 6 個、今後さらに増える見通しでしたので計測などゲーム個々の処理以外は全て FW として実装し、各ゲームの処理は数個程度の薄いクラスで収まるよう作成しました。
担当フェーズ
設計、開発、テスト、運用
Technologies
Linux
Java
FTL
HTML
CSS
JavaScript
shell
Spring
MySQL
SVN
Git
Apache
Tomcat
Memcached
Jenkins
Android
役割
メンバー
担当
開発
プロジェクト規模
要員 14 名程度
モバイルブラウザゲーム運用
2012/08/16-2012/12/05
プロジェクト概要
- フィーチャーフォン、スマートフォン用ブラウザゲームの運用
- アクセス数が多いのでサーバー 40 台程度で運用していました。
- アプリケーションの作りもアクセスの多いサイトならではの方法が多く、とても勉強になりました。
担当フェーズ
追加機能開発(機能ごとの DB 設計〜単体テストまで)
CS 調査
Technologies
Linux
Java
FTL
HTML
CSS
JavaScript
shell
Seaser
MySQL
Apache
Tomcat
役割
メンバー
担当
開発
プロジェクト規模
要員 20 名程度
独自サービス構築
2012/05/01-2012/08/15
プロジェクト概要
- サイト構築システム
- 画面数 83
- テーブル数 39
担当フェーズ
全行程
Technologies
Linux
Java
JSP
HTML
CSS
JavaScript
shell
Struts
MySQL
Apache
Tomcat
役割
メンバー
担当
開発
プロジェクト規模
要員 1 名
大手家電メーカー事業部生産管理システム構築
2011/10/07-2012/04
プロジェクト概要
- 大手家電メーカー事業部生産管理システム
- Ui の処理は Java, JSP で行い、DB への更新は PL/SQL で行う
- 画面数 73
- テーブル数 122
担当フェーズ
Java 側の詳細設計、開発、テスト
業務内容
- 詳細設計から実装、テストまで
- リリース前プログラム修正、調査、チューニング等
実績・取り組み等
- Java 開発者は当初私を含め 4 人アサインされており、私自身は 11 月末までの短期案件の予定でした。開発フェーズが落ち着きメンバーが減る段階では、技術力を評価していただき、チームの Java 担当技術者としては唯一、3 月末のリリース前後の要員として残ることになりました。保守要員としての長期の依頼も頂く等、評価していただきました。
- 開発スタイルは WF ですが全体的に時間と要員が足りず、設計書がないまま口頭で仕様を聞いて開発するなど、イレギュラーな状態での開発になりました。
- 設計書がなく、特に他の技術者の担当プログラムはソースしか情報が無い為、変更や修正の際にはソースからプログラム設計を理解し変更を行いました。
- Web アプリケーションについてはチームの中で私が一番詳しかった為、機能実現に向けた技術的な提案や Web 特有の制約事項の説明を行い、設計に協力しました。
- リリースも近く、スケジュールもぎりぎりだったため、いつも以上に体調管理に気をつけました。お蔭様で 1 度も病欠せず、業務に専念することが出来ました。
Technologies
Windows
Java
JSP
PL/SQL
Struts ベース独自 FW
Oracle
Apache
役割
メンバー
担当
プロジェクト規模
要員 13 名
大手飲食チェーン店ポイントシステム部品・バッチ作成、選挙の後援者管理システム、ツイッター割引まとめサイトの「ツイ割」、パリーグ野球チームの分析システム機能追加、パリーグポータルサイト管理サイト、携帯サイト CMS、美容院予約システム、等構築。
2008/10-2011/10
大手飲食チェーン店依頼ポータルサイト
2011/02/21-2011/10/07
プロジェクト概要
- 大手飲食チェーン店より依頼の、飲食店ポータルサイト構築。
- 画面数 26
- テーブル数 85
担当フェーズ
基本設計、詳細設計、開発、テスト
業務内容
- 基本設計から実装、テストまで
- デザインはデザイン担当会社から HTML でデザインを受け取り、JSP への変換を行う。
実績・取り組み等
- JSP はデザイン会社の人が直接更新することもあるのでできるだけ HTML がわかれば理解できるソースにするよう心がけました。
- すでに構築されているモバイルサイトの派生プロジェクトですのでソースや設計はモバイルサイトに準じた方法をとりました。
- その他、別に製作してあるモバイルサイトの管理サイトに PC サイト用の機能追加を行いました。
Technologies
Linux(RH)
Java
JSP
Struts2
MySQL
Apache
役割
メンバー
担当
プロジェクト規模
要員 1 名
デザイン会社数名
小売店向け EC サイト構築・受注発送請求管理システム構築
2009/04-2009/05 (2 カ月)
プロジェクト概要
当時エクセルで行っていたグループ会社向け通販の管理を Web システム化するプロジェクト。
- 顧客サイト画面数 25
- 管理サイト画面数 48
- テーブル数 33
担当フェーズ
- 要件定義。基本設計、DB 設計、詳細設計、実装、デザインあて、テスト、納品、データ移行
業務内容
- スケジュール管理
- 顧客向け EC サイトとクライアント向け管理サイト要件定義、各設計、実装、テスト、納品、データ移行
- ヤマト運輸発送伝票出力システム B2 との連携、佐川急便発送伝票出力システム e 飛伝との連携
実績・取り組み等
- 要件定義から 2 ヶ月で納品し稼動させるスピード開発でしたが移行までスケジュールどおりに進めることができました。
- 管理サイト構築後の使用感の確認を行った際に担当者が IT リテラシーが低めだとわかり、業務マニュアルとヘルプを兼ねる「ガイド」を担当業務別に作成、ログイン後のトップページやメニューは担当者が使う機能数個のみに絞り、迷うことがないよう工夫したところ、大変喜んでもらうことができました。
- 個人情報を扱うため、厳密な権限管理ができるようにしました。
- 運用負担がかからないよう、クライアント側で各種設定ができるようにしておきましたので問い合わせは 2 年半たっても数件にとどまりました。
Technologies
Linux(RedHat)
Java
JSP
HTML
JavaScript
CSS
Struts2
MySQL
役割
メンバー
プロジェクト規模
要員 3 名
受託飲食店グループ向けポイントシステム開発
2009/02-2009/04 (3 カ月)
プロジェクト概要
大手飲食店グループ向けポイント管理・CRM システム構築・運営。
業務内容
- モバイルサイトへくじ機能追加
- 分析システムで使用する天気情報取得バッチ作成
- ポイント失効処理、失効前メール送信バッチ作成
- 上記機能設計、実装、テスト
実績・取り組み等
- モバイルサイトの作成や実行可能 Jar の作成、メール送信機能は初めてでしたがインターネットで情報を集め自力で作成することができました。
Technologies
Linux (RedHat)
Java
JSP
HTML
JavaScript
CSS
Struts
MySQL
Apache
役割
メンバー
プロジェクト規模
要員 5 名
顧客・会合管理システム(受託)
2008/10-2009/01
プロジェクト概要
クライアント主催の会合やワークショップに参加している顧客情報を管理し、アテンド担当社員情報と会合の連絡管理や出欠管理を行うシステムの構築。
担当フェーズ
要件定義、各設計、開発、テスト、納品、データ移行、保守・サポート
業務内容
- 要件定義、基本設計、DB 設計、画面設計、実装、デザインあて、テスト、運用保守、データ移行サポート
- スケジュール管理、進捗管理(デザイナー、HTML コーディング担当との調整)
実績・取り組み等
- 最初の 1 ヶ月はクライアント側の調整が終わっていなかったことと、私自身 Java での開発が初めてだったため練習用サンプルプログラムを作成する期間となり、実質 2 ヶ月間で要件定義から納品まで行うスピード開発でした。
- 初めてのプロジェクト全体スケジュール管理を行いましたが約束の納品日を守ることができました。
- クライアントは社内の人事異動や部署名変更が頻繁で、顧客アテンド担当者の管理が大変だったとの事なのでアテンド担当者の所属部署やアテンド担当者をすべて別の担当者に引き継ぐなど、一括操作ができるよう利便性に考慮しました。
- 個人情報を扱うため、機能画面ごとの厳密な権限管理をし、権限は役割に合わせて一括で管理、ユーザー側で自由に変更できるよう設計を工夫しました。
Technologies
Linux
Java
JSP
HTML
JavaScript
CSS
Struts
MySQL
Apache
役割
メンバー
担当
プロジェクト規模
要員 6 名
お小遣い帳 Web アプリ、支出記録・割勘用のモバイルサイト (PHP 勉強用)
2008/03-2008/09
プロジェクト概要
SAP プロジェクトからの帰宅後や休日を使用して PHP で構築しました。
担当フェーズ
全行程
Technologies
Windows
PHP
MySQL
大手化学メーカー SAP アドオン開発
2008/06-2008/09
プロジェクト概要
SAP 導入・アドオン開発。
担当フェーズ
詳細設計、開発、単体テスト
業務内容
- 新規プログラム詳細設計、詳細設計書作成、DFD 作成、実装、テスト仕様書作成、テスト
- 仕様変更対応
- パフォーマンスチューニング
- 調査
実績・取り組み等
- 通常の新規モジュール開発の他に新人 4 名での画面プログラム開発、複数回にわたり開発停止になった画面プログラムを外国籍のメンバー数名と開発するなど、大きなプログラムを開発することもできるようになりました。
- 移行対象モジュールが使用しているモジュールを正確に知ることができずに設計チームが困っていることを知り、空き時間で同時移行するべきモジュールを一覧にするプログラムを作り、提供しました。
- 二次受けの企業と共同で行う ABAP 講習の講師を 1 日のみ依頼され汎用モジュール開発の講習を行いました。
Technologies
SAP
ABAP
Oracle
役割
メンバー
プロジェクト規模
要員数百名
大手家電量販店 SAP アドオン開発
2007/08-2008/05
プロジェクト概要
SAP 導入・アドオン開発。
担当フェーズ
詳細設計、開発、単体テスト
業務内容
- 新規プログラム詳細設計、詳細設計書作成、実装、テスト仕様書作成、単体テスト
- 仕様変更対応
- 調査
実績・取り組み等
- OJT で先輩に助けられて経験を積みました。
- プログラムを始めて半年の頃に作った個人用の調査プログラムが好評で、設計チームでも使われることになり、割り当てられた仕事以外でも貢献することができました。また、このツールなしでは仕事ができないと今でもプロジェクトに残っている先輩に言っていただき、今でも使われていることを知りました。作ったものが便利だと思ってもらえることを非常に嬉しく思います。
- チームにはプロジェクトの初期メンバーとしてアサインされましたが、当初 6 名程度だったチームは評判が良く、要員追加されて十数名程度にまでなりました。開発フェーズが終盤になると当時の 1 次受けコンサルティング会社の別プロジェクトへチームまるごと移動するよう依頼される等チームの評価向上に微力ながら貢献しました。
Technologies
SAP
ABAP
Oracle
役割
メンバー
プロジェクト規模
要員数百名
取得資格等
- 2007/03 普通自動車免許
- 2007/03 柔道整復師免許
- 2007/10 SAP 認定コンサルタント
自己 PR
-
クライアントの作業効率改善に向けた提案
業務系の開発は顧客が気づかない作業効率改善箇所の指摘と改善の為の機能追加や、
操作に迷わない画面設計と機能を追加する工夫をしてクライアントに喜ばれました。
例えば、配送担当者は主に 6 つの業務を行っているので、配送担当者が管理画面に
ログインするとその 6 つの業務のうちどれを行いたいかの選択肢のみを表示し、
発送伝票作成であれば、「○ 月 ○ 日の発送伝票を作成する」というボタンを表示することで
迷わないよう設計しています。
また、納期までの期間が短く、運用契約のされているプロジェクトでも各種設定画面と、
それぞれの画面上に詳細な説明文を用意し、変更や操作がわからないなどの問い合わせを
減らす工夫をしています。運用開始から 2 年程度たちましたが問い合わせは
2 ~ 3 件にとどまっています。
-
開発効率化に向けた取り組み
文字列変換や入力チェック用部品、年齢や期間の算出など、プロジェクト特有でない処理は汎用部品として独立させ、次のプロジェクトでは部品を組み合わせるだけでできるよう、汎用部品を日々洗練させています。すでにテスト済みの部品なので、プロジェクト全体のバグの数を減らし、開発スピードを上げることができるようにしています。
また、画面設計の変更やデータベースの変更に強い設計を目指して構築していくうちに、画面やデータを扱う箇所を分離して構築するようになっていましたが、後に MVC と呼ばれることを知りました。MVC に関してはすでに知られている設計手法でしたが常に開発効率と汎用性、堅牢性を意識して開発しています。
また、各ツールの開発や Jenkins でのビルドやテスト、静的解析はもちろんのこと、ADT の更新通知やリリース時のドキュメント収集保存・apk 調査用 job 等、自動化で各所でのエンジニアのストレスを軽減しシステムの品質向上・開発スピードアップできるよう常に意識しています。
-
個人での勉強
2 社目の会社に入社する時、クライアントサーバーモデルや HTTP について一切分からない状態でしたが独学で PHP のシステムをつくり、認められて入社しました。
Web 業界に入った後、占有サーバーを借りて Xen で仮想化し、それぞれに Apache や DB などアプリケーションをインストールして AP サーバー・DB サーバーにし、個人で作ったサイトをそちらで運用しています。GNOME をインストールしたサーバーには VNC で接続して普段使うデスクトップサーバーとして構築、普段から仮想デスクトップ環境で開発やメール、スケジュール確認など PC で行う自分の作業をほぼ全てサーバーにて行っています。
しばらく Xen にて運用していましたが現在は新しく Ansible, VirtualBox, Vagrant を使用して構築しなおし、デスクトップサーバー、AP,DB サーバーに加え個人用の Jenkins を インストールして使用できるようにしています。
ローカルのマシンとデスクトップサーバーは毎月 OS クリーンを行い、案件ごとの開発環境の構築を Ansible で行っていましたが各ツールのインストールや設定に非常に時間がかかるため案件ごとにデスクトップ環境を Docker で作成し Docker 上での開発に移行しました。
常に OS クリーンをすることとステートの位置を把握することでローカルのみに重要なデータを保管してしまったり、ローカルだけで動くなどの問題が発生しないよう努めています。
また、常に自分のローカル環境とデスクトップサーバーを作り直すことで新しく join したメンバー向けに配布している開発環境構築のスクリプト(最近はほとんど Ansible の playbook です)が正しく動作するかを検証しています。
また、最近は趣味でも仕事でも電子工作をはじめ、 arduino を使用して 赤外線、各種センサー、サーボモーター等を使ったり、CAD でデータを作って 3D プリンタで出力できるようになりました。今は電気の回路設計を勉強しているのと、レーザーカッター、切削等の工作機械、塗装等のトレーニングも受け、自分の作りたいものの技術的な課題を消化しています。
今後、業務や個人の趣味で困難なことがあっても自力で調べて対処できると思っています。
よろしくお願い致します。