Kotlinエンジニアのフリーランス案件で求められるスキルと経験
公開 2026-10-29 監修:株式会社エージェントベスト
サーバーサイドKotlinのフリーランス案件で問われるのは、Kotlinの型の仕組みを生かして設計できるか、コルーチンで非同期の処理を安全に組めるか、Spring BootやKtorの作法とJavaとの境界を扱えるかの3点が中心です。文法を書けることは前提として見られ、差がつくのはその先の判断です。
この記事では、案件で見られるスキルを分野ごとに整理し、経験の段階ごとにどこまで求められるかを示します。Androidアプリの案件で求められるスキルはAndroidの案件で求められるスキルで扱っています。
2026年10月時点のKotlinとSpringの前提
Kotlinの公式ドキュメントによると、言語のリリース(2.x.0)はおよそ6か月ごと、ツールのリリース(2.x.20)はその3か月後に出ます。2026年10月時点の最新の系列は2.4で、Kotlin 2.4.0は2026年6月3日に出ています。2.4.0では、コンテキストパラメータ(一部を除く)が安定版になり、Java 26のバイトコードを含むクラスを生成できるようになりました。
Spring Bootのリファレンスでは、KotlinにはKotlin 2.2系以上が必要とされています。現場で使う版はプロジェクトごとに違うため、参画前に確かめておくと、使える書き方の範囲を早くつかめます。
分野ごとに見られるスキル
| 分野 | 見られる点 |
|---|---|
| 言語と設計 | null安全、data class・sealedクラス、拡張関数の使いどころ |
| 非同期処理 | コルーチン、構造化並行性、Flow、キャンセルと例外 |
| フレームワーク | Spring BootのKotlin対応、Ktorのプラグインとルーティング |
| Javaとの相互運用 | Javaのライブラリの呼び出し、nullの扱い、Javaから呼ばれるAPI |
| データアクセス | SQL、トランザクション、JPAやKotlin向けのライブラリの選び方 |
| ビルドとテスト | Gradle(Kotlin DSL)、単体テストと結合テスト、モック |
言語と設計
null安全を「?を付けて回避する」だけで終わらせず、どこでnullを許し、どこで型として排除するかを決められることが見られます。業務の状態をsealedクラスで表し、whenで漏れなく扱う設計や、値の不変性を保つdata classの使い方も、レビューでよく話題になります。
拡張関数やスコープ関数(let・applyなど)は便利な一方、使いすぎると読みにくくなります。チームで使い方の線を引けることも、経験者に求められる力です。
非同期処理(コルーチン)
サーバーサイドKotlinで差がつきやすい分野です。次のような点を説明できるかが問われます。
suspend関数の中でブロッキングする処理を呼んでいないか、どう避けるか- 構造化並行性の考え方で、子の処理の失敗やキャンセルがどう伝わるか
Flowを使ったストリームの処理と、背圧(流量)の扱い- タイムアウトや再試行を、どの層で入れるか
Kotlinの公式ドキュメントは、Ktorがコルーチンを使って高いスケーラビリティを得ていると説明しています。Spring Bootでも、リアクティブな依存関係を含むプロジェクトではコルーチンとReactorをつなぐライブラリが使われます。
フレームワーク
Spring Bootのリファレンスには、@ConfigurationPropertiesを不変のdata classで受けられること、JSONの変換にはJacksonのKotlinモジュールが要ること、SpringのプロジェクトがJSpecifyの注釈でnull安全を示していることなどが書かれています。こうしたKotlin向けの作法を知っているかで、Javaの書き方をそのまま持ち込んだコードとの差が出ます。
Ktorでは、必要な機能をプラグインとして組み込む作りや、ルーティングのDSL、テスト用の仕組みを理解しているかが見られます。どちらのフレームワークでも、設定やテストまで含めて一つのサービスを作った経験があると説明しやすくなります。
Javaとの相互運用
Kotlinの公式ドキュメントは、KotlinがJavaベースのフレームワークと完全に互換であると説明しています。現場では、Javaのライブラリが返す値のnullをどう扱うか、Javaのコードから呼ばれるKotlinのAPIをどう公開するかといった境界の判断が日常的に出てきます。逆向きの呼び出しも見られます。Kotlinで書いたクラスをJavaのコードから使う場合、既定の引数やcompanion objectの中身はJavaからそのままでは扱いにくいことがあります。Javaの利用者が使いやすい形で公開するための注釈の使い方や、どこまでをKotlinの書き方に寄せるかの判断を説明できると、混在した現場で頼られます。
Javaの側で問われるスキルはJavaの案件で求められるスキルをご覧ください。
データアクセスとビルド・テスト
SQLとトランザクションの理解は、言語にかかわらず求められます。JPAを使う場合は、Kotlinのクラスの性質(標準で継承できないなど)との付き合い方を知っていると、つまずきを減らせます。ビルドではGradleのKotlin DSLを読み書きでき、依存関係の更新を自分で進められることが見られます。テストでは、単体テストで業務のロジックを確かめ、データベースや外部のAPIとつなぐ部分は結合テストで確かめる、という分け方を説明できると、品質への考え方が伝わります。
運用と性能の見方
サーバーサイドの案件では、書いたコードが本番でどう動くかまで追えることが求められます。Kotlinのサービスも、動く土台はJVMです。メモリの使い方やガベージコレクションの傾向、スレッドの使われ方をログや指標から読めると、遅延や障害の原因に近づけます。
とくにコルーチンを使ったサービスでは、ブロッキングする処理が紛れ込むと、少ないスレッドが埋まって全体が遅くなることがあります。こうした問題を、計測で見つけて直した経験は、機能を作った経験とは別の強みとして評価されます。
経験の段階ごとに求められる水準
| 段階 | 求められやすいこと |
|---|---|
| Kotlinの実務が浅い | 既存の設計に沿ってAPIやテストを書ける。Javaのコードを読める |
| 機能を任されている | 機能の設計、コルーチンを使った非同期処理、レビューへの対応 |
| リード・設計 | 規約やライブラリの選定、Javaからの移行の計画、版の更新の方針 |
実務が浅い段階では、Javaや別の言語で積んだ経験とあわせて示すことが大切です。リードの段階では、Kotlinを採り入れる理由を、チームの生産性や保守性の観点で説明できることが求められます。
資格より実務の説明が重視される
Kotlinには、案件で広く条件にされる資格は多くありません。評価の中心は、どのサービスで、どの部分をKotlinで書き、どんな判断をしたかという実務の説明です。スキルシートへの書き方はKotlinのスキルシートの書き方で扱っています。
よくある質問
Javaの経験が長ければ、Kotlinの案件にすぐ入れますか?
JVMやSpringの知識は大きな土台になります。ただ、Kotlinの案件では、null安全やコルーチンを生かした書き方ができるかも見られます。Kotlinで書いた実務を少しでも積んでおくと、参画後の立ち上がりが早くなります。
コルーチンの経験がないと案件は難しいですか?
同期的な処理が中心の案件もあり、コルーチンの経験がなくても参画できる場合はあります。ただ、非同期の処理を扱う案件は多いため、基本の書き方とキャンセル・例外の伝わり方は押さえておくと選べる案件が広がります。
Kotlin Multiplatformのスキルは求められますか?
サーバーサイドの案件で必須になることは多くありません。クライアントとデータの型や検証の処理を共有する構成の案件では、共有モジュールの設計の経験が評価されることがあります。広げ方はKotlinエンジニアの将来性で扱っています。
参考にした公的情報・資料
- Kotlin releases(Kotlin Documentation)
- What's new in Kotlin 2.4.0(Kotlin Documentation)
- Kotlin Support(Spring Boot Reference Documentation)
- Kotlin for server side(Kotlin Documentation)
記事の内容は公開日時点の情報にもとづきます。制度や税率は変わることがあるため、手続きの前に必ず各機関の最新情報をご確認ください。