コンテンツへ移動
Youngbin Kim
Menu

必要なものをつくり、
設計を確かめる。

Software Engineer — Kotlin / JVM / Systems

Kotlinを軸に、業務システムの仕様設計から実装・性能改善まで担当。 バックエンドを中心に、Web・モバイル・デスクトップへ開発の幅を広げています。

  1. 01Problem
  2. 02Design
  3. 03Implementation
  4. 04Measurement

研究に必要な道具を、
自分でつくりたい。

社会言語学の研究で抱いたその思いから、ソフトウェアエンジニアリングの道を選びました。

JavaからKotlinへ。分野を問わず問題を構造化し、実装と測定を通じて設計を確かめる姿勢を大切にしています。

実装と検証の記録

完成したものだけでなく、どこに境界を置き、何を測ったかを残しています。

01

マルチプラットフォーム・チャット

KotlinMultiplatformSample

共有ロジックとネイティブUIの境界を探る、ワークスペース型チャットアプリ。

課題
複数のOSで機能を揃えながら、それぞれの操作感も活かしたい。
設計
通信と契約をKotlinで共有し、Composeの共通UIとApple向けSwiftUIを使い分ける構成に。
結果
Web・Desktop・Android・iOS / iPadOS・macOSに、チャネル、スレッド、通知を含む機能を実装。

Kotlin Multiplatform · Ktor · Compose · SwiftUI · PostgreSQL

02

yt-dlpk

CLIワークフローを、配布可能なデスクトップアプリへ。

課題
動画ごとの形式選択や保存設定を、コマンドを組み立てずに扱いたい。
設計
URL解析、形式選択、進捗・キャンセルをCompose Desktopに統合。外部ツールの取得と管理もアプリで扱う設計に。
結果
動画・音声・字幕の保存を一つの画面にまとめ、macOS向けDMGをGitHub Releasesで公開。

Compose Desktop · yt-dlp · ffmpeg · Packaging

yt-dlpkのmacOSアプリ。動画を解析し、画質と音声形式を選んで保存する画面。
macOSアプリの実画面 画像を拡大 ↗
03

Kotlin × Rust 性能検証

CPUBoundServerBenchmark

Kotlin/JVMとRustの境界コストを、同一条件のワークロードで測定。

課題
CPU負荷の高い処理にRustを組み込むと、どの条件で効果があるのか。
設計
JSON・圧縮・パスワード処理・画像の30ケースを、Kotlin単体とFFM・JNI・子プロセス・HTTPで比較。
結果
処理の種類で優位な方式が変わることを確認。スループットに加え、p99・RSS・飽和点から採用条件を整理。

Ktor · Rust · FFM · JNI · JMH

同じ処理でも、境界で変わる。スループット比 · Kotlin = 1.000× · 大きいほど高い
JSON 3プロファイルの中央値
方式Kotlin比
Kotlin1.000×
FFM1.271×
JNI1.280×
Process0.088×
HTTP0.354×

Apple M2 Pro · JDK 26 · 同時実行10 · 5回計測
ウォームアップ200ms / 計測500ms · 2026-07-23

この条件ではFFM・JNIが優位。圧縮の中央値ではKotlinが上回り、処理ごとに選ぶ必要があります。

測定条件と全結果を見る
04

FileTransporter

過去の実装を、セキュリティと回帰テストから再設計。

課題
ファイル共有の使い勝手を保ちながら、公開する保存領域を明確に制限したい。
設計
保存ルートとアップロード上限を設定に分離し、パスの検証をストレージ境界に集約。
結果
ファイル操作と不正なパスの拒否を回帰テストで確認できる構成に整理。

Kotlin · Ktor · Compose for Web · Regression tests

責任範囲の変化

実装から、技術判断とプロダクト全体の改善へ。

  1. ELW株式会社

    Product Engineer

    リユース事業向け業務プラットフォームの開発。

    • 予約・契約・在庫・査定領域を、仕様設計からDB・API、Web / モバイルUI、回帰テストまで一貫して担当。
    • Kotlin / Quarkus、Next.js、Expo、PostgreSQL、AWSを横断して実装。
    • クエリ、トランザクション、CIの性能改善を推進。
  2. TieUps株式会社

    Product Engineer

    lit.link / TieUps の開発。

    • API・DBの最適化、依存関係更新、アーキテクチャ設計を担当。
    • FirebaseからGoogle Cloudへの移行とインフラ整備に取り組む。
  3. シェアフル株式会社

    Kotlin Team Lead / Server-side Engineer

    勤怠管理・給与計算マイクロサービスの開発。

    • Kotlinチームリードとして開発を担当。GoによるAPI連携とQA自動化ツールも実装。
    • 2023.05以降は副業として保守・改善を継続。
  4. サン・エム・システム株式会社

    System Engineer

    SIerのアプリケーション基盤チームで開発。

    • 発注システムのAPI設計・実装、帳票PDF変換、クラウドストレージ連携を担当。
    • バックエンド共通基盤の開発と性能評価に取り組む。
Implementation実装・機能開発
Architecture設計・技術判断
Ownershipプロダクト全体の改善
  1. 01

    従業員サーベイ・組織分析基盤プロジェクト

    副業 · Full-stack Engineer

    サーベイのメール配信と状態遷移を支えるDB・APIを設計・実装し、作成から配信準備までのE2Eテストを整備。組織分析テーブルの双方向ドラッグスクロールとリサイズ追従も改善。

    Kotlin · Spring Boot · Exposed · Next.js · CodeceptJS

  2. 02

    EC接客・行動計測SDKプロジェクト

    副業 · Kotlin Multiplatform Engineer

    ECアプリ向けSDKをcore・app・trackingの3モジュールで設計し、連携Androidアプリも保守。API通信、シリアライズと入力検証、閲覧・カート・購入計測、LRUキャッシュ、テスト・ドキュメント・配布基盤まで担当。

    Kotlin Multiplatform · Ktor · Compose · Kotest · Dokka

  3. 03

    建設業向け予算・会計業務自動化プロジェクト

    副業 · Google Apps Script Engineer

    勤怠管理システムと工事の実行予算管理をGoogle Workspace上で開発。予算作成、段階承認、検査・経理集計、CSV入出力、取引先検索、権限制御、同時更新制御を自動化。

    Google Apps Script · JavaScript · Spreadsheet API · HTML · CSV

技術を集めるのではなく、判断できる深さまで理解する。

  1. 01

    Kotlin & JVM

    Kotlin · Java · Coroutines · Gradle · JVM runtime

  2. 02

    Backend & Data

    Ktor · Spring · PostgreSQL · MySQL · REST · GraphQL

  3. 03

    Systems & Performance

    Concurrency · Async I/O · Transactions · Benchmarking · Profiling

  4. 04

    Multiplatform & Tools

    KMP · Compose · SwiftUI · Desktop · CLI · Python · Rust

測って、書き残す。

2019年から、実装・測定・設計判断を日本語で記録しています。近年の記事は韓国語・英語でも公開しています。

  1. 01

    KotlinサーバーのCPUバウンド処理にRustを混ぜてみた

    JSON、圧縮、暗号、画像処理の30ケースで、Kotlin単体とFFM・JNI・子プロセス・HTTP境界を比較。速度だけでなくRSS、飽和点、運用コストまで含めて採用条件を検証しました。

    Kotlin · Rust · FFM · JNI · Performance
  2. 02

    AI時代にライブラリへ求めたいこと

    記述量を減らす抽象化より、読みやすさ、壊れにくさ、デバッグ可能性を重視する設計へ。人とAIの双方が変更しやすい基盤の条件を考えました。

    Architecture · AI · Libraries · Maintainability
  3. 03

    SpringとKtor、5つの構成を比較してみた

    同じPostgreSQLとHTTPシナリオの下で、Spring MVC・WebFluxとKtorのJDBC / R2DBC構成を比較。レイヤーごとの差と、直感だけでは決められない選択条件を整理しました。

    Spring · Ktor · PostgreSQL · R2DBC · Benchmark
View all writing

つくり方の原則

  1. 01

    Tools, not identities.

    Kotlinを主力にしながら、問題に適した技術を選ぶ。

  2. 02

    Understand before abstracting.

    フレームワークの使い方より、背後の動作を理解して抽象化する。

  3. 03

    Measure assumptions.

    性能や技術選択の主張は、実験と測定で確かめる。

話しましょう。

東京を拠点に、プロダクト開発と技術的な挑戦に取り組んでいます。