🏠

Webエンジニア3年目でフリーランスになってみた!

2022/12/17に公開

本ページはプロモーションが含まれています。
※ Amazonアソシエイトのショートリンクしか張れないようなので、近々普通のリンクに戻します。

私のブログで一番読まれていたのは下記の記事なのですが、やはり 「レバテック」「単価」「フリーランス」 に興味ある方は多いようです(※ 下記はWebエンジニアではなくインフラエンジニアの時の記事)

http://blessed-rain.com/freelance2/

ITゼネコン業界の闇

この時はインフラエンジニアとしてフリーランスを経験しました。SIer的な企業Aでサーバ構築案件を担当するはずが、顧客Bの都合(やっぱインフラでなくアプリの方に予算割くことにしたよ、てへっ)で顧客Bの業務が急遽なくなり(本来であればA⇔B間でも契約結んでいてそれが反故されることはないはずだが、日本の場合発注側がどうしても強いので、まかり通ってしまう)、結果企業Aで全く別案件の保守運用作業を担当することになりました。

はっ?って感じです。 (保守運用業務じゃない)構築案件だから応募したのに、顧客Bが「急遽ゴネたから…」とか知らんし。(正社員の場合は渋々つまらない仕事をしなきゃならない時はあっても仕方ないとしても)フリーランスの場合でも契約内容と違いましたとかあるんだ、、「ITゼネコン業界の闇」深すぎるな、この業界終わってんな! って思いました(2ヶ月でその案件からは撤退)

これを機に、本格的にプログラマに転身することにしました。CとかJavaとかでITゼネコン業界に入ってしまっては何も変わらないので、Web系を目指してRuby(Ruby on Rails)を学習し、Python(Flask)やJavaScript(React.js)を実務で経験しました(トータルで3年半程)

終わっている:  ITゼネコン業界/SIer/SE/SES(世の中変えられない)
よいかも:     Web系/自社サービス/Webエンジニア(世の中変えられるかも)

Web系であれば正直フリーランスでなくてもよいかなって思ってます。ITゼネコン業界の闇が深すぎて、プログラマ採用なのに実際はテスターだったらどうしようとか世の中を信じれなくなってしまっていたのと、週3日勤務とか海外からリモートワークしてみたいとかもあって、フリーランスを選択しました。

エージェント比較

希望の言語はPython/Django、フルリモート(茨城在中の為)で参画可能な案件を探して頂きました。

# スペック
開発経験:3年半
経験言語:JavaScript(React.js)、Python(Flask)

レバテック

王道中の王道ですね!このエージェントを起点に探すことになると思います。エンド直請けで中抜きがない分単価が高く、企業との面談も商談と呼んだりと、フリーランスの立ち位置を向上させてくれたエージェントと思っています。

スキルシート(職務経歴書)のフォーマットがGoogleスプレッドシートで用意されてます。私は前回のものがクラウド上に残っていたので、内容を更新して申し込むと、当日にエージェントから連絡があり希望条件等を伝えた後、翌日には下記10件弱の案件を紹介して頂きました。

レバテック提案リスト

案件名 単価 必須スキル・経験
アノテーションサービス開発 ¥850,000 TypeScript/React/Python
メッセージングシステム開発 ¥950,000 Python/Django
CtoCスポットコンサルマッチサービス開発 ¥850,000 Python/Django
電力小売供給システム開発 ¥900,000 Python/Django
動画配信システム開発 ¥750,000 Python/TypeScript
医療システム追加開発 ¥900,000 Python/TypeScript/Flask/React
電力ビックデータ分析サービス開発 ¥900,000 Python/Django/Vue.js/インフラ周り
医療システム開発 ¥900,000 Python/TypeScript/React
競馬系Webサービス開発 ¥800,000 Python/Django/PHP

レバテック経由で海外からリモートで参画してる日本人はいるか聞いたところ、希望しているRailsエンジニアは最近何人かいたが、Railsのエンジニアはそれなりにいるので、敢えて海外にいるフリーランスと契約するという企業はなかったとのこと(ネット上には過去には海外からリモートで参画した記事あり)

メリット

  • スキルシートがGoogleスプレッドシートなので、更新の度にエージェントにメールが不要
  • 専用のポータルサイト上で案件を提案してくれる(商談希望にチェックするだけ)。都度メールで「応募します/しません」の連絡が不要
  • (上限)単価が明記されている
  • 案件の紹介が早い(翌日)
  • 案件の数が豊富

デメリット

  • 比較的単価が高額なので、3年程度では若干厳しいかも(5件応募⇒全て見送り)
  • とはいえ消費税込みなので、実際は10%程度引いた金額が正確な単価

https://px.a8.net/svt/ejp?a8mat=2I1DOX+FBBEYA+2JK4+1TIJEP

ITプロパートナーズ

週2〜3日稼働の案件を積極的に取り掛かっています。今後そういった働き方も視野に入れたかったので、利用しました。

①運転リスク診断サービスの開発(稼働日数:週3日~5日)

  • エンジニア歴5年以上
  • フロント・バックエンド双方でのWebシステム開発経験
    └フロントはjQuery/Vue/React等、バックエンドはPython/Java/PHP等
  • リモート環境下で一人称で開発ができること
  • クラウド環境を用いたシステム開発経験

②広告収益を大幅に増加させるアドテクノロジーの開発

  • Python(Django)での開発経験・運用経験

翌日に①の書類選考通過の連絡を頂き、翌週に面談しその日の夕方に参画が確定しました。基本的には、やはり書類上で必須スキルを満たしているか/経験があるかなので、書類が通れば、あとは詳細を確認してイメージと大きくかけ離れてなければこれからよろしく!といった感じかなと思います。

単価決めが凄く難儀しました。 レバテックのようにある程度の金額を最初に提示されていれば悩むことはないのですが、自分で決めるのはとても難しいです。フリーランスでかつWebエンジニアとしての経験があれば、前回XX円なので、同程度を希望するとか目安となる金額を伝えられるのですが。。

相場でお願いします! が正直なところだけど、、相場がわからない。。インフラエンジニアの時のフリーランスの月単価が約64万円(4,000/h)だったので、とりあえず64万をベースでといった感じでエージェントとの面談の際に伝えていたのだけど、「64万円は担保できるように交渉しています」と連絡貰った時には「ちょっと待ったー!」を出しました。

レバテック様に紹介して頂いた案件の月単価とは、上限かつ消費税込みとしてもかなり差がある。「先方ももう少し高めの金額を予算として確保してるんじゃないですか?」といった内容をエージェントに伝え、もう少し上の金額での交渉をお願いしました。

結果、752,000円(4,700/h) でした!!レバテック様のお陰で10万円上がった〜笑

正直3年程度の実務経験でのフリーランスはギリギリかなと思います。今回は自分のスキル/経験が案件にちょうどハマっていたのと、同時に4人参画してたので(サービス規模を急拡大したいタイミングだったみたいです)、運が良かったと思っています。残りの3人は、5年〜10年程度の開発経験があるベテランでした!

1人は午後勤務(週25時間稼働)での参画でした。1週間はインプットの時間として与えられましたが、2週目からはコード書いて成果出していかなければならないので、時短勤務の方はそれなりのスキル/経験がないとちょっと大変だなと思いました(週3日稼働で参画している方もいました)。また、4人の内2人は海外の方(中国とインド)でした。

メリット

  • 週2〜3日稼働の案件がある
  • 消費税別(+αで10%益税 ⇒ インボイス制度により1年後からは支払いが必要)

デメリット

  • 単価が記載されていない(自分から希望単価を伝える必要あり)
  • 案件の紹介が翌々日(翌日の電話連絡の後、担当エージェントと面談が翌々日)
  • 案件の紹介が少なめかも

https://px.a8.net/svt/ejp?a8mat=3T0H0V+GB1G0Q+40EC+5Z6WX

Remogu

リモート案件にいち早く取り組んでいて、海外からのリモートでの参画実績も豊富です。

Remogu提案リスト

案件名 単価 必須スキル・経験
セールスAIクラウド開発支援 500,000-800,000円 ・自社サービスの開発経験
・Vue or React によるフロントエンドの開発経験
・Webアプリケーションの運用経験
・JS or Python のライブラリのパッケージを社内外で作成・利用した経験
飲食チェーンの券売機アプリにおけるバックエンド開発 400,000-600,000円 ・Webアプリケーション開発・運用の実務経験(2年以上)
・Pythonを用いた開発経験(2年以上)
・Djangoを用いた開発経験
※ 週3日も可能
HRサービスの新機能フロントエンド開発 600,000-800,000円 ・フロントエンド開発領域での業務経験
・JavaScriptを用いたSPA、または動的なWebアプリケーションの構築経験
・Reactを使用したSPA・MPA開発経験
・HTML、CSSを用いたWebページのマークアップ
※ 週3日も可能
店舗集客支援サービスのフロントエンド開発 600,000-800,000円 ・React(Vue等モダンJSでも可)での開発経験(1年以上)
・AWS などのパブリッククラウドの利用経験
・Git を用いた開発の経験
・SPA + Rest APIでの開発経験
※ 週4日も可能
受発注マッチングシステムのフロントエンド開発 600,000-650,000円 ・フロントエンド開発のご経験(3年以上)
ECサイトにおける売上拡大ソフトウェア開発・改良・運用 -600,000円 1. Java, JavaScript, Python, C/C++などのいずれかのモダンプログラミング言語経験
2. 開発に必要なツールや技術(Linux、Guice、Node.jsなど)を習熟している方
3. データストラクチャー、アルゴリズム、問題解決および複雑性解析の基礎知識
4. システムデザイン経験
※ 週3日も可能
グループウェア(自社プロダクト)新規開発におけるフロント開発 700,000-800,000円 ・Reactでの開発経験
※ React経験が無い場合もフロント経験があれば相談可
※ 週4日も可能
kintoneシステムにおけるカスタマイズ業務 400,000-450,000円 APIサーバの開発や、AWSでのサーバ構築経験
python(目安2年程度の実務経験), EC2, ELB等

案件紹介して頂いた当日に、ITプロパートナーズ経由での案件参画が決まった為、今回は応募しませんでした。今後は海外から週3日稼働とかで探したいと思っているので、次回はこちらメインで案件を探したいと思っています。

メリット

  • 海外から参画可能(実績あり)
  • 週3日可能案件多め

デメリット

  • 案件の紹介が3営業日後(担当エージェントの面談は翌日/別エージェントで書類選考通過した旨を伝えていたので、プライオリティが下がったのもあるかも)
  • バックエンド案件少なめ
  • 週3日勤務や海外からも参画可能など柔軟な働き方が選べるが、若干単価が低いかも(たまたまこの時期に紹介された案件が低かっただけの模様)
  • 免税事業者には消費税を支払わない≒消費税込みと考えると、やはり単価は低いかも

職務経歴書(キャリアシート)について

一番大事なのは開発実務経験ですが、それが職務経歴書に上手く表現できているかどうかです。どこまで詳細に書くべきか、どういったことを省くべきの足し算/引き算が少し悩みどころだと思います。

採用担当の方の「求めていること/知りたいこと/確認したいこと」が一番のポイントですが、エージェントから紹介された案件に、その答えは書いてあります。

このキーワードは書くべきかどうか迷っていたものについて(例えばAWSのサービス名等)、歓迎スキルなどに記載されていれば、自分では職務経歴書に書くほどのことでもないなーと思っていたことも、しっかり記載するようにしました。逆にどの案件にも触れられていないキーワードは、記載する必要はなさそうなので省きました。

所感

リモートワークはデフォルトといった感じで、リモートワークを条件にしたところで紹介案件数が少なくなるといった感触はなかったです。日本国内に限った話しで国外になるとハードルはありましたが、そのハードルももう少しすれば無くなるんじゃないかなーって気がします(経験さえあれば)。ただ時差の問題はSlackやZoomで解決できないので、今後も高いハードルなのかなと。

日本:        09:00-18:00/JST
モザンビーク:  08:00-17:00(15:00-24:00/JST)

バックエンド側言語(RubyやPython)のフレームワーク(Ruby on Rails/Django)から、フロントエンド側言語(JavaScript)のライブラリ(React.js/Vue.js)フレームワーク(Next.js/Nuxt.js)に注目が移ってきているので、React.jsで探した方が案件数も多く決まりやすかったのかなーと思いました。流行りに惑わされずに、自分がやりたいこと(バックエンドなのかフロントエンドなのか)を優先するのがよいですが。

レバテックが圧巻なところ

案件参画が決まった後も、基本的にどのエージェントからも定期的に連絡があります。少し前に幾つかのエージェントを試しに利用したこともあり今回初めてではないので、数社のエージェントからたまに連絡があります。「今案件に参画(または正社員として就職)していて探していないです」とメール不要の連絡をしても、「承知しました。今後案件紹介のメールは控えますが、半年後にまた状況伺いでメールさせて頂きます」と関係を絶たせてくれません笑

ひどい時は、「勤務表の提出がまだです」といった電話がいきなりエージェント側からきたことがありました(取引していないのに)。間違ったのでしょうが、エージェント側の名簿のDBに残っているということは、こういうこともおこりえます。いい迷惑なので名簿のDBから削除して欲しいのですが、エンジニアの連絡先はエージェントの資産でもあるので、削除してくれません笑

それに反して、レバテックからは一切連絡がないです。「案件探す時はまず我々に連絡するでしょ?案件数豊富だし!」といった自身の表れなのか実際のところはわかりませんが、本当こういうところって大事だと思います。

エージェント会社としてはわかります。エンジニアを探している企業があり、今案件を探しているエンジニアの中に経験がマッチする人がいなかった場合、そこで諦めずに過去にやり取りしたエンジニアにメールを送れば、もしかするとマッチして売上が上がるかもしれないと。

レバテックはエンジニアを第一に考えていると思います。なので、エンジニアが嫌がることはしない。迷惑メールを送ってブランドイメージを下げるといった無駄なことはしない。

結論

フリーランスがよいとか稼げるとか煽るつもりはないです。ただ、Webエンジニアにはコスト(時間とお金)を掛けてでも、なってよかったと思っています。

地頭がよい人、プログラミングが好きな人はもちろん向いていますが、そうでなくても、就業後または土日にプログラミングの学習を継続できる人であればオススメの職業と思います。それなりの対価が貰えるのであれば、全然苦にならないです。

ちなみに、Webエンジニアとしてフリーランスになるまでに、壁は4回くらいあったと思います。

①学習継続の壁

仕事をしながら土日を中心に、1ヶ月強のブートキャンプでPHPを習得し、ちょっとしたWebサイトを作成しました(この時はまだ本格的にWebエンジニアになるつもりではなかったです)

インフラエンジニアでフリーランスを経験し、そこでフリーランスでもITゼネコン業界の闇を見てしまい、このITゼネコン業界に見切りを付けて強くWebエンジニアを志すようになりました。今度は2ヶ月フルコミットのオンラインプログラミングスクールでRuby on Railsを学習し、フレームワークという強力なツールを目の当たりにしました。よく理解できてないのにいい感じのWebサイトは比較的簡単に作れるけど、カスタマイズしようとすると全く何がなんだかわからない世界になる。腹落ち感がない。 そして2ヶ月間ただ勉強するのって結構しんどい。。

腹落ちすることが大事だよね!ってことで、2ヶ月のカリキュラムを終えてからはオンラインスクールで学んだことは忘れ、Progage様でRuby on Railsを繰り返し学習し、Progateを参考に自分でWebサイトを作ってみる。わかる!腹落ちする!腹落ちって大事!!気持ちいい!!

②就職の壁(実務経験の壁)

プログラマの職を探して就職活動する。Web系は実務経験がないと難しいようだ。 20代はちょっと勉強してればOK、30代はそれなりのポートフォリオがあれば、40代はないなーといった感じ。

ITゼネコン業界で多重下請けのJavaプログラマとかなら、たぶんJava未経験であっても採用してくれると思うけど、ITゼネコン業界&SESは嫌だし。。

実務経験どこで積めばいいの?
ねぇ、実務経験どこで積めばいいの?

ここが一番の壁でした。。

エンジニア足りないよーという声が多い中、それに答える形でプログラミングスクールが乱立して学習環境は整ってきた。が、実務経験を積ませてくれるところがない。。足を踏み入れて初めて知る、実務未経験のエンジニアはいらないよーという現実(どこかで修行したらきてね、どこで修行積めるか知らんけど)

正社員は当然ダメ、派遣もNG、そしてアルバイトでさえ落とされる。。 凹む…そして、人生詰みかけてる。。それでも1社でやっとアルバイトの書類選考が通り、何とかテスターとして潜り込むことができました。

③テスターからの壁

テスターからいつプログラマになれるのかな?ワクワク

いつ?ねぇ、いつなの?ワクワク

隣のテスターの人に聞いてみる。同じくプログラマ希望で入社したけど、、1年経ってもテスターしてるとのこと。。そして、もう辞めるって。なーぬー!!

一生テスターでアルバイター!
プログラマを夢見て、一生フリーターで、、テスター!!
(おっ、もしや人生詰みかけてない?)

道は切り開くもの!!
前例が無かったとはいえ何とか無事プログラマになることができ、その後も続き、テスターからプログラマにステップアップという道がその会社に確立できました!よかったよかった!

http://blessed-rain.com/python_engineer/

④フリーランスの坂

3年半でフリーランスはやっぱりちょっと早かったので、壁というほどではないものの、ちょっとした坂でした。

Djangoは勉強しました程度だったので、やっぱり実務で経験してないと、スピード感が全然足りない。 ここはクラス汎用ビューを使っているのね、とコードを見ながら学習して理解して、時間が掛かりながらも何とか似たように実装を進める。

ちゃんとしたウォーターフォール開発も初だったので、ざっくり組んだスケジュールは甘すぎた。どんどんスケジュールが遅延して切羽詰まりながら、必須でないものはセカンドリリースに回してもらいながら、ヒーヒー言いながら何とか進める。設計フェーズで仕様書書いて、開発フェーズで実装する。テストフェーズで環境を変えながら、 UT(単体テスト)/ITa(内部結合テスト)/ST(システムテスト)/UAT(ユーザー受け入れテスト) を実施し、その後に本番リリース。こんなしっかりしたテスト工程を進めたことなかったので、とても勉強になる!

コードレビューも「しっかり」したりしてもらったりしたことなかったので、アホみたいな指摘受けて恥ずかしいことにならないかドキドキする。少しの指摘は受けたものの、勉強になるしとてもいい!逆にコードレビューする側の時間もそれなりに掛かるので、レビューしたりしてるだけで自分の実装をほとんど進められない日もあり、ヒーヒー言わされる原因の一つでした。

テストコードを書くのも初めてなので、業務後に勉強しながらヒーヒー言いながら進める。終わったと思ってカバレッジ測定したら、50%だった。。85%を超えるまでもうひと頑張りする!数日掛けてテストコードを実装する内に色々掴めてきた。テストコードを書くってスッキリする(書かないと、技術的負債を溜め込んでいく感じでモヤモヤする)

フリーランスの利点

自分が経験したい現場を選べることが最大の利点です!この言語(フレームワーク)で開発したい/テストコードを書く現場がいい/アジャイル開発 or ウォーターフォール開発がいい、など明確にやりたいことがあり、いつかではなく早い時期に経験したいといった場合、有用です。

今よい職場/現場で業務を行えてればフリーランスになる必要もないと思います。フリーランスになってから正社員に戻る道もあるので、選択肢の中の一つとして置いておけばよいと思います。

今回以下の経験が得られました。

  • Djangoでの実装経験
  • コードレビュー(レビュアー/レビュイー)
  • テストコードを書くこと(気持ちいい!)
  • 設計(仕様書作成)〜実装(テストコード含む)〜テスト(UT/ITa/ST/UAT)〜リリースまでを一通り対応する

フリーランスにそれなりの対価を支払うことができる企業なので、やはりチームとしてもしっかりしています。Biz側とネゴしてしっかりプロジェクトを回せるPMがいて、テストコードを書く文化を導入/推進して根付かせたりできるテックリードがいると、チームとして上手く回るんだなーと勉強になります。どちらもフリーランスの方でした。

B2Bシステムだからウォーターフォール型開発なんだろうけど、現場が変わることがあれば、次はアジャイル開発の現場を選んでみたい。

来年には法人登記して、稼働を少し減らせるか調整しながら、自分のWebサービスを世に出すことに力を入れていきたいと思っています。

Webエンジニアとして就職することが一番のハードルですが、20代であれば大したことないハードルなので、異業種の人もどんどん飛び込んで貰えたらいいんじゃないかなーと思います。

IT革命という言葉がありましたが、その本質はWeb革命だったのかなって思っています。Ruby on Railsというフレームワークが世に出てきた時もそうでしたが、今はその流れがフロントエンドにも波及し、Next.jsNuxt.jsといったフレームワークがトレンドになりつつあります。ムーアの法則のように、Web開発が年を追うごとに、どんどん簡単で早く実装できるようになっています。日進月歩で新しい技術が生まれてくるのも、Web業界が今なおHOTな状態にある証なのかなと思っています。

GitHubで編集を提案

Discussion