Scalaを活かせる仕事(39件)

Scala
の案件月額単価相場

[案件数]

平均単価:
852,222

最高単価:
1,900,000

最低単価:
400,000

  • 1,030,000 /月額
  • 東京都
  • 作業内容
    最先端の技術スタックを用いて、大手製造業クライアントのDXおよびデータ利活用を最上流からリードしていただくプロジェクトです。 クライアントの経営課題やKPIに基づき、データ基盤のアーキテクチャ設計から生成AIを活用したソリューション提案まで、大きな裁量を持ってアジリティ高く推進していただきます。 【具体的な業務内容】 以下の2つのテーマを主軸に、上流(コンサルティング・アーキテクト)から実証実験(PoC)・実装のリードまでを一気通貫で担当します。 ◆次世代データ基盤の構築・利活用推進 ・MicrosoftFabricおよびAzureDatabricksを中心としたデータ基盤(エンタープライズデータレイク)のアーキテクチャ設計 ・Spark(Python/Scala)を用いた大規模なETLパイプラインの設計、およびSynapseデータパイプラインを用いたデータインテグレーションの最適化 ◆生成AIを用いた業務高度化・自動化ソリューション(RAG/AIエージェント)の導入 ・社内ナレッジの高度活用を目的とした、GraphRAG(MSGraphRAG等)やAISearchを駆使したRAGシステムの要件定義、設計、および開発
  • 必須スキル
    -MicrosoftAzure環境におけるデータ基盤、またはAIシステムのアーキテクチャ設計・構築経験 -MicrosoftFabricを用いたデータエンジニアリングの実務経験(Spark上でのETLパイプライン作成、Synapseデータパイプラインの構築など) -Pythonを用いたデータ前処理、データモデリング、およびスクリプト開発の実績 -生成AI/LLMを活用したシステム(RAG、プロンプトエンジニアリングなど)の設計・開発経験、および関連する主要ライブラリ・フレームワーク(FastAPI、各種ML系ライブラリなど)の知見 -クライアントのビジネス課題(KPI、業務効率化)を理解し、技術的な解決策を自らロジカルに提案できるITコンサルティング/上流工程の経験
  • 尚可スキル
    -GraphRAG(KnowledgeGraph+RAG)、またはAIエージェントの導入・PoC・開発経験 -大規模データに対する機械学習モデル(ML/DL、時系列解析、回帰モデル等)の構築・チューニング経験、および高度な統計学・データサイエンスのバックグラウンド -ビジネスレベルの英語力(外国人エンジニアとのコミュニケーションや、海外の最新技術ドキュメントの調査・キャッチアップができるレベル) -Terraform等のIaCを用いた、Azure環境のインフラ自動化(CI/CD、ガバナンス策定)の経験
  • 募集人数
    1人
  • 面談回数
    1回

Scalaとは?

Scalaの案件・業界分布について

Scalaは、スイス・ローザンヌにあるスイス連邦工科大学の教授でJavaの開発を行っていたマーティン・オーダースキー氏によって開発されたプログラミング言語。JAVAのライブラリが利用可能で、環境を構築しやすいのが特徴です。

Scalaについて

Scalaでは、ビッグプロジェクトを進める際にミスや手間を減らし、共同作業の利便性を高めるための考え方として知られる「オブジェクト指向」の言語、問題を関数の組み合わせで記述するプログラミング方法である「関数型プログラミング」の言語の両方を扱うことができます。

エラーを起こしにくいだけでなく、エラーを見つけやすいというメリットもあり、海外ではTwitterやLinkedin、国内でもChatworkやビズリーチなどがScalaを使っています。

2017年にビズリーチが行った調査によると、国内のプログラミング言語別平均年収ランキングで、「Scala」は626万円で堂々の1位。株式会社ドワンゴ、サイバーエージェント、SmartNewsなどの有名企業をはじめ、幅広い業界で、広告システムの開発、データ分析、WEBサービスのサーバサイド開発など幅広い案件があります。

難易度が高く、習得するまでに時間がかかりますが、幅広い使用用途と高い有用性で、需要が増え続けている「Scala」。身につけると、かなり強いスキルとなります。

Scalaのサンプルコード

(例)変数

「val」=イミュータブル(変更不可)、「var」=ミュータブル(変更可)の2種類。「val」は後から変更できない変数で、副作用が起きません。

// valはイミュータブル
scala> val msg = "Hello, world!"
msg: String = Hello, world!

scala> msg = "Goodbye cruel world!"
<console>:8: error: reassignment to val
     msg = "Goodbye cruel world!"

// varはミュータブル
scala> var greeting = "Hello, world!"
greeting: String = Hello, world!

scala> greeting = "Leave me alone, world!"
greeting: String = Leave me alone, world!

(例)算術演算子

Scalaは、基本型を操作する演算子が豊富にあります。下記は算術演算子。

scala> 1.2 + 2.3
res: Double = 3.5

scala> 3 - 1
res: Int = 2

scala> 'b' - 'a'
res: Int = 1

scala> 2L * 3L
res: Long = 6

scala> 11 / 4
res: Int = 2

scala> 11 % 4
res: Int = 3

scala> 11.0f / 4.0f
res: Float = 2.75

scala> 11.0 % 4.0
res: Double = 3.0

(例)関数

関数には、「関数定義はdefで始まる」「関数名は慣例的にキャメルケースを使用」「引数の定義は〔変数名〕:〔データ型の形式〕」など、主な定義があります。

// 基本形
def max(x: Int, y: Int): Int = {
  if (x > y)
    x
  else
    y
}
// 省略した書き方(関数が一文のみから構成される場合)
def max(x: Int, y: Int) = if (x > y) x else y

(例)引数のない関数

引数のない関数では、括弧を省略することができます。

scala> def three() = 1 + 2
three: ()Int

scala> three()
res2: Int = 3

scala> three
res3: Int = 3

Scalaのフレームワーク

Scalaの代表的なフレームワークとして知られているのは、Javaでも利用できる「Play」、Ruby系のフレームワークに影響された「Scalatra」「Skinny」、Twitterで開発された「Finagle」など。

■Play

「Play」は、JavaとScalaをサポートしているフレームワーク。WEBアプリ、WEBアプリのバックエンドなどで使われ、高速で開発できることがメリットと考えられています。「Play1」のリリース後、徐々に進化をとげ、新しく開発された「Play2」は、主にScala言語によって書き換えられています。

■Scalatra

「Scalatra」は、まつもとゆきひろ氏により開発されたプログラム言語「Ruby」のフレームワーク「Sinatra」に影響を受けた、Scala用のフレームワーク。シンプルでアクセスしやすく、JVWのパワーとScalaの簡潔さを組み合わせ、高性能なwebサイトとAPIを迅速に構築するのに役立ちます。

「Skinny」は、オープンソースのソフトウエア「Ruby on Rails」に大きな影響を受けています。webサーバーで稼働するJavaプログラムであるサーブレットベースのwebアプリ開発を持続的に行うことに適しています。

■Finegle

「Finegle」は、Twitter社が公開した軽量フレームワーク。JVM用の拡張可能なRPCシステムであり、高並行性サーバーの構築に使用されます。複数の通信プロトコルに対して統一されたクライアント及びサーバーAPIを装備しており、高いパフォーマンスと複数の処理を同時に行うことができるよう設計されています。

Java Scriptと同様、さまざまな選択肢があるScalaのフレームワーク。「Play」が一番便利と言われていますが、開発要件によっては機能が過剰になることも。要件に合わせた適切なフレームワーク選びが大切です。

最後に

当サービスでは、Scalaの案件を豊富に取り揃えております。ぜひ魅力的なScalaの案件をお探しください。

また、本記事で紹介したScalaのフレームワークのスキルを必要とする案件も多数ございます。こちらも合わせてお探しください。

■Play案件

https://freelance.adecco.co.jp/projects/?skill=461