名前: 阿部 耕太郎 (Kotaro Abe, abekoh)
所在地: 東京都
SNS等へのリンク: abekoh.dev
- DCT事業のリードエンジニア
- 治験の業務支援サービスの開発・運用・保守
- 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
- 広告審査システムのサーバサイドエンジニア
- 広告審査システムの開発・運用・保守
- Java, Spring Boot, Oracle Database, Kubernetes, GCP, etc...
- デイリー数百万リクエストされる広告の審査を、分散サービスを構築して処理
- Apache Kafka, Apache Pulsarを多く活用したイベント駆動サービスを長らく保守
- 秒間数万リクエストを数ミリ秒以内に返却するシステムの構築
- 社内オンプレとGCPとの連携
- OJT/新卒メンバー育成(OJT6名、新卒4名)
- ヒューマンインタフェース研究室(内田研究室)所属
- 修論テーマ: "Generative Adversarial Networks(GAN)を用いたフォント生成に関する研究"
- 研究関連のコード
- uchidalab/fontdesign_gan: 修論の成果物
- abekoh/adversarial_character: CNNを騙す文字画像を遺伝的アルゴリズムで作成
- 学部2年以降は情報工学を専攻
- 学部4年より上記の研究室に所属
ピックアップ:
- 『理科系の作文技術』から学ぶ技術文書の書き方 - Speaker Deck
- 開発効率を追い求めた実装プラクティス集 - Zenn
- シェル環境2023 - abekoh's tech note
- moqを使ったGoのテスト - Zenn
- ドメイン駆動設計からオブジェクト指向、そしてアジャイル開発まで。関連書籍練り歩きのススメ - Zenn
- Spring Cloud Stream, Reactorを使ってノンブロッキングなストリーム処理を実装する - Zenn
- Javaでパフォーマンスを意識した開発を行っていく上での心得 - abekoh's tech note
- Spring Boot+Kubernetesでサービスイン前にウォームアップ処理を行う - abekoh's tech note
自前のもの:
- abekoh/commit-plantuml-action ... PlantUMLの画像生成できるGitHub Actionsテンプレート、PR上で差分チェックもできる
- abekoh/radiko-archiver ... radikoの番組自動録画
- abekoh/wordle_helper ... Wordleを解くためのヘルパーCLI、Rust製
- abekoh/nes_emulator ... (WIP)Rust製ファミコンエミュレータ
- abekoh/minecraft-server ... GCP, TerraformでMinecraftサーバを構築
他、利用しているOSSにIssue投げたりPR投げたりします。
- abekoh's tech note ... 自分で構築したブログ
- Astro, Tailwind CSS, Cloudflare Pages
- 紹介記事: Astro, Tailwind CSS, Cloudflare Pagesでブログリニューアル - abekoh's tech note
- (更新停止)NicoJK Anime Archive Viewer ... アニメ特化のニコニコ実況の過去ログ再生ツール
- Go, TypeScript, Next.js, React.js, AWS(Lambda, API Gateway, S3, DynamoDB, EC2, Amplify)
- 紹介記事: ニコニコ実況の過去ログをアニメの放送情報から検索して見れるサービスをつくった - abekoh's tech note
やってきたことに加えて、私見も挟んでおく。
- 静的型付け言語中心に組み立てたい
- Java, Go, TypeScriptが業務経験として長い
- Kotlin, Rustあたりも興味あり
- 長く続くプロジェクトであれば必ずメンバー入れ替え・忘却・大規模リファクタリングが発生する。そのとき静的型付けでないと余計な負担を強いられる。それを防ぐためにも最初から型はきっちり対応してきたい
- 小規模・分析用・スクリプト等であればその限りでない。ちょっとしたスクリプトはPythonでよく書く
- Go
- 業務で2年、趣味含めると4年ほど
- 最近では一番手慣れている
- golang/goのAccepted/Declinedのキャッチアップもやるようになった
- 平易な文法だからこそ、平易な書き方で完結させるのが正しい姿という考えで最近はコーディングしている
- Java
- Spring Bootを使った実務経験3年
- IntelliJ IDEAと組み合わせて効率よくクラスを構築していくのが得意
- Goとは異なり、それぞれのクラスの役割がどうなるべきかをしっかり考えて実装する
- Java 11より後はあまりキャッチアップできていない
- アーキテクチャ・設計観
- モデリングは、エンジニアだけではなくステークホルダーをなるだけ集めて全員で同じ方向を向いて行うようにしたい。とにかく図に落として議論したい
- プロダクトのあるべき姿に向かって、モノリスからマイクロサービスまで順応に選んだ設計がしたい
- テストは可能な範囲で書く、テスタビリティの高い設計にしたい
- DDD
- DDDに関する記事を多く投稿してきているが、最近は難しく考え過ぎずでいいじゃんというスタンス。特に実装に関して。
- Java, ないしクラス指向に縛られたプラクティスが多いと見ている。GoやTypeScriptを扱う場合はそれらに惑わされないような書き方にすべき
- データベース
- API
- REST API, GraphQL経験あり
- スキーマ→コード、コード→スキーマと生成する仕組みがほしい
- GraphQLとCQRSを組み合わせた開発がコスパよくて最近お気に入り
- インフラ
- AWS, GCP, オンプレの経験あり
- GCPが最も好み。Goとの相性・SDKの完成度・多すぎないのプロダクト群など
- Terraform, AnsibleなどIaCもよく扱う
- フロントエンド
- Reactを中心に一通り書ける
- 最先端なところは追いきれていない、詳しい人にリード任せつつ後追いする形
- ドキュメンテーションが得意
- 図表を使って直感に訴えかけるのが好き
- 1on1を通じてチームメンバーとの関係を構築していくのが好き
- 部署横断的な取り組みのファシリテーションも積極的に行っていくのが好き
- 公開記事は量より質を意識して書く。ターゲットに刺さるように何度も推敲する
- 個人ブログのほうは雑に書くこともあるが、Zennの記事は質を上げることを意識している
- 技術書漁るのが好きで、割とよく読む
- OSはWindows,Mac,Linuxどれでも。WindowsだとWSL2を活用したい
- エディタはJetBrains系、NeoVimが好き
- 適度に対面でコミュニケーション取りながらチーム構築していくのが好き。リモートが基本の現場であってもたまに対面でラフに話す場がほしい。難しいモデリングや設計を行っていくときも物理ホワイトボードを囲んで決めていきたい