以前書いた通り
予定通り2025年3月末で某社を退職して、2025年4月からフリーランスをしてます。
ソフトウェアエンジニアでフリーランスやってる人なんて世の中に大量にいると思いますし、 ある程度当たり前の感想などしか書かないかもしれませんが、とりあえず個人の感想などを書いておきます。
全体を通して、いろいろな意味で大まかには想定した通りになった感じですね。特に仕事先の募集で
それぞれが週1〜2回相当程度で3〜4社くらいに関わるのが双方にとってコスパがいいかなぁ?
と書きましたが、結局、現状で契約した会社数はその通りになってます。
「Scalaで」と書いてある通り、一旦Scalaだけで探したので*1、 見事に2025年4月現在Scalaだけやってます。
4社もあったら忙し過ぎるというか、コンテキストスイッチ大変かなぁ?と思っていましたが、結果としては普通にやれてます。
最初は
- 複数社と契約するまでが、契約後のやり取りも、時期も集中して大変
- そもそも4月の最初に年金や健康保険などの各種手続きも重なって大変
- PCを貸与してもらうパターンの社も割とあるし、それのセットアップなど大変
- 各社でのslackやメールやその他色々の初期設定
- 各社での初期のミーティングや社によってはコンプラその他の研修?講習的なものが最初に少し
- 各社で微妙にチケットやpull req出す時の細かい決まりや、デフォルトbranch違ったり、勤務した時間記録しておく場合の決まりとか、慣れるの必要
などなど、それなりに地味に色々ありますが、それ含めて想定内というか、最初がとにかく大変なだけで、 慣れてしまえばというか、そこの一番集中して色々あった4月前半を乗り切れば、結局やることといえばScala書くことで、その内容はだいたい想定内というか、 肝心のScala書く部分ですごく困ることはないというか。
「自分にとっては簡単だが、他の人によってはよくわからないというか、自信がないというか、手が回ってなくて放置気味になる」
ような問題その他を、ガンガンやっていくのはどの社でもほぼ変わらないので、そういう意味でScalaを書く的な意味での仕事は普通に順調です。
なんなら、会社によっては週1相当かそれ以下でも
「最初であればあるほど、自分にとっては簡単な課題が残っている」
ので、1日あたりにしたら10とか20個相当のpull reqを出せるというか複数社で実際に出したので、まだまだレビュー待ちのボトルネックに達することの方が多いくらいです。
その「レビュー待ちのボトルネック」まで考慮してあえてそれなりな数の複数社契約にしたので、それ含めて想定内です。
あとは働き方の違いは・・・一般的にイメージするようなフリーランスの通りな気がするから、あまり書くことはない気がします。
前職でもというか、前職に限らず、すごく昔ならともかく、この業界的にも大抵のところは、正社員かどうか?に関わらず、 リモート可能だったり、働く時間もそれなりに融通が効くのが普通になってると思いますが、 原理上、フリーランスだとより自由になって便利ですね(フリーランス初心者の感想)。
安定した給与が保証されないとか、その他色々のトレードオフなので当たり前ですが、 同じペースで働き続けられるなら、税金や社会保険料やその他を考慮しても、収入も上がるのではないでしょうか(そんなにしっかり計算してないが)。
「週1相当かそれ以下でも、レビュー待ちのボトルネックに達する」
という場合が複数社である、状態なので、なんならもう少し契約する社を増やそうか?と考えはじめてるくらいです*2
ある程度続けていけば、さすがに簡単に出来ることはそこまで多くないというか、簡単にコスパよく出来ることからやっていくと、自然と面倒というか難しいことが残り始めるので、 そうするとずっと「レビュー待ちのボトルネック」になる、ということは減っていくと思います。
とはいえ、そもそも仕事の内容的にも、大抵は、期限が決まってるものでもなく非同期にやれることをやっていく、という感じが大半なので、 どこかの社の契約が急に減る可能性もなくもないし、健康で働き続けられるうちは少し多めに契約してというか、多めにやるべき仕事が目の前にあるくらいでいいのでは? くらいに思いはじめました。
あくまで1ヶ月くらい働いた時点の感想なので、今後やっていったら徐々に感覚も変わっていく可能性はありますが、現状はそういった感じです。
あとは、やってみて気がついたのは「週1〜2相当で〜」と思ってましたが、文字通り
「A社は月曜、B社は火曜、C社は水曜」
とするのではなく、レビュー待ちや、レビューしてmergeされたものに依存してpull req出す、細かくコンフリクト解消やコメントをする、などを考慮すると
「今日の午前中はA社、午後はB社、夜時間あったらC社」
くらいに、1日数時間ずつ小刻みにやった方が効率がいいことに気がついたので、わりとそういう場合もあるというか、かなり柔軟に日によって働く社と時間を調整してますね。
もちろん、タスクによっては数時間ずっと集中しないと出来ないことも原理上はなくもないですが、 当初の大半のタスクは、なんならpull req出すためのコード変更は数分とかせいぜい長くても数十分で終わって、pull reqの説明を丁寧に書くことに時間かけることの方が大半なので、 コンテキストスイッチなくもないですが、結局自分にとっては超慣れたScala書くだけなので、割とそういう感じでやっていけそうです。
あとは、今後の仕事の募集感は結局随時変わるので、なんともいえないですが
「今すぐなんでもいいから仕事くれ〜超時間あるんだ〜」
という感じではないですが
「内容や条件によるけど、そういう感じで少しずつ働くだけでいいなら、いい話があれば割とゆるくScalaの仕事なら常に募集し続ける〜」
となるかもしれません。
そのあたりは随時Twitterかblogかに書くかもしれません。詳細未定です。
つまりこれ書いてる2025年4月現在でも
「いい話があれば割とゆるくScalaの仕事なら募集し続け」
てる状態の方が近いです。もし話あればメールください。
あと、複数社で似たようなことやってると
みたいなこともあって、そういう点では楽しいですね(これを楽しいと思える人の割合・・・)
逆にいうと、自分が得意で現状ではすごくコスパがいいとはいえ、Scalaでの似たようなことばかりやってて、他の方向性の仕事やらなくていいのか?みたいな心配や不安がなくもないですが、 隣の芝生は青いというか、どんな仕事したって、どんな立場だって、そういう不安になることはどうせあると思うので、
もう完全に開き直って、現状で自分が出来る得意なことをガンガンやって、遠い将来のことは考えてもわからないので一旦考えなくていいか!!!と思うようになりました。
以前のblogなどでも書いた通り、自分の得意な仕事にはScala 3対応とかも含まれているわけですが、 それぞれの具体的な進捗具合はともかく、各社で割と大まかには進んでいるので、一部だけでも将来どこかで成果公表できたりしたらいいですね(詳細未定)。
Scala 3対応は、本当に日本一得意ではないか、といっても過言ではない可能性があるで(要出典)、なんなら日本のScala使ってる企業のScala 3対応業務を自分がどんどん引き受けて
「日本のScala使ってる企業のScalaを全部3にするぞ!!!」
くらいの勢いでやっていってもいいかもしれません*3
まとまりがないというか、だいぶ雑多な感想になりましたが、今回はこんな感じで終わりにします。 今後ともよろしくお願いします。