業務経歴書
基本情報
key | value |
---|---|
名前 | 勝又 健太 |
生息地 | 東京都 渋谷区 |
オンラインサロン | 雑食系エンジニアサロン |
@poly_soft (フォロワー29,000超) | |
Qiita | @poly_soft (Contribution数17,000超) |
Youtube | 雑食系エンジニアTV (チャンネル登録者数50,000超) KENTA兄さん (チャンネル登録者数4,000超) |
ポートフォリオ | kenta-aktsk (ほぼElixirのみ) |
小説 | 鬼喰い |
英語力 | TOEIC820点 |
bokete力 | 星13,000超 |
概要
-
クラウドアーキテクチャ設計、クラウドインフラ構築管理、基盤コード開発、DevOps/MLOpsが現在の専門です。
-
バックエンドの多種多様な言語/DB/フレームワークを用いた豊富な開発経験があり、AWS/GCPの様々なマネージドサービスに精通しています。(一応AndroidアプリとiOSアプリの開発経験もあります。元々はWindows系のエンジニアなので.NET系の開発も多数経験しておりますが現在はLinuxプラットフォームでの開発がメインです)
-
小規模〜中規模サービスの新規開発フェーズや、サービスのリプレイスフェーズにおいて非常に有用なエンジニアだと思います。(改修フェーズや保守運用フェーズも対応可能ではありますが、サービスのアーキテクチャ設計の段階から参画させて頂くことで最もバリューを発揮できるタイプです)
-
「手を動かすエンジニア」としての業務から「開発コンサル」「技術コンサル」「技術顧問」まで幅広く対応可能です。お仕事に関するお問い合わせはTwitterのDM等からお気軽にどうぞ。
スキル
- 基本的にすべて実業務で使用した技術だけを列挙しています。
言語
Rust | Kotlin | Scala | Java | Go | Elixir | Ruby | Python | PHP | Perl | JavaScript | TypeScript | VC++ | C# | VB.NET | Delphi | Objective-C | Action Script
フレームワーク等
Iron | Vert.x | Finch | Cats | Shapeless | Scaldi | PlayFramework | Slick | ScalikeJDBC | Spec2 | Struts | Revel | Phoenix | Ruby on Rails | Flask | Django | Zend Framework | CodeIgniter | CakePHP | Ethna | Symfony | jQuery | Vue.js | Nuxt.js | MFC | .NET Framework
RDB/NoSQL
MySQL | PostgreSQL | Greenplum | Oracle | SQL Server | Redis | Memcached | Tokyo Tyrant | Kyoto Tycoon
クラウド
AWS
VPC | S3 | CloudFront | API Gateway | Lambda | ELB | EC2 | ECS | Fargate | Beanstalk | EKS(Kubernetes) | Route53 | IAM | Cognito | Elasticsearch Service | RDS(MySQL|PostgreSQL) | Aurora | Aurora Serverless V2 | DynamoDB | ElastiCache(Redis|Memcached) | Kinesis | Kinesis firehose | Kinesis Video Streams | SQS | SNS | SES | Redshift | EMR(Spark) | CloudFormation | CloudWatch | EventBridge | AWS Batch | Step Functions | SageMaker | Amazon Personalize | CloudTrail | AWS Config | GuardDuty | Security Hub | CloudHSM | KMS | Parameter Store | Client VPN | VPC Peering | AWS Organizations | AWS Control Tower | AWS SSO(Single Sign-On)
GCP
VPC | GCS | Cloud Functions | GCE | GKE(Kubernetes) | Cloud Run | GAE/SE(Standard Environment) | GAE/FE(Flexible Environment) | GCLB | IAP | IAM | Cloud SQL | Cloud Memorystore(Redis) | Cloud Pub/Sub | Cloud NAT | Cloud Armor | BigQuery | Dataflow(Apache Beam) | Composer(Airflow) | ML Engine | Datalab | Deployment Manager | Cloud Build | Cloud Source Repository | Stackdriver Logging | Stackdriver Monitoring | Firebase(Firestore)
SaaS/PaaS
GitHub | GitHub Actions | BitBucket(Stash) | CircleCI | Wercker | Datadog | Sentry | NewRelic | TreasureData | DeployGate | TestFlight
その他
Terraform | Spinnaker | Envoy | Docker | Xen | Jenkins | Fluentd | Capistrano | Chef | nginx | unicorn | Apache | Tomcat | Gulp | Webpack | Pug | SASS | Mecab | Zabbix | munin | Elasticsearch | Kibana | Algoria | RabbitMQ | LDAP | LVS | BIND | DHCP | IIS | Active Directory | DirectShow | Sharepoint Server | Exchage Server
バリューを発揮しやすい業務
- クラウドアーキテクチャ設計
- クラウドインフラ構築管理
- 基盤コード開発
- パッケージマネージャの導入
- LinterやFormatterの導入
- 単体テストや統合テストの導入
- local/dev/stg/prod環境の適切な切り分け
- Gitブランチモデルの適切な定義
- アプリケーションのマイクロサービス化
- サーバーレスアーキテクチャの導入
- 認証サービスの導入
- メッセージングサービスの導入
- 全文検索サービスの導入
- CDNの導入
- CIサービスの導入
- コンテナ化(Docker化)
- インフラのコード化
- オートスケールの設定
- デプロイの自動化
- データベースマイグレーションの自動化
- バッチジョブのフロー制御
- クラウドの権限管理
- 監視ダッシュボードの導入
- ログ収集と分析基盤の構築
主な業務経歴
法人向けアンケートサービスの技術スタック刷新/技術顧問/エンジニア採用支援【Rails/Fargate/Terraform/AWS】(2022年〜現在)
【プロジェクト概要】技術顧問としてアンケート系Webサービスおよびその周辺サービスの技術スタックの刷新、エンジニア採用支援等を担当。
[担当業務1]各種Webサービスの技術スタックの刷新を担当。具体的には下記。
- Terraformによるインフラのコード化(VPC/Fargate/RDS/ElastiCache/Aurora/Lambda/CodeDeploy等)。専用のシェルスクリプトの作成によってリソース単位ごとにvalidate/plan/apply/destroyを実行できる機能を実装。設定値を他のツール(CloudFormation等)やスクリプトでも使用することを考慮してTerraformのworkspace機能を使わずに設定値を一括管理する仕組みも確立。
- AWS環境上でのインフラの構築 => データベースのマイグレーション => アプリケーションのデプロイまでのほぼ全ての処理を1コマンドで実行およびロールバックできる仕組みの構築。
- Lambdaによるデータベースのマイグレーション機能の構築とCDパイプラインへの組み込み。Lambdaの実行環境にはコンテナイメージを使用してローカル環境からもinvokeできるように専用のスクリプトを作成。
- CodeDeployを活用したFargateのBLUE/GREENデプロイ機能の構築。テストトラフィック疎通検証用のイベントフックLambda(言語はJavaScript)の作成やNAT Gateway導入によるLambdaのIPアドレス固定化等も担当。
- Application Auto ScalingによるFargateのオートスケール機能の実装。
- Capacity Provider Strategyの設定とFargate SPOTの導入、および夜間の自動スケールイン機能の導入によるコスト低減。
- GitHub ActionsによるCI/CDパイプラインの構築。OIDCプロバイダーの活用によりIAMアクセスキーをGitHub側で保持せずに一時トークンでAWS CLIやTerraformを実行する仕組みも確立。
- Dockerとdocker-composeの導入によるローカル開発環境構築の迅速化。専用のベースイメージの作成によるDRY化/ローカル開発用と本番用Dockerイメージの切り分け/Cache Mountの活用による不要なgemやnpmパッケージビルドの省略化等も担当。
- buildx導入によるDockerイメージのマルチCPUアーキテクチャ対応のビルド機能を構築。FargateがECRからイメージをpullする時間を短縮するためにzstd圧縮機能も導入。
- Dockerイメージへのタグ付けルールの策定とタグの自動設定機能の作成、およびGitHub Actions上でのタグ指定によるFargateタスクのロールバックの仕組み等も構築。
- ECS Execの活用により踏み台サーバ等を経由せずにFargate上のコンテナにログインできる仕組みの構築。管理用のFargateタスクを動的に起動してログインできるシェルスクリプトも作成。
- 非本番環境のAWSアカウント上のWebサービスのALBに対するアクセス制限の実装。不便なIP制限ではなくGoogleアカウントによる簡易かつ効率的なアクセス制御を実現。
- 1PasswordとAWS Parameter Storeを活用した秘匿情報管理の仕組みの構築。1Password CLIとAWS CLIを連携させて1Password上の秘匿情報を簡単にParameter Storeに設定できるスクリプトも作成。
- shellcheck/hadolint等によるシェルスクリプト/Dockerfileの静的解析機能の実装。
- AWS SSO(IAM Identity Center)の導入により、ローカル環境でIAMアクセスキーを使わずにAWS CLIやTerraformやそれらを含むシェルスクリプトを実行できる仕組みを構築。SSOユーザーやグループや権限セットは全てTerraform化してコードで管理。
- AWSのマルチアカウントセキュリティレベルの向上のための各種設定作業(AWS Control Tower/Security Hub/CloudTrail/AWS Config/GuardDutyの導入や外部識者による脆弱性チェックの支援等)
- EventBridge + StepFunctions + Lambdaによる、AWSアカウント新規追加時の各種セキュリティ設定の自動化作業。これらも全てコードで管理。
[担当業務2]アンケート系Webサービスのインフラの完全リプレイス作業を担当。具体的には下記。
- インフラをTerraformでほぼ完全にコード化。(Route53の一部のレコードやACMに関してはライフサイクルが異なるためAWSコンソール上で作成)
- コンピュート基盤をEC2からFargateに移行。必要なパッケージの選別、不要なコードの削除、秘匿情報のParameter Storeへの移行と環境変数による設定、DockerfileおよびDockerイメージの作成とパイプライン化、負荷試験によるFargateタスクの必要スペック算出作業を担当。
- 数TBの大規模RDS MySQLデータベースを別アカウントのAuora MySQLに移行。VPCピアリングの設定、AWSアカウントをまたがるレプリケーションの設定、その他スナップショットのコピーやAuroraリードレプリカからの昇格、Terraformとの関連付け等の詳細な手順書の作成と事前検証作業を担当
- ElastiCache RedisとElasticCache Memcachedのアカウントをまたがるデータ移行作業を担当。こちらも詳細な手順書を作成して複数回の入念な検証作業を実施。
- 大容量S3バケットの移行。
- DNSの切り替え。
- 一連の作業はメンテナンス時間を事前に告知して深夜に実施。ダウンタイムは数時間程度でほぼトラブル無く移行することに成功。
[担当業務3]作業フローの改善作業を担当。具体的には下記。
- Scheduled reminderの導入によりGitHubとSlackを連携。エンジニアがreviewerとしてアサインされているプルリク一覧が平日朝にメンション付きで通知されたり、GitHub上でメンションが発生した場合に該当する担当者にリアルタイムで通知が発生することにより、作業漏れの可視化やコミュニケーションの円滑化を実現。
- GitHubのブランチ構成の変更と適切なブランチ保護の設定とGitHub Actionsとの連携により、安全性の向上や作業フロー/デプロイフローの統一化に貢献。
[担当業務4]エンジニア採用支援やハイレベルエンジニアのスポット参画支援を担当。具体的には下記。
- 求人サービスに掲載するエンジニア募集広告の文面作成やリライトの支援。企業様のニーズとエンジニア採用市場の現状(経験者エンジニアの超売り手市場になっている)、および優秀なエンジニアが興味を持つ可能性の高い情報(技術スタックを刷新中であることや少人数チームのため手を挙げれば様々な分野にチャレンジできる環境であること等)を多面的に考察した上で文章を考案。
- エンジニア面接への立ち会い。応募者様の技術力/自走力/思考力/技術への興味関心/人間性/柔軟性を判断するための適切な質問項目を作成。業務経歴書等のドキュメントも事前に十分な時間を確保して熟読。企業様への関心度や好感度を高めていただくために面接時の態度にも配慮。結果として優秀なSRE2名様、バックエンドエンジニア1名様の正社員採用に大きく貢献。
- サービスやインフラの脆弱性チェックを依頼できるエンジニアをSNSその他を活用して募集。DMも積極的に使用してお声がけをおこない、結果的にAWSセキュリティの専門家の方のスポット参画を実現。
【発揮したバリュー】ローカル開発環境の整備やインフラのコード化、CI/CDパイプラインの構築など、作業フローの効率化と各種自動化作業等に大きく貢献。主要サービスのインフラの完全リプレイスという大きなプレッシャーを伴う作業もほぼトラブル無く完遂。技術スタックの刷新による開発者体験(DX)の向上施策も推進して企業様のリクルーティング力のアップにも貢献。エンジニア採用支援やスポット参画支援等により実際の採用活動にも貢献。
GitHubを活用したプログラミング学習サービスの開発【Nuxt.js/TypeScript/Firebase】(2021年)
【プロジェクト概要】GitHubを活用して実践に近いスタイルで学習できるプログラミング問題集サービスの開発
【担当業務】GitHub APIその他の技術調査、画面設計、DB設計、Nuxt.jsによるフロントエンドの実装、Cloud Functionsによるバックエンド関数の実装、GCPの各種サービスの設定、各種自動化スクリプトの作成等を担当。具体的には下記。
- Nuxt.js+Composition API+TypeScriptによるフロントエンド部分の実装
- Firestore(NoSQL型データベース)のDB設計および適切なセキュリティルールとインデックスの設定
- Cloud RunおよびFirebase Hostingを使用したアプリケーションのホスティングとSSRの実装
- Cloud Functionsを使用した各種バックエンド関数やGitHubのWebhook用関数の作成
- GCLB+IAP+Cloud Runを組み合わせたGoogleアカウントベースのアクセス制限の設定
- Algoliaを使用した全文検索機能の実装
- Vuetifyを使用したフロントエンドUIの作成
- 各種GitHub APIの調査
- デプロイ用Bashスクリプトの作成
- shellcheck/hadolint等を使用した静的解析とバリデーションの実装
【発揮したバリュー】Nuxt.jsとFirebaseでの開発はいずれも初体験であり特にNuxt.js+Composition API+TypeScriptの組み合わせに関しては情報も少なかったが、各種書籍やネット情報を地道に調査してベストプラクティスを素早く習得。NoSQLデータベースであるFirestoreの独特な設計手法やセキュリティルールにも戸惑ったがこちらも短期間でキャッチアップ。フロントエンドのUI作成作業も10年以上ぶりであったが、HTMLやCSS(Flexboxやグリッドシステム等)をゼロから学習し直してVuetifyによるレスポンシブなUIをとりあえずは実現。
ブロックチェーン系BtoBサービスのインフラ構築/DevOps基盤構築【Go/EKS/Envoy/GitOps/Spinnaker/Terraform/AWS】(2019年〜2020年)
【プロジェクト概要】ブロックチェーン系BtoBサービスの新規開発チームにおいて、インフラの構築/DevOps基盤構築、技術検証用アプリケーションの開発作業等を担当
【担当業務】Terraformによるインフラのコード化、Spinnakerを使用したGitOpsスタイルのCI/CDパイプラインの構築、Envoyによるサイドカーパターンの構築、KubernetesのManifest作成、各種自動化スクリプトの作成等を担当。具体的には下記。
- Terraformによるインフラのコード化(VPC/EKS/Aurora/ElastiCache等)
- EKSを使用したマイクロサービス基盤の構築
- Envoyを使用したサイドカーパターンによるマイクロサービスアーキテクチャの構築
- Istioを使用したサービスメッシュ上でのマイクロサービスのデプロイと管理
- SpinnakerのEKS環境での構築およびPipelineとArtifacts機能を使用したCDパイプラインのコード化
- KubernetesのManifestファイルの作成と管理(ツールはkustomizeやsedやsigilを使用)
- shellcheck/hadolint/kubeval等を使用したバリデーションの実装
- GitHub ActionsとSpinnakerの連携によるGitOpsスタイルのCI/CDパイプラインの構築
- CloudHSMを使用した暗号化キーストアの構築
- CloudFrontとS3による静的リソース配信基盤の構築
- SESによるメール配信基盤の構築
- KMSとkubesecによるキー管理基盤の構築
- 上記の様々な機能が実装された技術検証用アプリケーション(Go + gRPC)の作成と本体アプリケーションへの機能の組み込み
【発揮したバリュー】これまでの案件で培ったAWSやDevOpsの知見を活かし、インフラのコード化やCI/CDパイプラインの構築、各種自動化作業等に大きく貢献。Spinnakerは初体験であったがPipelineやArtifacts等の機能を速習して短期間でキャッチアップ。Envoyを使用したサイドカーパターンも初体験であったがこちらも速習して短期間で対応。
ニュース配信系サービスのアーキテクチャ設計/インフラ構築/API開発/DevOps基盤構築【Go/Python/EKS/Terraform/AWS】(2019年)
【プロジェクト概要】ニュース配信サービスの新規開発チームにおいて、アーキテクチャ設計やインフラの構築管理、基盤コードの作成作業等を担当
【担当業務】サービス全体のアーキテクチャ設計、Terraformによるインフラのコード化、各種デプロイスクリプトの作成、バッチジョブの作成、ゲートウェイ用APIの開発等を担当。具体的には下記。
- Terraformによるインフラのコード化(VPC/EKS/ElastiCache/Aurora等)
- EKSを使用したマイクロサービス基盤の構築
- App Meshを使用したサービスメッシュの検証
- Elastic Beanstalkを使用したAPI基盤の開発
- Go + gRPCによるマイクロサービスの基盤コードの開発
- Python + Flaskによる機械学習APIの基盤コードの開発
- CloudWatch + AWS Batchによる各種バッチジョブの作成
【発揮したバリュー】AWSを使った案件は久々であったが、前案件で培ったマイクロサービスおよびMLOpsの知見を活かしてモダンなアーキテクチャ設計やインフラのコード化、デプロイの自動化作業等に大きく貢献。Terraformは初体験であったがCloudFormation等の知識を活かして短期間でキャッチアップ。EKSの構築管理も未体験であったがGKE/Kubernetesの経験を活かしてこちらも短期間で学習。
機械学習系システムの開発ワークフロー整備/API開発/インフラ構築【Go/Python/AWS/MLOps】(2018年〜2019年)
【プロジェクト概要】国内最大級の情報サイトを運営している企業様の機械学習チームにおいて、開発ワークフローの整備やクラウドインフラの構築管理等、いわゆる「DevOps」「MLOps」系の業務を担当。
【担当業務】複数のマイクロサービスにおける共通の開発ワークフロー整備やサービス全体のアーキテクチャ設計、WebAPIと機械学習APIの連携、GCP上のインフラ構築等多種多様なタスクを担当。具体的には下記。
- Istio導入によるサービスメッシュ化のメリットの調査。
- Knative+Istioを使用したサーバーレスプラットフォーム環境の調査。
- GKE + Go + gRPC + Pythonの組み合わせによるマイクロサービス構成の調査と開発。
- Go + OpenAPI3.0 + go-swaggerによるREST API定義とモデルの自動生成によるAPI開発。
- Gitリポジトリのブランチモデルの定義およびBitbucketを使用したレビュー&デプロイフローの整備。
- Cloud Source RepositoryとCloud Buildを使用したCI/CD環境の構築
- Cloud DatalabとML EngineとCloud Composer(Airflow)を使用した機械学習ワークフローの構築。
- Cloud Dataflow(Apache Beam)を使用したビッグデータ分散処理に関する調査と開発。
- Cloud Composer(Airflow)を使用したジョブフロー制御基盤の構築。
- Cloud Memorystore(Redis)の導入。
- Pipenvの導入によるPython開発環境の共通化と環境毎の差異の解消。
- flake8とblackの導入によるコードフォーマットの統一とコードレビューの効率化。
- GAE/FEとGKE(Kubernetes)を用いたBitbucket連携サーバの開発。
- GAE/FEとCloud SQLを用いた簡易推薦APIの開発。
- VPCとGAEのファイアウォール設定。
- GCEを用いたNAT Gatewayの構築とルーティング設定。
- GCEを用いた踏み台サーバの構築。
- Cloud Deployment Managerとgcloudを使用したインフラのコード化。
- Cloud Functionsを使用したDBの自動マイグレーション機能の導入。
- Stackdriver Monitoringを使用した監視ダッシュボードの構築。
【発揮したバリュー】「GitHubが使えない」「サードパーティのCIツールが使えない」「ローカル環境から外部ネットワークへのSSH接続が禁止されている」「インフラに対する外部からのアクセス元IPの制限が非常に厳しい」「GCPのプロジェクトを自由に作成出来ない」等、様々な制約条件のある中での業務であったが、幅広い知識とスキルと速習能力を活かし、「モダンな開発ワークフローのスムーズな導入」および「少人数で管理可能な省力化された機械学習インフラ構成」を実現してチームに大きく貢献。
汎用レコメンダシステムの開発【Kotlin/Vert.x/TypeScript/Vue.js】(2017年〜2018年)
【プロジェクト概要】機械学習系のプロダクト開発に強みをもつ企業様において、汎用レコメンダシステムの開発作業を担当。
【担当業務】主にインフラ設計やアプリケーションのアーキテクチャ設計作業を担当し、CloudFormationによるAWSのインフラ構築と管理、CircleCIによるCI/CD環境の構築、APIサーバのWebフレームワークの選定、各種実装作業等を担当。 言語はKotlin。WebフレームワークはVert.x。データベースはDynamoDBとAurora、認証基盤にはCognito、ログ収集にはFluentd、分析基盤にはBigQuery、監視系ダッシュボードにはDataDogを使用。 フロントエンド(管理系画面)の実装も担当。言語はTypeScript、フレームワークはVue.jsを使用。(HTMLはPug化、CSSはSASS化)
【発揮したバリュー】CloudFormationによるAWS構成管理は初体験であったが短期間で学習しキャッチアップ。インフラのコード化とデプロイの完全自動化を実現。またAWSサポート等を有効に活用して適切なAWSサービスを選択/提案しサービス全体のシンプル化に貢献。フロントエンドの担当も久々であったが最新のトレンド(Flux/Webpack/Babel/TypeScript等)を短期間で学習してモダンな構成を実現。
大規模DMPの開発・運用業務【Scala/Rust/GCP】(2017年)
【プロジェクト概要】大規模DMPの開発・運用業務を担当。
【担当業務】主にAPIの開発・改修・移植作業を担当。使用言語はScala/Rust。使用した主なライブラリはScalaがFinch/Cats/Shapeless、RustはIron。 サーバー環境はGCP(Kubernetes/GKE/GCS/Cloud Pubsub)。 分散処理基盤としてApache Spark、分析基盤としてTresure Dataを使用。
【発揮したバリュー】Scalaに関しては「Better Java」ではなく「関数型スタイルでの開発」が徹底されている環境だったため、CatsやShapeless等の関数型ライブラリの使用方法や概念に慣れるまで非常に苦労したが、「Scala関数型デザイン&プログラミング」等で学習し短時間でキャッチアップ。GKE(Kubernetes)も同様に短期間でキャッチアップして早い段階で戦力として貢献。 Rustに関しては未経験(チーム内にも経験者ゼロの状態)であったが、こちらも短時間で「オーナーシップ」や「ライフタイム」等の概念を理解して2ヶ月ほどでAPIの移植作業を完了。
ネイティブ広告プラットフォームの開発【Scala/Go/Spark】(2016年)
【プロジェクト概要】SEOコンサルティングやトレーディングデスク事業等を行っておられる企業様において、ネイティブ広告プラットフォームの開発作業を担当。
【担当業務】Apache SparkとScalaを使用した大量データのバッチ処理システムの機能追加、Golangを使用した配信サーバーの機能追加、広告タグ(JavaScript)の改修、クローラー(Ruby)の改修作業等を担当。
【発揮したバリュー】Scala、Goともに初経験であったが、持ち前の速習力を発揮して短期間でキャッチアップ。 Sparkおよび分散処理フレームワークとMap/Reduceの概念、文書マッチングの際のTF-IDFや機械学習系ライブラリの使用方法に関しても見識はほぼゼロの状態だったが、こちらも短期間でキャッチアップ。 Scala/Golang/Ruby/JavaScriptと、タスクごとに多言語を行き来する環境であったが、強みである速習力とユーティリティ性を発揮して多面的にチームに貢献。
メディア系Webサービスの雛形開発【Elixir/Phoenix】(2016年)
【プロジェクト概要】Elixir/Phoenixの技術検証、および外部への技術アピール用(主目的はリクルーティング)にメディア系Webサービスのサンプルプロジェクトを開発。
【担当業務】認証/認可/ソーシャルログイン/多言語対応/DBのマスタースレーブ対応/ページネーション/S3への画像ファイルアップロード/SESによるメール送信/OGP/サイトマップ/RSS/ElasticSearchによる全文検索等、通常のメディア系Webサービスで必要になる機能を、ElixirとPhoenixで実装。
【発揮したバリュー】不足している機能は専用のパッケージを開発してhexにアップ、Phoenixや各種パッケージの不具合を多数発見してプルリクを送信する等、Elixirのエコシステムにも貢献。Qiita記事の投稿やイベントでの登壇等、チームおよび企業自体のプレゼンスの向上に貢献。
オタク女性向けのニュースまとめ系Webサービスの開発【Rails/AWS】(2015年)
【プロジェクト概要】オタク女性向けのニュースWebサイトの開発。
【担当業務】サーバーサイドの開発およびインフラ構築を担当。 DB設計/管理画面/認証/API/画像アップロード/ソーシャルログイン/多言語対応/サイトマップ/RSS/OGP/Cron設定/ランキング算出用バッチ/Capistranoによるデプロイスクリプト/WerckerによるCI/Fluendによるログ集約/NewRelic/フロントエンドへのGulp導入/XSS対策/CSRF対策/n+1問題対策/SEO対応等、様々な機能の設計/実装をメインエンジニアとして担当。
【発揮したバリュー】Railsを使用してゼロからコードを書くこと、およびAWSを本格的に使用するのはこれが初体験であったが、持ち前の速習力を発揮して短期間でキャッチアップ。様々な情報を参考にしてその時点のベストプラクティスな手法やライブラリを入念に調査&積極的に採用し、良い意味でコモディティ化された保守性の高い構成を実現。
プライベートクラウドの構築管理【Bash/Chef/LDAP/LVS/BIND】(2012年)
【プロジェクト概要】プライベートクラウドの各種管理作業
【担当業務】プライベートクラウドの各種管理作業(ノード追加やLDAP設定等)、ロードバランサーの設定作業(仮想IPの追加や冗長化構成の変更作業等)、社内DNSの設定作業(ゾーンの移動や冗長化構成の変更作業等)、Cassandra/Redis/RabbitMQ等のrpm作成やインストール/初期設定作業、Capistrano/Chef-Soloを使用した構成管理作業等を担当。
【発揮したバリュー】本格的なインフラエンジニア業務は初体験であったが、書籍やネット等でBashスクリプトやLDAP、LVS、BIND等を速習し、短期間で戦力化してチームに貢献。後半は当時まだ情報の少なかったChef-Soloを使用したノードの構成管理業務等の難易度の高い業務も任されたがこちらも完遂してタスク処理能力の高さを発揮。
カードバトル系ソーシャルゲームの開発【PHP/MySQL】(2012年)
【プロジェクト概要】カードバトル系ソーシャルゲームの開発とDB負荷対策
【担当業務】招待機能、日記機能、Flash Liteとの連携機能、クエスト系イベント機能の改修作業、およびイベントランキング用バッチの改修作業等を担当。 後半は技術調査チームにジョインしてMySQL周りの調査・負荷測定作業の担当となり、パーティション設定、レプリケーション設定、my.cnfの適切なパラメータ設定等に関する各種提案作業を行う。その他mysqlslapを使用した負荷測定のマニュアル作成や、HandlerSocketの適切な使用法の解説、blackholeストレージエンジンの調査、MySQLソースコードの局所的な解析作業等も担当。
【発揮したバリュー】ソーシャルゲーム開発の黎明期から培ってきたノウハウを活かしてチームの生産性向上に大きく貢献。技術調査チームにおけるMySQL周りの負荷対策やチューニング業務は初体験であったが各種書籍やネット情報をフル活用して異常な高負荷の原因を突き止めるなど技術調査業務でも貢献。
動画キャプチャソフトの開発【C#/VC++】(2009年)
【プロジェクト概要】動画キャプチャソフトの開発
【担当業務】DirectShowとC#を使用した動画キャプチャソフトのほぼ全ての機能の開発を担当(ゲームプレイヤーがプレイ動画をYoutube等にアップすることをメインの用途として想定)。動画変換部分にffdshow等のフリーウェアを使用した以外は、C#によるフォーム作成や動画キャプチャ&保存機能等のほぼ全ての実装/テスト/デバッグ作業等を一人で担当。
【発揮したバリュー】録画時の音ズレ発生に悩まされたが、動画キャプチャ後にAVIファイルのヘッダを書き換える方式を独自に考案して対応。(実際にキャプチャできたフレーム数と録画時間の差異を計算して、再生時用のフレームレートを書き換える等の処理を行った)
旅行先での各種観光スポットのクチコミ情報投稿サイトの開発【Java/Struts2】(2009年)
【プロジェクト概要】旅行先の各種スポット(レストラン/ホテル等)のクチコミ情報投稿/閲覧Webサイトの新規開発を担当。
【担当業務】開発用フレームワーク(Struts/iBatis/Spring等)の連携方法やDIに関する調査、各種画面の実装作業、テスト/デバッグ作業等を担当。(作業人員は約3名)
【発揮したバリュー】Linux環境もJavaもほぼ初体験であったが、書籍やネット上の情報、およびチームリーダーのサポートを得て迅速にキャッチアップ。この時点ではチームリーダーも知らなかった「DI」の概念を調査および理解してシステムに落としこむ等、ここでも学習能力の高さを発揮。
世界初のマンガ作成用グラフィックソフトの開発【VC++/MFC】(遥か昔)
【プロジェクト概要】当時としては世界初の、マンガ作成用グラフィックソフトの新規開発を担当。
【担当業務】言語はVisual C++、フレームワークとライブラリはMFCとSTLを使用し、主にアプリケーション全体のクラス設計と、画像ファイル処理、画像変形処理(回転/拡縮等)、変形時の画像補間処理、ディスプレイへの描画処理等の実装、デバッグ作業等を担当。
【発揮したバリュー】画像処理アルゴリズム等は全く未経験であったが、各種書籍や、当時画像処理系の記事が連載されていた「C Magazine」のバックナンバーを購入する等して対応。(C Magazineの連載に掲載されていたアルゴリズムにはいくつか誤りがあったが、自分でそれを発見して修正対応するなど、学習能力の高さを発揮)