最終更新日: 2024/09/18
基本情報
名前: 阿部 耕太郎 (Kotaro Abe, abekoh)
所在地: 東京都
SNS等へのリンク: abekoh.dev
職務経歴
2021/11- 株式会社MICIN
- DCT事業のリードエンジニア
- DCT=Decentrized Clinical Trial、分散型臨床試験
- 治験の業務支援サービスの開発・運用・保守
- Go, TypeScript, React.js, PostgreSQL, AWS, Terraform, DocuSign, etc…
- PdM2名, エンジニア3-5名, QA2-3名, etc (インターン、業務委託含む)
- 全体の設計・実装方針に責任を持つ
- 開発フローの整備、スクラムの導入
- 開発メンバーとの1on1、課題の吸い上げ・知識共有、スキルアップ支援
- ドメインの用語を揃えつつメンバーとすり合わせながら仕様策定
- 正社員・インターンの採用活動。スカウト・書類選考〜面接まで対応
- 開発で得られた知見のアウトプット
- 社内のエンジニア知識共有の取り組み
- LT会の立ち上げ。月1回、3-4名が10分程度発表
- Advent Calendarの運営
- 2022年: MICIN Advent Calendar 2022 を終えて | MICIN Developers
- 2023年も貢献しました: MICIN Advent Calendar 2023 - Adventar
2018/04-2021/10 ヤフー株式会社 (現: LINEヤフー株式会社)
- 広告審査システムのサーバサイドエンジニア
- 広告審査システムの開発・運用・保守
- Java, Spring Boot, Oracle Database, Kubernetes, Google Cloud, etc…
- デイリー数百万リクエストされる広告の審査を、分散サービスを構築して処理
- Apache Kafka, Apache Pulsarを多く活用したイベント駆動サービスを長らく保守
- 秒間数万リクエストを数ミリ秒以内に返却するシステムの構築
- 社内オンプレとGoogle Cloudとの連携
- OJT/新卒メンバー育成(OJT6名、新卒4名)
学歴
2016/04-2018/03 九州大学大学院システム情報科学府情報知能工学専攻
- ヒューマンインタフェース研究室(内田研究室)所属
- 修論テーマ: “Generative Adversarial Networks(GAN)を用いたフォント生成に関する研究”
- 研究関連のコード
- uchidalab/fontdesign_gan: 修論の成果物
- abekoh/adversarial_character: CNNを騙す文字画像を遺伝的アルゴリズムで作成
2012/04-2016/03 九州大学工学部電気情報工学科
- 学部2年以降は情報工学を専攻
- 学部4年より上記の研究室に所属
社外活動
登壇
- Go Conference 2024 (LT枠)
記事 / スライド
反響が大きかったもの・特に力いれたものをピックアップ
- Goで自作RDBMS - abekoh’s tech note
- Go入門とQ&A ver.2023.10 - abekoh’s tech note
- moqを使ったGoのテスト
- シェル環境2023 - abekoh’s tech note
- ドメイン駆動設計からオブジェクト指向、そしてアジャイル開発まで。関連書籍練り歩きのススメ
- Spring Cloud Stream, Reactorを使ってノンブロッキングなストリーム処理を実装する
- 『理科系の作文技術』から学ぶ技術文書の書き方 - Speaker Deck
OSS
- abekoh/simple-db: Implementation of the SimpleDB database system in Go.
- abekoh/wordle_helper: Help solving Wordle question with CLI. Built with Rust.
- abekoh/blog-v3: Blog. built with Astro.
- abekoh/commit-plantuml-action: This action generate diagrams (png) from PlantUML files (*.puml), and commit to pull-request. Also this can add review comment of diff files.
スキル
技術
やってきたこと・考え方・希望など
- 静的型付け言語を中心に扱いたい
- Go, TypeScript, Javaが業務経験として長い
- Rust, Kotlinなども興味あり
- 長く続くプロジェクトであれば必ずメンバー入れ替え・忘却・大規模リファクタリングが発生する。そのとき静的型付けでないと余計な負担を強いられる。それを防ぐためにも最初から型はきっちり対応してきたい
- Go
- 業務で3年、趣味含めると5年ほど
- 最近では一番手慣れている。サーバからワンタイムのスクリプトまで何でもGoで書いてしまう
- Go関連のコミュニティにもよく参加している
- 平易な文法だからこそ、平易な書き方で完結させるのが正しい姿という考えで最近はコーディングしている
- Java
- Spring Bootを使った実務経験3年
- IntelliJ IDEAと組み合わせて効率よくクラスを構築していくのが得意
- Goとは異なり、それぞれのクラスの役割がどうなるべきかをしっかり考えて実装する
- Java 11より後はあまりキャッチアップできていない
- アーキテクチャ・設計観
- モデリングは、エンジニアだけではなくステークホルダーをなるだけ集めて全員で同じ方向を向いて行うようにしたい。とにかく図に落として議論したい
- プロダクトのあるべき姿に向かって、モノリスからマイクロサービスまで順応に選んだ設計がしたい
- ドメイン駆動設計
- ドメイン駆動設計に関するアウトプットを多く行ってきているが、最近は難しく考え過ぎずでいいじゃんというスタンス。特に実装に関しては
- Java, ないしクラス指向に縛られたプラクティスが多いと見ている。GoやTypeScriptを扱う場合はそれらに惑わされないような書き方にすべき
- データベース
- テスト
- 自動テストはかなり重視している
- ユニットテスト、統合テスト、E2Eテストそれぞれの既存のプロジェクトに導入・文化として浸透させた経験あり
- レイヤーごとにテストが果たすべき役割を定義・その役割に過不足なく記述できるようにしたい
- API
- REST API, GraphQL経験あり
- スキーマ→コード、コード→スキーマと生成する仕組みは必ず取り入れたい
- GraphQLとCQRSを組み合わせた開発がコスパよくて最近お気に入り
- インフラ
- AWS, Google Cloud, オンプレの経験あり
- Google Cloudが最も好み。Goとの相性・SDKの完成度・多すぎないのプロダクト群など
- Terraform, AnsibleなどIaCもよく扱う
- Webフロントエンド
- Reactを中心に一通り書ける
- 最先端的なところは追いきれていない、詳しい人にリード任せつつ後追いする形
技術以外
- ドキュメンテーションが得意
- 図表を使って直感に訴えかけるのが好き
- 1on1を通じてチームメンバーとの関係を構築していくのが好き
- 部署横断的な取り組みのファシリテーションも積極的に行っていくのが好き
- 公開記事は量より質を意識して書く。ターゲットに刺さるように何度も推敲する
- 個人ブログのほうは雑に書くこともあるが、Zennの記事は質を上げることを意識している
読書
- 技術書漁るのが好きで、よく読む
- 特に好きな本、3冊あえて選ぶなら
資格
- 応用情報技術者 (2017/10合格)
- Google Cloud Professional Cloud Architect (2021/07合格、2023/06失効)
作業環境
- OSはWindows,Mac,Linuxどれでも。WindowsだとWSL2を活用したい
- エディタはJetBrains IDEs、NeoVimが好き
- 適度に対面でコミュニケーション取りながらチーム構築していくのが好き。リモートが基本の現場であってもたまに対面でラフに話す場がほしい。難しいモデリングや設計を行っていくときも物理ホワイトボードを囲んで決めていきたい