ID:62847さん

2023年10月回 指名


3年後の目標や野望


次の世代に残せるプロダクトづくりに携わっていたいです

自分の子どもが大きくなる時代にできるだけ社会負債を残したくないため、自ら関わるプロダクトにはそれが10年後の社会にどれだけポジティブな影響を与えるポテンシャルがあるかを重視します。

年収評価シート

プロジェクトカテゴリ
担当工程
経験した職種・役割
あなたが実際に使っていた技術
このプロジェクト詳細は公開されていません

2020年/2年以上

開発組織マネジメント

# 背景 以下のような課題を持っていた開発組織にマネージャーとして就任しました。 ## 当時の組織状況 入社した当時は、プロダクト開発組織は職能別に分離され、職能横断で行うべき課題は都度プロジェクトが組閣されて対応に当たる状態でした。 また、画一的なプロジェクト管理体制も敷設されておらず、プロジェクトクローズ時には引き継ぎが、新規プロジェクト立ち上げ時にはアサイン調整などがかなりの負荷としてかかっていました。 ## 当時の採用状況 プログラミング初学者向けのSaaSということもあり、なかなか経験のあるエンジニア層に会社のプレゼンスが届いておらず、採用に苦戦している状況が続いていました。 また、採用プロセスも試行錯誤の成長期で、採用した人の定着率が低いという課題もありました。 # 取り組んだこと 大きくは組織上の課題、採用の課題が重要度・緊急度共に高いと考えられる中で、いくつかの改善施策を実施しました。 ## 組織構成 エンジニアマネージャー:1人(当方) エンジニアメンバー:〜20名 - フロント/バックエンド:〜15名 - SRE:2名 - DRE:2名 - アプリ:1名 ## 組織上の課題 職能別に分離されていたプロダクト開発組織を、Feature別に分離する試みのを主導しました。 開発対象のサービスは大きなモノリシック構成の下で、ソフトウェア境界と組織境界をどこに設定するのが最も各チームの認知負荷を下げ、開発生産性向上に寄与するのかを考えて組織デザインを行いました。 また、エンジニアにおいてはどのチームにも落ちない課題のハンドリングや横断での知見共有も重要であるため、2つの取り組みを立ち上げました。 1. Engineer Libero制度 - エンジニアチームメンバーが週替わりでエラー対応や他チームからの問い合わせの一次窓口となり、Featureチームの間に落ちるボールを拾いやすくするための制度です。 - 下記登壇イベントに概要を記載しています。 - https://speakerdeck.com/progate/progate-icare-devmeetup 2. Engineer横断会 - 各Featureチームが対応している課題の共有や技術的に他チームに困っていることの相談ができる場を隔週で実施しています。 - この会をきっかけにチームを跨いだ協業を促したり、普段触れないドメインで利用されている技術に関する知見を得たりしています。 ## 採用の課題 採用においての目下の課題はプレゼンス向上とプロセスの進化でした。 採用プレゼンス向上のために、下記の取り組みを実施しました。 - TechBlogの開設 - 社内のエンジニアがどういう開発を行なっているのか、趣味でどんな技術に触れているのかを発信するためのブログを開設しました。 - 平常時は月に1本程度の頻度ですが、advent calendar期間にエンジニア全員で寄稿して記事を作り溜めたりなどし、採用候補者の方に見てもらうことで組織のメンバーになるイメージを持ってもらいやすくなることを目指しています。 - イベント登壇 - 元々AWS系のコミュニティ運営をやっていた経験があり、その繋がりでいくつかのイベントに登壇してエンジニア向けに会社のアピールを行なってきました。 - 大きめのイベントだと、 AWS Dev Day 2021 や DevRel Conference 2021 などに登壇しています。 また、採用プロセスの進化のために、下記の取り組みを実施しました。 - 採用フローの見直し - 元々は カジュアル面談→技術選考→最終選考 という選考フローでしたが、頑張って採用した人がカルチャー上のミスマッチなどで早期に離職するケースが相次いでいたため、技術選考の前にコンピテンシー選考のフローを追加するようにしました。 - また、その際に確認すべきコンピテンシーについて、ボードメンバーや採用チームとすり合わせを行い、型化された選考手法として手離れしていける状況を目指しています。 ## 経営の課題 上記の既存の組織・採用課題への対処に加え、より長期を見据えた時に必要となる組織の発足や、ビジネスメトリクスの収集方法立案など、より経営目線での課題解決に対処してきました。 具体的にはデータ分析専門のチームの立ち上げや、プロダクト開発グループ全体ミーティングの設計などにも主体的に関わってきました。 # 成果と課題 組織においても採用においても、2020年初期ごろに比べると当時の課題はかなり解消して来れていると言ってもらえることが多いです。 一方で、まだまだ最適解とは程遠い状況にあるので、今解像度が上がってきた課題に対して引き続きどのように対応していくかを模索していく予定です。 具体的に上がっている課題の一例を下記に記載します。 - エンジニア横断での長期的な課題(DevExの向上や大規模なリアーキテクチャなど)を進める体制がない - ソフトウェア境界と組織境界が最適化されていない箇所が存在し、チーム間のコミュニケーション・認知コストが高い - 採用プレゼンスをさらに一段引き上げないと、より好ましい候補者層にアトラクトしきれていない

2019年/1年以内

クラウドマイグレーションプロジェクト

# 背景 社内の共通インフラ基盤(オンプレミス)上で稼働しているサービスの開発チームにジョインした際、当サービスは事業上スケーラブルに成長させることが望まれる一方、共通インフラ基盤ではそのスピードに耐えられないという課題に直面しました。 そこで、システム全体をクラウド(AWS)上に移行するプロジェクトを立ち上げました。 # 取り組んだこと プロジェクト的な取り組みであったため、行なってきたことを時系列で記載していきます。 (インフラのマイグレーションプロジェクトなので、所謂アジャイルな手法より、堅実なウォータフォールプロセスの相性がいいと判断し、時系列に忠実にプロジェクトを進めていきました) プロジェクトの概要は下記です。 - 期間:9ヶ月 - 人数:10人程度(Phaseによって多少の増減あり) ## マイクロスコープ検証 まず、オンプレミスからクラウドに移行する際に何が技術的な課題になるのかの検証を1ヶ月で実施しました。 アプリケーションコードと大枠のアーキテクチャをヒアリングし、テスト構築したAWS上の環境にデプロイしてみることで、動く箇所、動かない箇所の特定をしました。 その結果、移行に際しては下記が大きな課題として対応が必要そうであることがわかりました。 - 社内の基幹システムとの接続 - Oracleのバージョン・エディションが維持できない事によるアプリ互換性担保 - 共通インフラ基盤が提供しているサービス(メールゲートウェイや踏み台、ログ監査など)の利用不可 また、運用チームへのヒアリングを行いながら社内外の外部連携含めた全体アーキテクチャを明らかにし、プロジェクトにかかりそうな工数を概算しました。 ## プロジェクト立ち上げ 所謂プロジェクト憲章を作成し、QCDSのトレードオフスライダーやリスク管理手法などをPOに承認してもらいました。 また、マネージャーに協力してもらいながら対応メンバーを集め、プロジェクト体制を構築していきました。 プロジェクトのコアとなるメンバーに、前期のマイクロスコープ検証の結果をシェアし、クラウド上でのアーキテクチャや必要となるタスクの洗い出し、前後関係の明確化などを行いつつ、プロジェクトの全体感を明らかにしていきました。 最終的に、プロジェクトの最大の目標はスケーラビリティの担保であり、DeliveryやCostはトレードオフの対象となりうることも含めてPOと合意を取り、正式にプロジェクトを開始しました。 ## プロジェクト管理 プロジェクト期間は、初期のマイクロスコープ検証の結果から見えていた対応課題ごとにチームを分けており、私自身は個々の課題に強くフォーカスするよりは、より大きなリスクポイント(マイクロスコープ検証で述べた課題です)の対処に注力するようにしました。 具体的には、下記のような対応・調整を行なっています。 - 社内の基幹システムとの接続 - AWSと社内のインフラで、DirectConnectを用いた専用線を敷設しました。 - 正確には、物理的な専用線自体はすでに他のところで利用されていたものがあったので、今回はVIFやVLAN追加がメインのではあったのですが、基幹システムの情報をクラウドに流すことは前例がなかったので、調整含めてスケジュールは長めに引き、有事に備えました。 - Oracleのバージョン・エディションが維持できない事によるアプリ互換性担保 - オンプレ上ではEnterpriseEdition、ver11のOracleが共通DBとして稼働していたのですが、AWS上に移行し、かつRDSを用いるためにはStandardEditionで、バージョンも少し差異があるエンジンの選択が必要でした。 - そこで、Enterprise→Standardへのダウンエディションで発生しうる問題の洗い出し(機能の利用状況など)と、バージョン差異によるParameter Groupの調整など、社内のDBA専門チームに協力を仰ぎ、一つ一つの差異を取り除けるよう検討を進めました。 - 共通インフラ基盤が提供しているサービス(メールゲートウェイや踏み台、ログ監査など)の利用不可 - 最も苦労したのはメール送信手法の担保でした。オンプレミス環境では商用のメールゲートウェイを用いてメール送受信を行なっていましたが、AWSマネージドのSESを用いる場合は確実なバウンス管理や受信ロジックの自前実装が必要となることが判明しました。 - これについてはプロジェクトメンバー内の想定リソースでは対応できないことが確実だったので、社内のクラウド専門チームに協力を仰ぎ、汎用メールゲートウェイ相当のサービスをサーバーレス構成で構築してもらいました。 ## クローズ・運用 プロジェクトの開発Phaseで必要なものはほぼ納期内で対応が完了しました。 最終的なデータ移行含めたサービス切り替えは夜間メンテナンス枠を取り、サービス停止の元で慎重に行いました。 確実に移行できる状況を担保するため、入念な移行リハーサルと当日対応手順のブラッシュアップを行い、一度のデータ移行で無事にクラウド上でのサービスを稼働させることができました。 プロジェクトの途中で発覚した問題については、トリアージの結果リリース後の対応にすると決めたものもあったので、リリース後の2ヶ月ほどは申し送り事項の対応を行い、全てクリアになったところで元の運用チームに運用を引き渡すことができました。 # 成果と課題 概ねQCDSを外すことなく、プロジェクトを成功させることはできたと思います。 一方で、このサービスへのジョイン直後にプロジェクトを立ち上げたため、サービスに対するドメイン知識が不足しており、初期のマイクロスコープ検証期間中に本来であれば拾えたはずの課題を拾いきれず、開発期間中に問題として発生することが多々ありました。 システムリプレイスのようなリスクの伴う大きなプロジェクトは、十分なドメイン知識を持った状態で取り組むことが好ましいと学び、以降はラフにリプレイスを提案することはよっぽどのことがない限りは避けるようにしています。

2018年/2年以上

データ分析基盤構築

# 背景 スタートアップで新規プロダクトの開発に関わった際、プロダクトで生成されるデータを簡単に分析するための基盤構築に携わりました。 当初データエンジニアが誰もいない状況の中、初期の基盤を1人で作り、サービス成長に伴って蓄積される課題に対応するためにデータ基盤の進化も行なってきました。 # 取り組んだこと ## 最初のデータ基盤設計・実装 ### システム概要 データソースとしてDynamoDBにあるデータを、分析用SQLエンジンであるAthenaから分析できる状態を作りました。 データマスキングなどのセキュリティ強化対応や、スキーマチェックのためにETLレイヤとしてAWS Glueを利用してパイプラインを構成しました。 ### アーキテクチャ・選定技術 - アーキテクチャ - [DynamoDB] -> [Lambda] -> [S3] -> [Lambda] -> [GlueJob] -> [S3] -> [Crawler/DataCatalog] -> [Athena] - 選定技術 - パイプライン管理:StepFunctions - ジョブ実行トリガー:CloudWatch Events ( cron event ) - 基盤IaC:Terraform - CI/CD:Github Actions ### 課題と解決方法 #### 1. 必要なデータのみの抽出 対象のデータ量が多くなることを想定して、ユーザーの行動に起因するデータはDailyでPartitioningされた形式で保管することを検討しました。 しかし、ユーザーの固有データとの突合を考慮すると、ユーザーテーブルはDailyでフルダンプを取る必要があり、データ量的にも無駄が多く、なるべく避けたいという課題がありました。 そこで、ユーザーの行動に起因するDailyの一次データを収集するstepと、そのstepで生成されたデータに含まれるユーザーIDのユーザー情報だけを収集するstepに分けてデータ抽出Lambdaを実装し、DailyでPartitioningされたデータに必要なユーザーデータのみを抽出できるようにしました。 また、Lambdaでデータ抽出を行う処理はLambdaのリソース上限と実行時間上限制約で失敗するリスクがあるので、Lambda上でPythonのProcessを用いた並列処理を実装し、効率的にデータ抽出できるようにしました。 #### 2. 分析用のデータ整形 SQLに明るくない人でもユーザーの行動に起因するデータと、ユーザーの固有データを突合して分析できるようにする必要がありました。 Pipelineではデータソースのテーブルごとに分析用テーブルを作成し、分析用のデータマートはViewなどで実現するのが一般的には好ましいと思われますが、当時のAthenaではCTASがサポートされておらず、データマートをどのレイヤで生成するかが課題になりました。 採用した解決手法として、ETL処理を行うGlueのTransform処理の中でテーブルJoinを行うようにしました。 具体的には、GlueJob内で抽出したデータに対して、DropFieldやDataMaskingなどの前処理を行った後に生成されているDynamicFrameに対して指定KeyでのJoinを行い、一連のParquet形式データとしてS3に出力することで、DynamoDB上のいくつかのテーブルを分析用に結合したDatamartを生成しました。 ### 成果と残存課題 マネージドサービスの組み合わせで、自動化されたデータ処理パイプラインの実装を行い、容易にプロダクトデータを分析できる基盤を構築しました。 しかし、テーブルごとにデータ抽出処理用のLambdaとStepFunctions上のパイプラインを増やさないといけないという運用上の課題や、データ鮮度が1日であるという課題が残り、後に対応することになりました。 ## リアルタイムデータ処理基盤設計・実装 ### システム概要 上記で作成したデータ基盤において、データの鮮度がDailyであり、よりリアルタイム性の高いデータ分析を行えないという課題があり、ニアリアルタイムでDatalakeに連携するシステムを構築しました。 既存のパイプラインはバッチレイヤとして残し、新規のパイプラインをスピードレイヤとして活用する方式です。 ### アーキテクチャ・選定技術 - アーキテクチャ - [DynamoDB] -> [DynamoDB Streams] -> [Lambda] -> [Kinesis Firehose] -> [S3] -> [Crawler/DataCatalog] -> [Athena] - 選定技術 - パイプライン管理:イベントドリブン - 基盤IaC:Terraform - CI/CD:Github Actions ### 課題と解決方法 #### 1. 同期実行されるLambdaのハンドリング DynamoDB Streamsから呼び出されるLambdaは同期的に呼び出され、DynamoDBのレコードに対する変更がキャプチャされると、変更イベントに紐ついて実行コントロールされる仕様です。 通常フローではそこまで問題にならないことが想定されたのですが、同期実行Lambdaが失敗したときの挙動次第ではパイプラインが安定的に稼働しないため、意図的に失敗するLambdaを実行して検証しました。 検証の結果、失敗したLambdaは同期イベントの中でかなり長い時間retryを繰り返しているように見え、調べたところデフォルトで10000回のretryを試す仕様になっていました。 そこで、eventSourceMappingの中でretry回数を制限することを検討しました。 しかし、Streamsの中でどのシャードにLambdaのタスクを配置するかはHashによってランダムに決められ、滞留しているシャードに対して後続のタスクが流れてくる可能性もあり、retry制限だけでは更新が頻繁に発生するテーブルにおいて正しくStreamsによるデータ連携ができない恐れがありました。 そこでStreamsの並列度を上げて確保するシャードの数を増やし、上記の滞留リスクを避けるようにしました。 本来は非同期的に実行されるLambdaにおいてSQSなどキューイング層を挟むことが好ましいと考えられますが、Streamsの仕様と対応コストのROIを鑑み、上記の対応でリスク発生可能性を下げる対応を取りました。 #### 2. Kinesis Firehoseの裏で稼働するETL Lambda バッチレイヤではETLにGlueJobを用いておりましたが、スピードレイヤではGlueJobの起動時間や実行コストが割りに合わないことから、Kinesis Firehoseの裏のLambdaでETL処理を実行するようにしました。 Kinesis Firehoseの裏で実行されるデータ変換Lambdaにはpayloadに対する制約がいくつか存在し、データハンドリングの工夫が必要でしたが、ここでの知見に関しては下記に記載しております。 https://blog.kzk-maeda.work/2021/01/08/ddb_stream_with_kdf/ ### 成果と残存課題 更新頻度の高いテーブルに対して、ニアリアルタイムでデータ連携する基盤を構築しました。 しかし、今回対象としたのはトランザクショナルな追記型のテーブルがメインになっており、UPDATE/DELETEも頻繁に走るテーブルに対して厳密なCDCを行うことは当時実施しませんでした。 CDCを行う場合、Datamart作成の箇所でのデータマージ対応も課題になってくると思いますが、そこまでの対応はこの時できておりません。

マネージメント能力

開発チーム
開発生産性の高い状態
開発組織のリファクタリングに関してはプロジェクトの方に記載したので、ここでは日々のマネジメント業務について記載します。 20名弱のエンジニアメンバーからなる開発組織のマネジメントに当たって、個々のエンジニアメンバーが如何にパフォーマンスを発揮できる状況で仕事に臨んでもらえるかを意識してきました。 これまでのマネジメントでは、期限付きの明確な目標が設定されていなかったり、どうすれば次のステップに挑戦できるのかが不明瞭だったりしており、私がマネージャーになって最初にメンバーと1on1を行う中で、これらに起因するキャリア上の不安が大きいことがわかりました。 そこで、MBOの導入と定期的な1on1を行いました。 MBOの導入においては、半期ごとに期待されるアウトプットや、その中で自身が身につけたいスキル(技術、非技術問わず)を期初にすり合わせし、期中折を見て振り返ることで、自分が今どこに立っていて、何を目指せばいいのかがわかりやすい状態を目指しました。 定期的な1on1は上記のMBOの補佐でもあるのですが、加えてポジティブマインドを醸成するための話題作りや、相互フィードバックの場として浸透させることで、仕事に向かう上での不安を払拭できる場にするように努めました。

VPoEとして、開発組織全体
採用を全方位で行っているわけではないので、現組織でのアウトカムを最大化するための組織設計や施策の実施
まずは開発組織全般についての組織戦略を策定し、全社に展開して宣言しました。 その後の実行施策において、「組織課題」へのフォーカスだけではエンジニアリングのアウトカムを最大化することが難しいという課題に直面し、VPoEとして組織管掌の責務があるものの、その枠を超えて、技術戦略やプロダクト戦略にも価値を出していく必要性があると感じました。 CTO役割がいない体制だったため、自ら技術戦略の策定や新機能開発チームのリードを行い、エンジニアリング組織のアウトカムやモメンタムも向上を図りました。 結果として、新技術を活用した実験的な機能をリリースし、プレスリリースや特許出願にまでこぎつけました。その中でエンジニア組織だけでなく、この活動を見ていた周辺組織も含めてモメンタムを形成することに成功しました。 https://prtimes.jp/main/html/rd/p/000000102.000037602.html

アピール項目


アウトプット

GitHub アカウント
あり
Qiita アカウント
あり
Zenn アカウント
未入力です
Speaker Deck アカウント
あり
SlideShare アカウント
あり
特にアピールしたいアウトプット
あり

今後、身につけなければいけないと思っている技術は何ですか?

# 技術系スキル - アーキテクチャ、デザインパターン全般の知識アップデート - データ分析手法 - LLM関連の知識、経験 - 要求の仕様化などの開発ディレクション手法 # マネジメント系スキル - 組織設計・構築・運営能力の向上 - プロダクトマネジメント(特に企画やUI領域)

あなたが一番パフォーマンスを出せるのはどんな環境ですか?

プロダクトビジョンの達成のために切磋琢磨している環境 心理的安全性の高い環境

キャラクター

直近で一番やりたいこと
組織を作りたい
好きなスタイル
好きな規模
自信を持って人より秀でていると言える点
学習能力 / 巻き込み力 / 人を集める力
スキルのタイプ
得意なフェーズ
会社を選ぶ一番の基準
理念や社会的意義
やりたくない分野
SI / ゲーム / アダルト / 仮想通貨
その他の特徴
未入力です
その他のやりたいこと・やりたくないこと
未入力です

やりたい事

手を動かして設計してコードを書きたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
価値あるプロダクトを作り成長させたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
学び続けて技術力でプロダクトに貢献したい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
意義があることや社会に貢献できる仕事がしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
人や計画の調整・マネジメントをしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
レガシーなシステムの保守・運用・改善をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
企画や仕様を考えるところから関わりたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
業務効率を改善して一緒に働く人のためになりたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
全社横断的な共通基盤作りや強化をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
組織や文化を作る・成長させる仕事をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい

基本プロフィール

年齢
今年で30代中盤
好きな Text Editor
VSCode
希望勤務地
埼玉県 / 千葉県 / 東京都
希望年収
1200万円
転職ドラフトに参加して
企業から指名を受け取ろう!
会員登録をして転職ドラフトに参加すると、参加企業から年収付きの指名を受け取ることができるようになります。
会員登録する
ご意見箱

要望、不具合報告、使いづらい点や感想など、お気軽にお寄せください。
いただいたご意見は、今後のサービス向上に活用させていただきます。

なお、このフォームは受付専用のため、返信を行っておりません。
返信を希望する場合はお問い合わせよりご連絡ください。

  • {{error}}
SIGN UPSIGN IN


転職ドラフトを友人や同僚に薦める可能性はどのくらいありますか?